【问题标题】:ffmpeg concat error-unusual videoffmpeg concat错误-不寻常的视频
【发布时间】:2017-07-20 01:16:44
【问题描述】:

我一直在尝试使用以下命令将两个 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:a]atempo=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

【问题讨论】:

  • 运行ffmpeg -i input1 -i input2 然后运行edit 你的问题以添加该命令的完整控制台输出。
  • 我做了,上面的错误出现了。
  • 运行ffmpeg -i C:\moviepy-master\extract1.mp4 -i C:\moviepy-master\extract2.mp4 并显示输出。它将显示有关两个输入的有用信息。

标签: video ffmpeg concat


【解决方案1】:

您的输入在帧速率、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

【讨论】:

  • 我的视频大约60分钟长,这个过程很慢,有没有比这更快的方法
  • 另外有没有我可以参考的文档,就像在阅读视频参数时一样。
  • @Samhitavempatti 要提高编码速度,请使用更快的x264 encoding preset。或者只是重新编码具有不正确参数的段,并在流复制模式下使用 concat demuxer 加入 (-c copy)。读取参数见ffprobedocumentationexamples
猜你喜欢
  • 2018-10-10
  • 2021-12-27
  • 2019-11-22
  • 2016-05-26
  • 1970-01-01
  • 2017-09-20
  • 2019-12-28
  • 1970-01-01
  • 2017-04-13
相关资源
最近更新 更多