ffmpeg使用半透明视频覆盖视频

时间:2015-10-22 11:18:43

标签: ffmpeg

我正在尝试使用ffmpeg将背景视频与另一个半透明视频叠加。

感谢Overlaying multiple videos with ffmpeg我设法将视频叠加放在背景视频上。

问题是我不知道如何制作叠加视频半透明。

到目前为止,我正在使用以下命令:

ffmpeg -i VID_105470127_044810.mp4 -vf "movie=VID_21550603_142437.mp4 [a]; [in][a] overlay=10:10 [c]" combined.mp4

ffmpeg -i VID_105470127_044810.mp4  -i VID_21550603_142437.mp4 -filter_complex "overlay, overlay=10:10" combined.mp4

我试着玩淡化效果,但这不是我想要的。请指出我在哪里寻找,我可以尝试实现这一目标。

更新#1

看起来混合过滤器正是我需要的,但另一个问题出现了:

ffmpeg -i video1280x720.mp4 -vf "movie=video640x640.mp4 [a]; [in][a] overlay=10:10 [c]" combined.mp4

[Parsed_blend_3 @ 0x7f8041500da0] First input link top parameters (size 1280x720, SAR 1:1) do not match the corresponding second input link bottom parameters (640x640, SAR 1:1)
[Parsed_blend_3 @ 0x7f8041500da0] Failed to configure output pad on Parsed_blend_3

所以,如果我可以解决不同分辨率的问题,我可能完成了我的任务。 请指出要走的路。

更新#2

要解决不同的分辨率问题,我决定裁剪视频,然后继续混合滤镜

ffmpeg -i VID_1920x1080.mp4 -filter:v "crop=640:640:0:0" -c:a copy VID_1920x1080_cropped.mp4

ffmpeg -i VID_1920x1080_cropped.mp4 -i VID_21550603_142437.mp4 \
-filter_complex "[1:0] setdar=dar=1,format=rgba [a]; [0:0]setdar=dar=1,format=rgba [b]; [b][a]blend=all_mode='overlay':all_opacity=0.8" blended.mp4

2 个答案:

答案 0 :(得分:0)

作为解决方案,我设法裁剪文件:

ffmpeg -i VID_1920x1080.mp4 -filter:v "crop=640:640:0:0" -c:a copy VID_1920x1080_cropped.mp4

...然后与另一个视频混合:

ffmpeg -i VID_1920x1080_cropped.mp4 -i VID_21550603_142437.mp4 -filter_complex \
"[1:0]setdar=dar=1,format=rgba[a]; \
 [0:0]setdar=dar=1,format=rgba[b]; \
 [b][a]blend=all_mode='overlay':all_opacity=0.8" \
blended.mp4

答案 1 :(得分:-2)

以下图书馆支持支持将两个视频在没有ffmpeg的情况下通过叠加在另一个上进行组合。

https://github.com/LanSoSdk/LanSoEditor_advance

我检查了这个库,这个库是基于GPUImage(opengl es)开发的。

当前库不是免费版。