【发布时间】:2014-03-27 23:16:37
【问题描述】:
我尝试了许多不同的方法来尝试从图像文件中创建一个 10 秒的视频文件,并且我使用了所有相同的开关和编解码器来编码我的视频文件。但是,当我使用除了 complex_filter (强制视频通过另一轮转码)之外的任何东西连接两者时,生成的视频文件已损坏。我相信这是由于 ffmpeg 从图像创建的 10 秒剪辑的固有差异,但必须有某种方法让它以与我的视频文件完全相同的方式进行编码。
这是我用来将图像转换为 10 秒视频剪辑的命令(我添加了一个无声 mp3,因为我认为从视频中途开始的音频流会搞砸):
ffmpeg -loop 1 -i splash.jpg -i silence.mp3 -c:v libx264 -preset slow -g 60 -r 29.97 -crf 16 -c:a libfdk_aac -b:a 256k -cutoff 18000 -t 5 tmpoutput1.mp4
这是我用来编码视频的命令:
ffmpeg -i input.f4v -c:v libx264 -preset slow -g 60 -r 29.97 -crf 16 -c:a libfdk_aac -b:a 256k -cutoff 18000 tmpoutput2.mp4
这是我用来将它们都转换为 .ts 以准备 concat 的命令:
ffmpeg -i tmpoutput1.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts tmpoutput1.ts
最后是 concat(这是我疯狂的视频损坏的地方,一路上一切看起来都很好):
ffmpeg -i "concat:tmpoutput1.ts|tmpoutput2.ts" -c copy output.mp4
同样,问题是我已经对所有内容进行了一次转码,并且我应该能够以足够相似的结构对其进行转码,这样就可以将其连接起来,而无需在末尾添加另一个转码。
之前有没有人用 ffmpeg 成功地在视频前面添加了全帧启动图形?我正在使用全新的 ffmpeg 交叉编译,因为我认为这可能是问题所在,但可惜,更新后问题仍然存在。
谢谢!
【问题讨论】: