Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image Ffmpeg在无需重新编码的视频之前,将图像显示数秒_Image_Video_Ffmpeg_Png - Fatal编程技术网

Image Ffmpeg在无需重新编码的视频之前,将图像显示数秒

Image Ffmpeg在无需重新编码的视频之前,将图像显示数秒,image,video,ffmpeg,png,Image,Video,Ffmpeg,Png,我一直在到处找这个。问题是,大多数谷歌搜索结果都是只从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文件创建视频。 我找到了执行此任务的命令:

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秒钟?

通过


您可以尝试使用与其他视频相同的编码选项将图像单独编码为短视频。然后将两个视频连接在一起。您正在使用concat过滤器。任何过滤器的使用都意味着ffmpeg将重新编码。如上所述,使用剩余的资源生成一个组合视频,然后使用concat demuxer将两者组合,同时指定-ccopy@Mulvya,我会试试这个,然后再打给你,非常感谢@Mulvya,出于某种奇怪的原因,这样做会使视频速度降低4倍我尝试过的代码:ffmpeg-y-loop 1-framerate 60-r60-t5-I sample-out3.jpg-t5-f lavfi-I aevalsrc=0-c:v libx264 playervid.mp4 ffmpeg-f concat-I vidlist.txt-c copy output.mp4 vidlist包含:file'playervid.mp4'file'playVideo.mp4'我不明白为什么,视频不是CFR tho,但大部分听起来像是时基差异。为游戏视频和您生成的视频发布ffprobe输出。谢谢,这有很大帮助,将过程加快了大约100倍,只是在音频去同步和单声道方面存在一些问题,因此必须将AEVALRC=0更改为AEVALRC=0 | 0:s=48000,我不确定是否需要对比特率做些什么。不,比特率可以单独使用。
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