首页 > 解决方案 > 如何使用 ffmpeg 连接 3 个 mp4 文件(在结果视频中面临错误)?

问题描述

我有 3 个 mp4 格式的视频。它们具有相同的分辨率(640 X 1280),但帧速率等其他属性不同。我想背靠背加入他们。所以我在互联网上进行了检查,我使用了以下方法

:: Create File List
echo file file1.mp4 >  mylist.txt 
echo file file2.mp4 >> mylist.txt
echo file file3.mp4 >> mylist.txt

:: Concatenate Files
ffmpeg -f concat -i mylist.txt -c copy output.mp4

但不幸的是它没有用。在生成的视频中,file1 部分​​被冻结,整个视频的音频发生了变化(不知道如何)。其他方法也无法正常工作

我只是想背靠背加入他们。知道怎么做吗?

编辑:-我检查了ffmpeg的输出(在bat中使用pause命令并发现了以下内容。也许它可能有助于解决这个问题)

C:\Users\Cascade_Games\Desktop\Cascade Empire\ffmpeg-4.3.1-2020-10-01-full_build\bin>ffmpeg -f concat -i mylist.txt -vcodec copy -acodec copy Mux1.mp4
ffmpeg version 4.3.1-2020-10-01-full_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 10.2.0 (Rev3, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 000002a0474e6a40] Auto-inserting h264_mp4toannexb bitstream filter
Input #0, concat, from 'mylist.txt':
  Duration: N/A, start: -0.023220, bitrate: 2447 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x640 [SAR 1:1 DAR 2:1], 2320 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc
    Metadata:
      handler_name    : VideoHandle
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s
    Metadata:
      handler_name    : SoundHandler
Output #0, mp4, to 'Mux1.mp4':
  Metadata:
    encoder         : Lavf58.45.100
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x640 [SAR 1:1 DAR 2:1], q=2-31, 2320 kb/s, 30 fps, 30 tbr, 15360 tbn, 15360 tbc
    Metadata:
      handler_name    : VideoHandle
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s
    Metadata:
      handler_name    : SoundHandler
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
[mov,mp4,m4a,3gp,3g2,mj2 @ 000002a04750d700] Auto-inserting h264_mp4toannexb bitstream filter
[mov,mp4,m4a,3gp,3g2,mj2 @ 000002a0474ef040] Auto-inserting h264_mp4toannexb bitstream filter
[mp4 @ 000002a0478e09c0] Non-monotonous DTS in output stream 0:1; previous: 30282976, current: 27826977; changing to 30282977. This may result in incorrect timestamps in the output file.
[mp4 @ 000002a0478e09c0] Non-monotonous DTS in output stream 0:1; previous: 30282977, current: 27828129; changing to 30282978. This may result in incorrect timestamps in the output file.
(Same Thing was getting repeated,hence I deleted it)
[mp4 @ 000002a0478e09c0] Non-monotonous DTS in output stream 0:1; previous: 30283209, current: 28095393; changing to 30283210. This may result in incorrect timestamps in the output file.
[mp4 @ 000002a0478e09c0] Non-monotonous DTS in output stream 0:1; previous: 30283210, current: 28096545; changing to 30283211. This may result in incorrect timestamps in the output file.
[mp4 @ 000002a0478e09c0] aac bitstream error
    Last message repeated 234 times
frame=18937 fps=11438 q=-1.0 Lsize=   49051kB time=00:11:26.69 bitrate= 585.2kbits/s speed= 415x
video:40720kB audio:7653kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.401324%

编辑:- 所有文件的信息(我已将视频名称更改为 1.mp4、2.mp4、3.mp4)

C:\Users\Cascade_Games\Desktop\Cascade Empire\ffmpeg-4.3.1-2020-10-01-full_build\bin>ffmpeg -i 1.mp4 -i 2.mp4 -i 3.mp4
ffmpeg version 4.3.1-2020-10-01-full_build-www.gyan.dev Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 10.2.0 (Rev3, Built by MSYS2 project)
  configuration: --enable-gpl --enable-version3 --enable-static --disable-w32threads --disable-autodetect --enable-fontconfig --enable-iconv --enable-gnutls --enable-libxml2 --enable-gmp --enable-lzma --enable-libsnappy --enable-zlib --enable-libsrt --enable-libssh --enable-libzmq --enable-avisynth --enable-libbluray --enable-libcaca --enable-sdl2 --enable-libdav1d --enable-libzvbi --enable-librav1e --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-libaom --enable-libopenjpeg --enable-libvpx --enable-libass --enable-frei0r --enable-libfreetype --enable-libfribidi --enable-libvidstab --enable-libvmaf --enable-libzimg --enable-amf --enable-cuda-llvm --enable-cuvid --enable-ffnvcodec --enable-nvdec --enable-nvenc --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-libcdio --enable-libgme --enable-libmodplug --enable-libopenmpt --enable-libopencore-amrwb --enable-libmp3lame --enable-libshine --enable-libtheora --enable-libtwolame --enable-libvo-amrwbenc --enable-libilbc --enable-libgsm --enable-libopencore-amrnb --enable-libopus --enable-libspeex --enable-libvorbis --enable-ladspa --enable-libbs2b --enable-libflite --enable-libmysofa --enable-librubberband --enable-libsoxr --enable-chromaprint
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.45.100
  Duration: 00:00:05.27, start: 0.000000, bitrate: 2337 kb/s
    Stream #0:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x640 [SAR 1:1 DAR 2:1], 2320 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandle
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 127 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '2.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.45.100
  Duration: 00:10:25.70, start: 0.000000, bitrate: 616 kb/s
    Stream #1:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x640 [SAR 1:1 DAR 2:1], 511 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #1:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, mono, fltp, 96 kb/s (default)
    Metadata:
      handler_name    : SoundHandle
Input #2, mov,mp4,m4a,3gp,3g2,mj2, from '3.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf58.45.100
  Duration: 00:00:08.50, start: 0.000000, bitrate: 447 kb/s
    Stream #2:0(und): Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuv444p, 1280x640 [SAR 1:1 DAR 2:1], 228 kb/s, 2 fps, 2 tbr, 16384 tbn, 4 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #2:1(und): Audio: mp3 (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 319 kb/s (default)
    Metadata:
      handler_name    : SoundHandler

标签: audiovideoffmpegmp4

解决方案


推荐阅读