「file_1」、「file_2」、「file_3」、「file_4」という4つのMP4ファイルがあり、file_1、file_2、file_3、file_4の順序で1つのファイルにマージしたいと思います。
file_1には次の特徴があります。
frame width = 640
frame height = 480
frame rate = 29 frames/second
audio sample rate = 44kHz
file_2、file_3、およびfile_4には、それぞれ次の特性があります。
frame width = 640
frame height = 480
frame rate = 30 frames/second
audio sample rate = 48kHz
Avidemux v2.5.4の「追加」機能を使用して、file_2とfile_3をfile_2_3にマージし、オーディオとビデオはfile_2_3で同期されたままにしました。次に、もう一度「追加」機能を使用して、file_2_3とfile_4をfile_2_3_4にマージし、オーディオとビデオはfile_2_3_4で同期されたままにしました。
次に、file_1とfile_2_3_4をfile_1_2_3_4にマージしました。ただし、file_1_2_3_4のオーディオとビデオは同期していませんでした。 file_1_2_3_4を再生すると、file_1の部分ですべてOKになります。ただし、file_2の部分から開始すると、オーディオとビデオが同期しなくなります。
次に、その逆を試しました。 file_2_3_4とfile_1をfile_2_3_4_1にマージしました。 file_2_3_4_1を再生すると、file_2_3_4部分はOKです。ただし、file_1の部分でオーディオとビデオが同期しなくなります。
そこで、Avidemuxを使用してfile_1のフレームレートを30フレーム/秒に変更しました。フレーム幅、フレーム高さ、およびオーディオサンプルレートは同じままでした。もう一度、Avidemuxを使用してfile_1とfile_2_3_4をfile_1_2_3_4にマージしました。繰り返しますが、file_2の部分から始めて、オーディオとビデオが同期しなくなります。
では、file_1_2_3_4全体でオーディオとビデオが同期していることを確認するにはどうすればよいですか? file_1のオーディオサンプルレートを48kHzに変換する必要がありますか?これを行うためにどのソフトウェアを使用しますか? MP4 Joiner というソフトウェアツールについて聞いたことがあります。これは役に立ちますか?
どうやらAvidemuxは最初のファイルのフレームレートとオーディオレートを使用しています。したがって、ファイル1が42kHzでfile234が48kHzの場合、ファイル234のオーディオは、リサンプリングされないと再生速度が遅くなります。ビデオが進むにつれて、より大きなデルタに気付くでしょう。
2番目のビデオのフレームレートが大きく異なる場合(例: 60fpsでは、2番目の部分のビデオの移動が2倍遅くなります。これは、30fps(最初のファイルと同様)のように再生されるためです。
File_1を30フレーム/秒として再エンコードする必要があります。これは、x264、mencoder、または非常に多くのフリーウェアエンコーディングユーティリティの1つを使用して行うことができます。同じフレームレートでない場合、ファイルを単に結合することはできません。また、同じサンプルレートになるようにオーディオを再エンコードする必要があります。 soxを使用して波形を変更してから、すでに使用しているコーデックで再圧縮することをお勧めします。