ffmpeg concat 使视频更长

Ria*_*ndy 6 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,25 kbt,2 (默认

video_instructions_with_ending.txt

file initial.mp4
file initial.mp4
file initial.mp4
file ending.mp4
Run Code Online (Sandbox Code Playgroud)

FFmpeg 命令

ffmpeg -f concat -i video_instructions_with_ending.txt -c copy output.mp4 -y
Run Code Online (Sandbox Code Playgroud)

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

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

任何帮助将不胜感激

对于我使用的文件,您可以从以下位置获取:这里

aru*_*nk2 3

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

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
Run Code Online (Sandbox Code Playgroud)

说明: FFmpeg共有三种concat方法

  1. concat 协议(ffmpeg -i 'concat:input1|input2' -codec 复制输出)。- 将其用于二进制连接兼容文件,例如 avi、mpeg-ts 文件
  2. concat demuxer(您已经解释过的方法) - 当您想避免重新编码并且您的格式不支持文件级串联时使用。
  3. concat 过滤器:(上述答案)- 如果您需要重新编码(例如应用过滤器时),请使用。

第三个选项适合这种情况,因为我们需要重新编码文件。