ffmpeg 在 alphamerging 之后将图像叠加到视频中

ffmpeg 在 alphamerging 之后将图像叠加到视频中

我目前有两个视频,word.mp4word.matte.mp4。我正在尝试将这alphamerge两个视频image.jpg叠加在一起。

我尝试使用的命令是我根据这个问题,给了我一个错误

ffmpeg -i word.mp4 -i word.matte.mp4 -i image.jpg -filter_complex '[1][0]scale2ref[mask][main];[main][mask]alphamerge[vid];[2:v][vid]overlay=(W-w)/2:(H-h)/2[out]' -map [out] complete.mp4

但我收到这个错误

Stream mapping:
  Stream #0:0 (hevc) -> scale2ref:ref
  Stream #1:0 (mpeg4) -> scale2ref:default
  Stream #2:0 (mjpeg) -> overlay:main
  overlay -> Stream #0:0 (libx264)
Press [q] to stop, [?] for help
[libx264 @ 0x560faabe37c0] width not divisible by 2 (983x1115)
Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
Conversion failed!

任何帮助,将不胜感激

答案1

为了实现广泛兼容的播放,最终输出的宽度和高度必须相等。在这种情况下,这些尺寸与 JPEG 输入相同。

最快的方法是调整 JPEG 的大小。

ffmpeg -i image.jpeg -vf "scale=bitand(iw+1,65534):bitand(ih+1,65534)" -q:v 2 new.jpg

相关内容