Ffmpeg 在视频之前显示图像多秒而不重新编码

Ffmpeg show an image for multiple seconds before a video without re-encoding

我一直在四处寻找这个。问题是大多数 google 搜索最终都是关于从纯 PNG 文件创建视频。 我发现这个命令可以完成这项工作:

ffmpeg -y -loop 1 -framerate 60 -t 5 -i firstimage.jpg  -t 5 -f lavfi -i aevalsrc=0 -loop 1 -framerate 60 -t 5 -i secondimage.png -t 5 -f lavfi -i aevalsrc=0 -loop 1 -framerate 60 -t 5 -i thirdimage.png -t 5 -f lavfi -i aevalsrc=0 -i "shadowPlayVid.mp4" -filter_complex "[0:0][1:0][2:0][3:0][4:0][5:0][6:0][6:1] concat=n=4:v=1:a=1 [v] [a]" -map [v] -map [a] output.mp4 >> log_file1.txt 2>&1

不过好像是对整个视频重新编码,输入视频是没有CFR的H.264,不过我觉得在视频前放一些图片应该不会花太长时间。

因为它最终会对整个内容进行编码,所以在功能强大的计算机上,对于 30 分钟的视频,这大约需要 2 个小时,而我觉得如果不进行编码,这应该可以更快地完成。如何确保它不会重新编码,同时保持每张图片先显示 5 秒?

通过

生成您的playervid.mp4
ffmpeg -y -loop 1 -framerate 60 -t 5 -i sample-out3.jpg -f lavfi -t 5 -i aevalsrc=0 -vf settb=1/60000 -video_track_timescale 60000 -c:v libx264 -pix_fmt yuv420p playervid.mp4