ffmpeg concat错误 - 不寻常的视频

时间:2017-07-18 10:33:58

标签: video ffmpeg concat

我一直在尝试使用以下命令将两个48秒视频位连接到一个

    ffmpeg -f concat -safe 0 -i C:\moviepy-master\concat.txt -c copy output.mp4

当我使用Windows媒体播放器播放时,前48秒播放正常,但播放器在播放第二位之前关闭。

然后我尝试使用VLC媒体播放器播放,但在第二位播放器但音频和视频不同步。

然后我也尝试单独输入,以便显示以下错误

            C:\Users\SAMHITA VVNK>ffmpeg -f concat -safe 0 -i C:\moviepy-master\extract1.mp4
             -i C:\moviepy-master\extract2.mp4 -c copy -flags +global_header output.mp4
            ffmpeg version N-86723-g3b3501f Copyright (c) 2000-2017 the FFmpeg developers
              built with gcc 7.1.0 (GCC)
              configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --e
            nable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --
            enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv
            --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-li
            bfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug -
            -enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enabl
            e-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-li
            bsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolam
            e --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx
             --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable
            -libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
              libavutil      55. 67.100 / 55. 67.100
              libavcodec     57.100.103 / 57.100.103
              libavformat    57. 75.100 / 57. 75.100
              libavdevice    57.  7.100 / 57.  7.100
              libavfilter     6. 94.100 /  6. 94.100
              libswscale      4.  7.101 /  4.  7.101
              libswresample   2.  8.100 /  2.  8.100
              libpostproc    54.  6.100 / 54.  6.100
            C:\moviepy-master\extract1.mp4: Invalid data found when processing input

这些是输入文件的规格如下         C:\ Users \ SAMHITA VVNK> ffmpeg -i C:\ moviepy-master \ extract.mp4 -filter_complex" [         0:V] setpts = 0.5 * PTS [V]; [0:一]安腾普= 2.0" -map" [a]" extract1fast.mp4

    C:\Users\SAMHITA VVNK>ffmpeg -i C:\moviepy-master\extract2.mp4 -i C:\moviepy-mas
    ter\extract1.mp4
    ffmpeg version N-86723-g3b3501f Copyright (c) 2000-2017 the FFmpeg developers
      built with gcc 7.1.0 (GCC)
      configuration: --enable-gpl --enable-version3 --enable-cuda --enable-cuvid --e
    nable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --
    enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv
    --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-li
    bfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug -
    -enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enabl
    e-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-li
    bsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolam
    e --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx
     --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable
    -libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-zlib
      libavutil      55. 67.100 / 55. 67.100
      libavcodec     57.100.103 / 57.100.103
      libavformat    57. 75.100 / 57. 75.100
      libavdevice    57.  7.100 / 57.  7.100
      libavfilter     6. 94.100 /  6. 94.100
      libswscale      4.  7.101 /  4.  7.101
      libswresample   2.  8.100 /  2.  8.100
      libpostproc    54.  6.100 / 54.  6.100
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\moviepy-master\extract2.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        encoder         : Lavf57.56.101
      Duration: 00:00:49.00, start: 0.012993, bitrate: 785 kb/s
        Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yu
    v420p(tv, smpte170m/smpte170m/bt709), 640x360, 668 kb/s, 29.97 fps, 29.97 tbr, 1
    1988 tbn, 23976 tbc (default)
        Metadata:
          handler_name    : VideoHandler
        Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, mono, fltp,
     137 kb/s (default)
        Metadata:
          handler_name    : SoundHandler
    Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'C:\moviepy-master\extract1.mp4':
      Metadata:
        major_brand     : isom
        minor_version   : 512
        compatible_brands: isomiso2avc1mp41
        encoder         : Lavf57.56.101
      Duration: 00:00:49.00, start: 0.012993, bitrate: 526 kb/s
        Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 640x360 [
    SAR 1:1 DAR 16:9], 462 kb/s, 24.86 fps, 24.86 tbr, 19888 tbn, 49.72 tbc (default
    )
        Metadata:
          handler_name    : VideoHandler
        Stream #1:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, flt
    p, 95 kb/s (default)
        Metadata:
          handler_name    : SoundHandler

1 个答案:

答案 0 :(得分:0)

您的输入在帧速率,H.264配置文件和音频通道方面各不相同,但concat demuxer要求所有内容都相同。在使用concat demuxer之前,将所有内容与类似参数一致,或者使用concat filter代替。

基本示例:

ffmpeg -i input0.mp4 -i input1.mp4 -filter_complex "[0:v][0:a][1:v][1:a]concat=n=2:v=1:a=1" output.mp4

这将依赖于concat过滤器的默认值,它将自动选择视频流的常见像素格式,以及音频流的常见样本格式,采样率和通道布局。当然,这些“常用”参数会根据您的输入而有所不同,因此,如果您想要一致的结果,建议在concat过滤器前加上其他过滤器以符合所有内容。

高级示例:

ffmpeg -i input0.mp4 -i input1.mp4 -filter_complex "[0:v]fps=25,format=yuv420p,setpts=PTS-STARTPTS[v0];[0:a]aformat=sample_rates=44100:channel_layouts=stereo,asetpts=PTS-STARTPTS[a0];[1:v]fps=25,format=yuv420p,setpts=PTS-STARTPTS[v1];[1:a]aformat=sample_rates=44100:channel_layouts=stereo,asetpts=PTS-STARTPTS[a1];[v0][a0][v1][a1]concat=n=2:v=1:a=1" -movflags +faststart output.mp4