合并视频后,时长过长 - ffmpeg

3
我有一个内容为txt的文件。
file intro.mp4
file video.mp4
file outtro.mp4

使用以下命令,我使用ffmpeg将3个文件合并为一个文件:

持续时间分别为10秒178秒13秒

ffmpeg -f concat -i "file.txt" -vcodec copy -acodec copy "endfile.mp4"

endfile.mp4的持续时间为11分钟(660秒)。

我有一个问题,即视频的哪些参数会影响合并呢?还有有没有其它常见的参数可以用来合并视频?

我的英语实在太糟糕了,很抱歉 :)
本周工作愉快!

P/S文件的详细信息如下:

intro.mp4:

ffprobe version N-82885-g6d09d6e Copyright (c) 2007-2016 the FFmpeg developers<br>
    built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-17)<br>
    configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags='-L/root/ffmpeg_build/lib -ldl' --<br>bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame<br> --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265<br>
    libavutil      55. 43.100 / 55. 43.100<br>
    libavcodec     57. 68.100 / 57. 68.100<br>
    libavformat    57. 61.100 / 57. 61.100<br>
    libavdevice    57.  2.100 / 57.  2.100<br>
    libavfilter     6. 68.100 /  6. 68.100<br>
    libswscale      4.  3.101 /  4.  3.101<br>
    libswresample   2.  4.100 /  2.  4.100<br>
    libpostproc    54.  2.100 / 54.  2.100<br>
  Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/path/to/intro.mp4':<br>
    Metadata:<br>
    major_brand     : isom<br>
    minor_version   : 512<br>
    compatible_brands: isomiso2avc1mp41<br>
    encoder         : Lavf56.23.100<br>
  Duration: 00:00:10.08, start: -0.013061, bitrate: 701 kb/s<br>
    Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)<br>
    Metadata:<br>
    handler_name    : SoundHandler<br>
    Stream #0:1(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 853 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)<br>
  Metadata:<br>
    handler_name    : VideoHandler<br>

outtro.mp4:

ffprobe version N-82885-g6d09d6e Copyright (c) 2007-2016 the FFmpeg developers<br>
    built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-17)<br>
    configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags='-L/root/ffmpeg_build/lib -ldl' --<br>bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame<br> --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265<br>
    libavutil      55. 43.100 / 55. 43.100<br>
    libavcodec     57. 68.100 / 57. 68.100<br>
    libavformat    57. 61.100 / 57. 61.100<br>
    libavdevice    57.  2.100 / 57.  2.100<br>
    libavfilter     6. 68.100 /  6. 68.100<br>
    libswscale      4.  3.101 /  4.  3.101<br>
    libswresample   2.  4.100 /  2.  4.100<br>
    libpostproc    54.  2.100 / 54.  2.100<br>
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/path/to/outtro.mp4':<br>
Metadata:<br>
    major_brand     : isom<br>
    minor_version   : 512<br>
    compatible_brands: isomiso2avc1mp41<br>
    encoder         : Lavf56.23.100<br>
Duration: 00:00:13.08, start: -0.013061, bitrate: 481 kb/s<br>
Stream #0:0(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 128 kb/s (default)<br>
Metadata:<br>
    handler_name    : SoundHandler<br>
Stream #0:1(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080, 392 kb/s, 24 fps, 24 tbr, 12288 tbn, 48 tbc (default)<br>
Metadata:<br>
    handler_name    : VideoHandler<br>

video.mp4

ffprobe version N-82885-g6d09d6e Copyright (c) 2007-2016 the FFmpeg developers<br>
    built with gcc 4.4.7 (GCC) 20120313 (Red Hat 4.4.7-17)<br>
    configuration: --prefix=/root/ffmpeg_build --extra-cflags=-I/root/ffmpeg_build/include --extra-ldflags='-L/root/ffmpeg_build/lib -ldl' --<br>bindir=/root/bin --pkg-config-flags=--static --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-libfreetype --enable-libmp3lame<br> --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265<br>
    libavutil      55. 43.100 / 55. 43.100<br><br>
    libavcodec     57. 68.100 / 57. 68.100<br><br>
    libavformat    57. 61.100 / 57. 61.100<br><br>
    libavdevice    57.  2.100 / 57.  2.100<br><br>
    libavfilter     6. 68.100 /  6. 68.100<br><br>
    libswscale      4.  3.101 /  4.  3.101<br><br>
    libswresample   2.  4.100 /  2.  4.100<br><br>
    libpostproc    54.  2.100 / 54.  2.100<br><br>
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'path/to/video.mp4':<br>
    Metadata:<br>
        major_brand     : isom<br>
        minor_version   : 512<br>
        compatible_brands: isomiso2avc1mp41<br>
        encoder         : Lavf57.61.100<br>
    Duration: 00:02:58.38, start: 0.000000, bitrate: 922 kb/s<br>
        Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 782 kb/s, 29.97 fps, 29.97 tbr, 30k <br>tbn, 59.94 tbc (default)<br>
        Metadata:<br>
            handler_name    : VideoHandler<br>
        Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 130 kb/s (default)<br>
        Metadata:<br>
            handler_name    : SoundHandler<br>

1
听起来像是时间基准不匹配。显示三个文件的属性: ffprobe file.mp4 - Gyan
@Mulvya 我编辑了我的帖子。现在我只能获得如上的详细信息。更多信息我稍后会更新。你有任何问题吗?参数有冲突吗? - Thanh Dao
我需要使用完整的输出。 - Gyan
@Mulvya 我附加了输出。这正确吗? - Thanh Dao
1个回答

6

介绍/结尾和主视频的分辨率、帧率和时间基准不匹配。

将您的介绍/结尾转换为此格式,然后连接:

ffmpeg -i intro.mp4 -s hd720 -r 30000/1001 -video_track_timescale 30k -c:a copy newintro.mp4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接