如何在FFMPEG中制作带静态图像背景的视频?

Tim*_*ick 13 ffmpeg

我有一张图片.我有一个透明的FLV.我想使用图像作为透明FLV的背景,并将其输出为FLV.

此命令有效但视频长度为一帧:

ffmpeg -i background.png -f flv -vcodec flv -b 1500k -vf "movie=test_videos/alpha.flv [logo]; [in][logo] overlay=0:0 [out]" -s 800x464 -y output.flv
Run Code Online (Sandbox Code Playgroud)

我试图使用-t和-vframes参数无济于事.

有人有任何提示吗?

Chr*_*aas 6

我为我最初的评论道歉,我的搜索最初产生了很少的结果.

现在看一下我看到的文档,你应该能够做到这一点.我没有时间测试这个,但我会尝试两次通过.第一遍应该将您的PNG变成具有透明背景的电影,其持续时间与您的其他电影相同.就像是:

ffmpeg -loop_input -f image2 -i background.png -r 25 -vframes 250 -an -vcodec png test.mov
Run Code Online (Sandbox Code Playgroud)

我为视频编解码器选择了PNG,因为根据这篇文章它支持MOV容器的透明度.

那么你应该希望能够将这部电影传输到你拥有图像的原始命令中.

  • **重要的提示**使流程**更快**:指定**4或更多THREADS***(经验法则是每个CPU 1个)*你把它放在首位**`ffmpeg.exe -threads 4 - 我回来了......`**.**第二个提示**:如果您使用`MP3`作为音轨,并且您的目标文件扩展名是`.MP4`**,请指定`-acodec copy`**这样您将节省大量处理你**可以在10秒内完成**.*别客气.* (3认同)
  • 很棒,克里斯.得到我想要的完整解决方案就是这个命令:ffmpeg -loop_input -f image2 -i background.png -r 25 -vframes 2500 -an -vcodec libx264 -b 1500k -vf"movie = test_videos/alpha.flv [logo ]; [in] [logo] overlay = 0:0 [out]"-s 800x464 -y output.mov (2认同)

Tim*_*ick 5

让我得到我想要的完整解决方案是这个命令:

ffmpeg -loop_input -f image2 -i background.png -r 25 -vframes 2500 -an -vcodec libx264 -b 1500k -vf "movie=test_videos/alpha.flv [logo]; [in][logo] overlay=0:0 [out]" -s 800x464 -y output.mov
Run Code Online (Sandbox Code Playgroud)