web-dev-qa-db-ja.com

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

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

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

14

[〜#〜] yamb [〜#〜] または My MP4Box GUI のようなGUIを使用することもできますが、MP4Boxはこれを実行できます。 (注:個人的にはmyプログラムではありません。これは単なる名前です。)Windows用のMP4Boxバイナリは このサイト から入手できます。

例:

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

あなたはこれを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
4
evilsoup

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

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

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

4
polemon

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

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

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

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

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

2
Kissaki

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

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

私はそれらを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
laplace