gpt4 book ai didi

video - 将多个带有黑屏循环的视频连接成一个视频

转载 作者:行者123 更新时间:2023-12-04 23:06:13 26 4
gpt4 key购买 nike

我正在使用 ffmpeg 将一堆视频连接在一起。
我正在使用经典的加入 ffmpeg 代码:

ffmpeg -f concat -i joinlist.txt -c copy joinedfile.mp4

但问题是视频的格式、编码不同,但大小相同:都是 640x480。我想加入他们所有人,并在其他视频中放一个没有声音的黑屏视频:
video1 + black_screen_video + video2 + black_screen_video + video3 ...

我使用以下方法生成了一个持续时间为 2 秒的黑屏视频:
ffmpeg -f lavfi -i color=c=black:s=640x480:d=2 black_screen_video.mp4

因此所有视频的大小都相同:640x480 和 25 fps,但编解码器不同。视频有声音,除了黑屏视频。
我不能手动做任何事情,因为视频的数量大约有几百个。所以它必须是一种自动的方式来完成这一切。

当我使用上面的代码将它们连接在一起时,生成的视频根本无法正确播放。

我知道我必须重新编码它们,但是如何用一行代码一次对所有这些视频执行此操作?

更新:
我已经成功地使用了这段代码将它们连接在一起,但只有三个,如果我有超过一百个,一一写下来很费时间:
ffmpeg -i vid1.avi -i vid2.avi -i vid3.avi -filter_complex "[0:v:0] [0:a:0] [1:v:0] [1:a:0] [2:v:0] [2:a:0] concat=n=3:v=1:a=1 [v] [a]" -map "[v]" -map "[a]" output.mp4

但这只是加入视频,而不是循环播放黑屏视频。当我使用黑屏时,ffmpeg 会给我流匹配错误。

更新:

这是控制台图像:
enter image description here

第二次更新:

很长的红色错误列表,截图如下:
enter image description here

最佳答案

像以前一样使用 concat demuxer。

您的文本文件将是:

file 'vid1.avi'
file 'black_screen_video.mp4'
file 'vid2.avi'
file 'black_screen_video.mp4'
file 'vid3.avi'
file 'black_screen_video.mp4'
...

你的命令:
ffmpeg -f concat -i joinlist.txt joinedfile.mp4

您还需要在黑屏视频中包含一个虚拟音频。
ffmpeg -f lavfi -i color=c=black:s=640x480:d=2 -f lavfi -i aevalsrc=0:c=2:d=2 black_screen_video.mp4

关于video - 将多个带有黑屏循环的视频连接成一个视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36123146/

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