ffmpeg concat使视频更长

时间:2017-04-24 02:30:48

标签: video ffmpeg

我有2个视频文件,我想使用ffmpeg

连接

initial.mp4 视频:h264(高)(avc1 / 0x31637661),yuv420p(tv),720x720,1077 kb / s,15.98 fps,16 tbr,600 tbn,1200 tbc(默认)

ending.mp4 视频:h264(高)(avc1 / 0x31637661),yuv420p(tv,bt470bg),720x720 [SAR 1:1 DAR 1:1],1287 kb / s,25 fps,25 tbr,25k tbn,50 tbc(默认< / p>

video_instructions_with_ending.txt

file initial.mp4
file initial.mp4
file initial.mp4
file ending.mp4

FFmpeg命令

ffmpeg -f concat -i video_instructions_with_ending.txt -c copy output.mp4 -y

output.mp4 视频:h264(高)(avc1 / 0x31637661),yuv420p(tv),720x720,27 kb / s,0.43 fps,48 tbr,19200 tbn,38400 tbc(默认)

输出文件应为6秒。但是输出文件是3分32秒。

任何帮助将不胜感激

对于我使用的文件,您可以从HERE

获取

2 个答案:

答案 0 :(得分:1)

ending.mp4上运行此命令,然后使用新文件连接:

ffmpeg -i ending.mp4 -c copy -video_track_timescale 600 newending.mp4

长话短说,时基不同,所以结尾视频会延长。有关时间戳&amp;的上下文,请参阅https://stackoverflow.com/a/43337235/5726027。碱基。

答案 1 :(得分:1)

我尝试了以下命令,它对我有用

ffmpeg -i initial.mp4 -i initial.mp4 -i initial.mp4 -i ending.mp4 -filter_complex concat=n=4:v=1:a=0 -f MOV output.mp4 -y

<强>说明: FFmpeg有三个concat方法

  1. concat协议(ffmpeg -i&#39; concat:input1 | input2&#39; -codec copy output)。 - 将它用于二进制concat兼容文件,如avi,mpeg-ts文件
  2. concat demuxer(您解释的方法) - 当您想避免重新编码时使用,并且您的格式不支持文件级别连接。
  3. concat过滤器:(上面的答案) - 如果您需要重新编码,例如在应用过滤器时使用。
  4. 第3个选项适合场景,因为我们需要重新编码文件。