ffmpegで2つのmp4ビデオファイルをマージ中にエラーが発生しました


0

私はそれらをマージしたいmp4ビデオファイルがほとんどありません。

このコマンドを使用して、.mp4を.tsに変換し、それらを結合します。参照

ffmpeg -i part1.mp4  -bsf:v h264_mp4toannexb -f mpegts -y part1.ts # executes successfully

ffmpeg -i part2.mp4  -bsf:v h264_mp4toannexb -f mpegts -y part2.ts # executes successfully

ffmpeg -i "concat:part1.ts|part2.ts"  -bsf:a aac_adtstoasc -y full.mp4 # Error

エラー:(ただし、実行は継続します)入力パケットが小さすぎるエラーストリーム#0:1の過去の期間0.999992が大きすぎるため、出力パケットにビットストリームフィルターを適用しています

他のビデオファイルとは異なる2つのファイルをマージするには数時間以上かかります(part2.mp4には問題があると思いますが、それを解決する方法がわかりません)

ビデオ情報はこちら

part1.mp4

 C:\Users\JAGZ\Desktop\vid>ffmpeg -i part1.mp4
ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 6.3.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-b
zlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcac
a --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr
--enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --e
nable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enab
le-zlib
  libavutil      55. 34.101 / 55. 34.101
  libavcodec     57. 64.101 / 57. 64.101
  libavformat    57. 56.101 / 57. 56.101
  libavdevice    57.  1.100 / 57.  1.100
  libavfilter     6. 65.100 /  6. 65.100
  libswscale      4.  2.100 /  4.  2.100
  libswresample   2.  3.100 /  2.  3.100
  libpostproc    54.  1.100 / 54.  1.100
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'part1.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.66.104
  Duration: 00:00:07.21, start: 0.000000, bitrate: 2355 kb/s
    Stream #0:0(und): Video: h264 (Main) (avc1 / 0x31637661), yuv420p(tv, bt470bg), 720x576 [SAR 128:117 DAR 160:117], 2034 kb/s, 25 fps, 2
5 tbr, 90k tbn, 50 tbc (default)
    Metadata:
      handler_name    : VideoHandler
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 317 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
At least one output file must be specified

part2.mp4

C:\Users\JAGZ\Desktop\vid>ffmpeg -i part2.mp4
ffmpeg version 3.2.4 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 6.3.0 (GCC)
  configuration: --enable-gpl --enable-version3 --enable-d3d11va --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-b
zlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcac
a --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb
--enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libsnappy --enable-libsoxr
--enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --e
nable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enab
le-zlib
  libavutil      55. 34.101 / 55. 34.101
  libavcodec     57. 64.101 / 57. 64.101
  libavformat    57. 56.101 / 57. 56.101
  libavdevice    57.  1.100 / 57.  1.100
  libavfilter     6. 65.100 /  6. 65.100
  libswscale      4.  2.100 /  4.  2.100
  libswresample   2.  3.100 /  2.  3.100
  libpostproc    54.  1.100 / 54.  1.100
[mov,mp4,m4a,3gp,3g2,mj2 @ 003075c0] stream 0, timescale not set
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'part2.mp4':
  Metadata:
    major_brand     : M4V
    minor_version   : 1
    compatible_brands: M4V M4A mp42isom
    creation_time   : 2016-03-07T16:01:20.000000Z
    title           : 2006/14 Coke Crisis
    media_type      : 9
    network         : A/V Input
    date            : 2016-03-07
    iTunMOVI        : <?xml version="1.0" encoding="UTF-8"?>
                    : <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
                    : <plist version="1.0">
                    : <dict>
                    :   <key>asset-info</key>
                    :   <dict>
                    :           <key>file-size</key>
                    :           <integer>837215671</integer>
                    :           <key>flavor</key>
                    :           <string>4:640x480</string>
                    :           <key>high-definition</key>
                    :           <false/>
                    :           <key>screen-format</key>
                    :           <string>standard</string>
                    :           <key>soundtrack</key>
                    :           <string>LC</string>
                    :   </dict>
                    :   <key>cast</key>
                    :   <array/>
                    :   <key>codirectors</key>
                    :   <array/>
                    :   <key>copy-warning</key>
                    :   <string></string>
                    :   <key>directors</key>
                    :   <array/>
                    :   <key>producers</key>
                    :   <array/>
                    :   <key>screenwriters</key>
                    :   <array/>
                    :   <key>studio</key>
                    :   <string></string>
                    : </dict>
                    : </plist>
                    :
  Duration: 01:09:03.08, start: 0.000000, bitrate: 1616 kb/s
    Stream #0:0(eng): Video: h264 (Baseline) (avc1 / 0x31637661), yuv420p(tv), 640x480 [SAR 1:1 DAR 4:3], 1485 kb/s, 24.99 fps, 25 tbr, 25k
 tbn, 50 tbc (default)
    Metadata:
      creation_time   : 2016-03-07T16:01:20.000000Z
      handler_name    : ?Apple Video Media Handler
      encoder         : H.264/AVC
    Stream #0:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s (default)
    Metadata:
      creation_time   : 2016-03-07T16:01:20.000000Z
      handler_name    : ?Apple Sound Media Handler
    Stream #0:2: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 512x748 [SAR 72:72 DAR 128:187], 90k tbr, 90k tbn, 90k tbc
