2つ以上のMP4ファイルをマージまたは連結して別のMP4ファイルを作成するにはどうすればよいですか?[複製]


14

最終出力MP4ファイルでも、2つ以上のMP4ファイルを連結またはマージするにはどうすればよいですか?

DOSウィンドウでCOPYコマンドを使用しようとしました(どこかで読みました)が、うまく機能しません。


詳細については、superuser.com / questions / 43588 /…も参照してください。ただし、この質問を重複として分類するかどうかはわかりません。
ブレークスルー

1
OSをタグとして追加してください。
-tumchaaditya

回答:


12

MP4Boxはこれを行うことができますが、YAMBMy MP4Box GUIのようなGUIを使用することもできます。(注意:個人的には私のプログラムではなくそれは単なる名前です。)Windows用のMP4Boxバイナリは、このサイトから入手できます。

例:

MP4Box -tmp $HOME -add vid.01.m4v \
    -cat vid.02.m4v -cat vid.03.m4v vid-out.mp4

4

ffmpegをお勧めします。これは、Mac OS X、Linux、およびWindowsで使用できます

2つの映画を連結する方法の良い例があります:http ://www.ffmpeg.org/faq.html#SEC27

最後のステップでは、結果ファイル用にMP4コンテナーを作成することを確認するだけです。


私が与えられたffmpeg FAQの答えを理解すると、これはMP4(おそらくH.264)ビデオではできません。これは「特権形式」の1つではないからです。
タルチャラ

@ttarchala:できれば試してみたい。FFmpegでMP4に変換したことがありますが、2つの映画を連結したことはありません。また、FFmpegの開発は非常に速いことを指摘したいと思います。あるバージョンでは機能しなかったものが、次のバージョンでも機能する可能性があります。
ポレモン

1
FFMPEGのすべてのビルドがMP4をサポートしているわけではありません。一つには、特許技術であり、おそらく米国内でMP4エンコーダを無料で配布することは違法です。ただし、多くのビルドでこれを行うことができます。
-CarlF

@CarlF:LinuxとMac OS Xに関しては、これは実際問題ではありません。コード自由に配布できるので、基本的に、独自のFFmpegを作成する人は誰でも良いです。特許については、コメントを共有したいと思います。サイトをすぐに手に入れることはできませんが、AAC(MPEG-4で部分的に定義されています)の有効期限が切れた最初の特許は2022年です。最初のものだけで、完全に合法になるまで期限切れにする必要があるものがもっとあります
...-polemon

4

ffmpegでこれを試すことができます:

mkfifo temp0 temp1
ffmpeg -i input0.mp4 -c copy -bsf h264_mp4toannexb -f mpegts -y temp0 2> /dev/null & \
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb -f mpegts -y temp1 2> /dev/null & \
ffmpeg -f mpegts -i "concat:temp0|temp1" -c copy -absf aac_adtstoasc output.mp4

これは何も再エンコードせず、新しいトランスポートストリームコンテナーに配置します。これにより、連結がより簡単になり、連結してMP4に戻ります。output.mp4が既に存在する場合、コマンドは失敗します。上記のバージョンは名前付きパイプを使用しているため、中間ファイルを使用する必要があるシステムをサポートしていないシステム上にあります。

ffmpeg -i input0.mp4 -c copy -bsf h264_mp4toannexb temp0.ts
ffmpeg -i input1.mp4 -c copy -bsf h264_mp4toannexb temp1.ts
ffmpeg -i "concat:temp0.ts|temp1.ts" -c copy -absf aac_adtstoasc output.mp4

h264ではなくmpeg4の場合はどうなりますか?
エジソン

2

更新:他の回答を読んだ後、インストールしたavidemuxをチェックしました。それはあなたが探しているものです(その名前のためにMP4ができるとは思わなかった…)。

VirtualDubModはmp4対応だと思いますが、使用しませんでしたので、確かにわからないです。

MeGUIをチェックしてください。かなり複雑で機能豊富なアプリとツールです。

コンテナ(あなたの場合はmp4)に埋め込むためのツールはmuxerと呼ばれ、おそらくそれらを連結することはできません。

VirtualDubと組み合わせて使用​​できます。Virtualdubはビデオストリームを連結し、muxerはそれを再度mp4にします(再エンコードする必要はありません)。


1

私はそれらをffmpegでaviに変換した後、mencoderでそれをやっています

01.mp4 ... 15.mp4という名前の15個のファイルがあると仮定した場合の簡単なスクリプトを次に示します。

#!/bin/bash
for j in `seq -w 1 15`;
do
    echo converting file $j.avi
    ffmpeg -i $j.mp4 $j.avi        

    echo adding file $j.avi to list
    z="$z $j.avi"
done 

echo doing append
mencoder -oac copy -ovc copy $z -o all.avi

乾杯


1

コマンドは次のとおりです。

ffmpeg -i concat:"video1.ts|video2.ts"

そのパイプ文字はエスケープする必要がありますか?それとも、私はそのコマンドを完全に誤読していますか?
キラーミスト

エスケープする必要がありました。おっとっと。
rogerdpack
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.