2011-07-23 5 views
2

私はoutput.mp3になるためにfile1.mp3file2.mp3をマージするスクリプトこのコマンドこれをスクリプトする方法は、出力を入力として使用するかどうかです。

ffmpeg -i concat:file1.mp3\|file2.mp3 -acodec copy output.mp3 

したいと思います。

問題は、2つ以上のファイルをマージしたいということです。

ffmpeg -i concat:file1.mp3\|file2.mp3 -acodec copy output1.mp3 
ffmpeg -i concat:output1.mp3\|file3.mp3 -acodec copy output2.mp3 
ffmpeg -i concat:output2.mp3\|file4.mp3 -acodec copy output3.mp3 
ffmpeg -i concat:output3.mp3\|file5.mp3 -acodec copy output4.mp3 

output4.mp3私が探していた結果です。

ファイルが実際にうまく「ファイル」ADNその後、番号を呼ばれるが、彼らは中に統合されるべき順序でそれらをls一覧表示されていません。

質問

これがそのように、スクリプト化することができますどのように私はファイルの偶数か奇数のディレクトリでそれを実行できますか?

+1

FFMPEGは、複数の入力ファイルをサポートし、doesnのそれ? – Brad

答えて

3

、あなたが行うことができます: ffmpeg -i concat:"$(ls|tr '\n' '|')" -acodec copy out.mp3

ない場合:

for cfile in *.mp3; do 
    ffmpeg -i concat:myout.mp3tmp1\|$cfile -acodec copy myout.mp3tmp2 
    mv myout.mp3tmp2 myout.mp3tmp1 
done 
mv myout.mp3tmp1 <your final file name> 
+0

優れています。最初に働いた。小さなタイプミス。 -acondecは-acodecでなければなりません –

1

1つの洗濯ですべてのファイルを連結することができれば、それが最適です。しかし、あなたのBashの質問のための一般的な答え:ここで10

ffmpeg -i concat:file1.mp3\|file2.mp3 -acodec copy output1.mp3 

for i in $(seq 1 10); do 
    ffmpeg -i concat:output${i}.mp3\|file$((i + 2)).mp3 -acodec copy output$((i + 1)).mp3 
done 

は、入力ファイルのあなたの総数より2少ないです。 ffmpegはもっとして2つのファイルをサポートし、何のファイルが|が含まれていない、とあまりにも多く存在していない場合

関連する問題