At least one output file must be specified

誰かが私にこのビデオをマージするためにコマンドでどのような変更を加えることを提案できますか?


最初の3つのコマンドから完全な、カットされていないコマンドライン出力を提供してください。
slhck

@slhckが詳細を完全な出力で更新しました
-JAGGADAKU

再エンコードせずにこれらの2つのファイルを結合することはできません。異なるH264プロファイルと異なる解像度があります。
ダニエルB

それらを結合することは技術的には可能ですが、出力が期待どおりに表示されないか、再生されない場合があります。
slhck

@JAGGADAKUの出力ではなく、実行していた3つのコマンドの出力について尋ねましたffmpeg -i part1.mp4。(無効にする必要があり-v quietます。)
slhck

回答:


1

入力に問題があります。入力ビデオのフレームサイズが異なります(720×576と640×480)。このような場合、生のビットストリームを連結することはできません。できますが、再生は解像度の切り替えをサポートしません。最初の入力ビデオの解像度で表示されるか、一部のプレーヤーがクラッシュする可能性があります。

代わりに、おそらくビデオをデコードし、それらを共通の形式(フレームサイズ、フレームレート、色空間、ピクセルアスペクト比など)にしてから再エンコードする必要があります。

上記はconcatフィルターで実現できますが、最初に、これらの入力のいずれかをスケーリング/パディングする必要があります。たとえば、part2.mp4720×576(パディングあり)にアップスケーリングします。

ffmpeg -i part1.mp4 -i part2.mp4 -filter_complex "\
[0:v]setsar=1[0v]; \
[1:v]scale=720:576:force_original_aspect_ratio=decrease,setsar=1,\
     pad=720:576:(ow-iw)/2:(oh-ih)/2[1v]; \
[0v][0:a][1v][1:a]concat=n=2:v=1:a=1[outv][outa] \
" -map "[outv]" -map "[outa]" \
-c:v libx264 -crf 23 \
output.mp4

スケーリングと連結の詳細については、この投稿FFmpeg Wikiを参照してください。また、出力の品質を設定する方法については、H.264エンコーディングガイドをお読みください。


応答ありがとうございます...しかし、上記のコマンドはNo such filter: 'force_original_aspect_ratio' Error initializing complex filters. Invalid argument私が窓を走っていると言います
-JAGGADAKU

申し訳ありませんが、タイプミスがありました。もう一度お試しください。
-slhck

[Parsed_concat_2 @ 04930620] Input link in1:v0 parameters (size 720x576, SAR 1:1) do not match the corresponding output link in0:v0 paramet ers (720x576, SAR 128:117) [Parsed_concat_2 @ 04930620] Failed to configure output pad on Parsed_concat_2 Error configuring complex filters. Invalid argumentさて、これは私は申し訳ありませんが、私はこのフィルタ複合体がどのように機能するかについてどんな考えを持っていない........問題である
JAGGADAKU

確かに、ピクセルの縦横比は2つのファイルでも異なるため、1に変更する必要があります。複雑なフィルターは理解するのが少し複雑です。入力ファイルと要求された出力を提供することは、助けになります。
-slhck

別の質問。私はすでにffmpegでlibx264を有効にしているのに、なぜそう言うのですか[NULL @ 047eb220] Unable to find a suitable output format for 'libx264' libx264: Invalid argument
-JAGGADAKU
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.