Moviepy模塊實現(xiàn)視頻添加圖片水印
前言
本篇給大家分享一下Moviepy模塊之視頻添加圖片水印。
本篇使用的moviepy版本如下:
Name: moviepy
Version: 1.0.3
視頻添加圖片水印
1.引入庫
from moviepy.editor import *
2.加載視頻文件
local = '/Users/kkstar/Downloads/video/' video = VideoFileClip(local+"demo.mp4")
3.加載水印圖片
watermark = ImageClip(local+"demo.png")
4.縮放水印圖片大小
watermark = watermark.resize(width=200, height=50)
5.設(shè)置水印的位置
5.1 相對于視頻的左上角
watermark = watermark.set_position(("left","top"))
5.2 相對于視頻的左下角
watermark = watermark.set_position(("left","bottom"))
5.3 相對于視頻的右上角
watermark = watermark.set_position(("right","top"))
5.4 相對于視頻的右下角
watermark = watermark.set_position(("right","bottom"))
5.5 相對于視頻的左中位置
watermark = watermark.set_position(("left","center"))
5.6 相對于視頻的正中位置
watermark = watermark.set_position(("center","center"))
5.7 相對于視頻的右中位置
watermark = watermark.set_position(("right","center"))
5.8 相對于視頻的中上位置
watermark = watermark.set_position(("center","top"))
5.9 相對于視頻的中下位置
watermark = watermark.set_position(("center","bottom"))
以上9種位置效果圖
5.10 顯示在某個點位上
# 顯示在100, 50的位置上 watermark = watermark.set_position((100, 50))
5.11 顯示在左邊距x、右邊距y的位置上
# 顯示在距離左邊百分之10、距離上邊百分之5的位置上 # 效果就是距左為 屏幕寬度*0.1,距上為 屏幕高度*0.05的位置上 watermark = watermark.set_position((0.1, 0.05), True)
6. 設(shè)置水印出現(xiàn)的時間段
6.1 從視頻開始到結(jié)束
watermark = watermark.set_duration(video.duration)
6.2 從第x秒開始到結(jié)束
# 從第3秒開始到結(jié)束 watermark = watermark.set_duration(video.duration-3).set_start(3)
這里需要注意,如果水印開始時間不是視頻開始時間,那么水印的持續(xù)時長需要原視頻時長減去水印開始時間,不然新的視頻會被拉長。
假設(shè)原視頻5秒,設(shè)置水印開始時間是第3秒,如果水印持續(xù)時長仍是原視頻時長,那么新視頻將會是5+3=8秒,當原視頻播放完了,還有3秒會是一直顯示水印的一個黑屏。
6.3 從第x秒開始到第y秒結(jié)束
# 水印從第3秒開始到第4秒結(jié)束 watermark = watermark.set_duration(4-3).set_start(3).set_end(4)
7. 將水印添加到視頻中
video_with_watermark = CompositeVideoClip([video, watermark])
8. 保存帶有水印的視頻文件
video_with_watermark.write_videofile(local+"output_video.mp4")
總結(jié)
VideoFileClip:VideoFileClip是MoviePy中的一個類,用于從視頻文件中創(chuàng)建一個Clip對象。
ImageClip:ImageClip是MoviePy中的一個類,用于創(chuàng)建圖像剪輯。ImageClip類的一些常用方法包括resize(更改圖像大?。?、set_position(設(shè)置圖像位置)和set_duration(設(shè)置圖像持續(xù)時間)。set_start方法用于設(shè)置開始顯示的時間點,set_end方法用于設(shè)置結(jié)束顯示的時間點。
到此這篇關(guān)于Moviepy模塊實現(xiàn)視頻添加圖片水印的文章就介紹到這了,更多相關(guān)Moviepy視頻添加水印內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django 實現(xiàn)外鍵去除自動添加的后綴‘_id’
今天小編就為大家分享一篇Django 實現(xiàn)外鍵去除自動添加的后綴‘_id’,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11用ReactJS和Python的Flask框架編寫留言板的代碼示例
這篇文章主要介紹了用ReactJS和Python的Flask框架編寫留言板的代碼示例,其他的話用到了MongoDB這個方便使用JavaScript來操作的數(shù)據(jù)庫,需要的朋友可以參考下2015-12-12python使用Queue在多個子進程間交換數(shù)據(jù)的方法
這篇文章主要介紹了python使用Queue在多個子進程間交換數(shù)據(jù)的方法,實例分析了Queue實現(xiàn)進程間數(shù)據(jù)交互的技巧,需要的朋友可以參考下2015-04-04