gpt4 book ai didi

ffmpeg - 添加图像叠加层时如何将较少的参数传递给ffmpeg

转载 作者:行者123 更新时间:2023-12-04 22:55:19 26 4
gpt4 key购买 nike

我正在使用 ffmpeg 处理视频,并且正在尝试在某些时候添加图像叠加层。我有这样的命令:

ffmpeg -i video.mp4 -i img_a.png -i img_xx.png -i some_third_image.png -i yy_img.png 
-filter_complex overlay=185:H-h-85:enable=between(t\\,1.1\\,2.3),overlay=285:H-h-415:enable=between(t\\,3.3\\,4.7),overlay=185:H-h-35:enable=between(t\\,5.7\\,6.0),overlay=45:H-h-515:enable=between(t\\,7.1\\,8.6)
-c:v libx264 -crf 20 -preset veryfast vid0.mp4

当我动态(以编程方式)形成/传递参数给 ffmpeg 时,可以有 非常非常长的参数列表 . 这么大,我什至可以收到关于参数列表太长(基于操作系统)的消息,然后我无法处理视频。 我想避免这种情况。我想知道如何用 ffmpeg 编写代码,这样传递给 ffmpeg 的参数会更少?例如,改为:
-i img_a.png -i img_xx.png -i some_third_image.png -i yy_img.png

可以是这样的:
-i "img_a.png,img_xx.png,some_third_image.png,yy_img.png"

(或类似的东西,更少的参数将传递给 ffmpeg)。如果可以,请提供如何在 ffmpeg 中编写此类命令的示例。

最佳答案

对于这种特定类型的命令,您可以从文件加载过滤器图。所有图像都可以加载到 filtergraph 中。
ffmpeg -i video.mp4 -filter_complex_script mygraph.txt -c:v libx264 -crf 20 -preset veryfast vid0.mp4
mygraph.txt 在哪里

movie=img_a.png[a];
movie=img_xx.png[xx];
movie=some_third_image.png[3rd];
movie=yy_img.png[yy];
[0][a]overlay=185:H-h-85:enable=between(t\,1.1\,2.3)[0-a];
[0-a][xx]overlay=285:H-h-415:enable=between(t\,3.3\,4.7)[0-xx];
[0-xx][3rd]overlay=185:H-h-35:enable=between(t\,5.7\,6.0)[0-3rd];
[0-3rd][yy]overlay=45:H-h-515:enable=between(t\,7.1\,8.6)

关于ffmpeg - 添加图像叠加层时如何将较少的参数传递给ffmpeg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55730070/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com