给视频加水印
Adding watermark to video
我可以使用 moviepy 库为一段视频添加水印。但是,当我这样做时,它会获取带水印的片段,并用它创建一个新文件。我想弄清楚是否可以简单地将编辑的部分拼接回原始视频,因为 moviepy 写入磁盘非常慢,所以片段越小越好。
我在想也许可以使用 shutil?
video = mp.VideoFileClip("C:\Users\admin\Desktop\Test\demovideo.mp4").subclip(10,20)
logo = (mp.ImageClip("C:\Users\admin\Desktop\Watermark\watermarkpic.png")
.set_duration(20)
.resize(height=20) # if you need to resize...
.margin(right=8, bottom=8, opacity=0) # (optional) logo-border padding
.set_pos(("right","bottom")))
final = mp.CompositeVideoClip([video, logo])
final.write_videofile("C:\Users\admin\Desktop\output\demovideo(watermarked).mp4", audio = True, progress_bar = False)
有没有办法将带有水印的 10 秒片段复制回原始视频文件?或者是否有另一个图书馆允许我这样做?
您的用例中的慢点是 Moviepy 需要对电影的每一帧进行解码和重新编码。如果你想要速度,我相信有办法让FFMPEG在不重新编码的情况下复制视频片段。
所以你可以使用ffmpeg将视频切割成3个子片段(之前。mp4/fragment.mp4/after.mp4),只处理fragment.mp4,然后用ffmpeg重新连接所有片段。
可以从 moviepy 中使用 ffmpeg 切割成 3 个剪辑:
https://github.com/Zulko/moviepy/blob/master/moviepy/video/io/ffmpeg_tools.py#L27
然而,为了将所有内容连接在一起,您可能需要直接调用 ffmpeg。
我可以使用 moviepy 库为一段视频添加水印。但是,当我这样做时,它会获取带水印的片段,并用它创建一个新文件。我想弄清楚是否可以简单地将编辑的部分拼接回原始视频,因为 moviepy 写入磁盘非常慢,所以片段越小越好。
我在想也许可以使用 shutil?
video = mp.VideoFileClip("C:\Users\admin\Desktop\Test\demovideo.mp4").subclip(10,20)
logo = (mp.ImageClip("C:\Users\admin\Desktop\Watermark\watermarkpic.png")
.set_duration(20)
.resize(height=20) # if you need to resize...
.margin(right=8, bottom=8, opacity=0) # (optional) logo-border padding
.set_pos(("right","bottom")))
final = mp.CompositeVideoClip([video, logo])
final.write_videofile("C:\Users\admin\Desktop\output\demovideo(watermarked).mp4", audio = True, progress_bar = False)
有没有办法将带有水印的 10 秒片段复制回原始视频文件?或者是否有另一个图书馆允许我这样做?
您的用例中的慢点是 Moviepy 需要对电影的每一帧进行解码和重新编码。如果你想要速度,我相信有办法让FFMPEG在不重新编码的情况下复制视频片段。
所以你可以使用ffmpeg将视频切割成3个子片段(之前。mp4/fragment.mp4/after.mp4),只处理fragment.mp4,然后用ffmpeg重新连接所有片段。
可以从 moviepy 中使用 ffmpeg 切割成 3 个剪辑:
https://github.com/Zulko/moviepy/blob/master/moviepy/video/io/ffmpeg_tools.py#L27
然而,为了将所有内容连接在一起,您可能需要直接调用 ffmpeg。