web-dev-qa-db-ja.com

オーディオファイルを指定された長さのチャンクに分割する

いくつかの長いオーディオファイル(各80分、m4a)があり、それらを5分または10分に分割したいと考えています。

オーディオファイルを長いポーズやトーンなどで分割することについての質問はたくさんありますが、この単純な操作に関する質問を見つけられないようです。誰かがこれを行う簡単な方法を知っていますか?

もちろん、自動でコマンドラインを使用することもできます。

前もって感謝します!

17
Andrew Cheong

最近のffmpegで(静的ビルドをダウンロード ここから ):

ffmpeg -i in.m4a -f segment -segment_time 300 -c copy out%03d.m4a

これはセグメントマクサーを使用し、ビットストリームをコピーします。ファイルにオーディオストリームとビデオストリームがある場合は、-vnを使用してビデオストリームを無効にできます。


ここにワンライナーがあります-- RubyFFmpeg がインストールされている必要があります:

Ruby -e '(0..4500).step(300) { |x| system "ffmpeg -ss #{x} -i in.m4a -c copy -t 300 out-#{x}.m4a"}'

in.m4aと同じフォルダで実行してください。オーディオのビットストリームをコピーするので、これを実行するのに数秒もかかりません。

説明する:

  • 4800秒はオーディオファイルの長さ(80分×60秒)なので、最後の分割は4500(4800-300秒)になります。
  • 0から4500に進み、300秒(5分×60秒)ごとに分割します。
  • FFmpegは-ssで指定された時間に開始します
  • そして、-tで指定された時間だけコピーされます
  • out-<x>.mp4と呼ばれるいくつかの出力ファイルを書き込みます。ここで、<x>は秒単位の開始時間です。
21
slhck

この質問が出されてからしばらく経ちましたが、Rubyとffmpegをいじってみたところ、Windowsでこれを行う簡単な方法があるはずだと判断しました。

Audacityをダウンロードしてインストールする

見つけられる場所にテキストファイルを作成し、次の文字列を貼り付けます(300秒間隔、つまり5分、10分は600間隔など)。

0       300  
300     600  
600     900  
900     1200  
1200    1500  
1500    1800  
1800    2100  
2100    2400  
2400    2700  
2700    3000  
3000    3300  
3300    3600  
3600    3900  
3900    4200  
4200    4500  
4500    4800  
4800    5100  
5100    5400  
5400    5700  
5700    6000  
6000    6300  
6300    6600  
6600    6900  
6900    7200  
7200    7500  
7500    7800  
7800    8100  
8100    8400  
8400    8700  
8700    9000  
9000    9300  
9300    9600  
9600    9900  
9900    10200  
10200   10500  
10500   10800  
10800   11100  
11100   11400  
11400   11700  
11700   12000  
12000   12300  
12300   12600  
12600   12900  
12900   13200  
13200   13500  
13500   13800  
13800   14100  
14100   14400  
14400   14700  
14700   15000  

間隔の数がオーディオファイルの合計の長さよりも大きいことを確認してください。これは、3時間以上実行される私のニーズに十分に長いものを作成しました。必要に応じて、さらに追加してください。

オーディオファイルをAudacityにインポートして、必要なバランス調整やその他の編集を行い、[ファイル]> [ラベル]> [ラベルのインポート]をクリックします。

テキストファイルを選択してから、ラベルトラックとオーディオトラックを同時に選択し、[ファイル]> [複数エクスポート]をクリックします。

エクスポート先のファイルタイプを変更して設定を調整し、宛先フォルダーを選択します。

私は常に番号付けパターンを番号付け後のファイル名プレフィックスに変更し、ボックスに必要なファイル名を入力すると、プログラムによって番号が追加され、エクスポートとビオラがヒットします!

2
C. Hamilton

私はこれに対する解決策を自分で探していました。私がこれを行うことがわかった最も簡単な方法は MP4Box を使用することです:

mp4box -split 300 infile.m4a

ここで、「300」は秒単位の時間です。 MP4Boxは自動的に番号付きの出力ファイルを書き込みます。

(大きなGPACアプリケーション全体をインストールする必要はありません。これらは、アーカイブから抽出して機能させるために、js.dll、libeay32.dll、libgpac.dll;のファイルです。 MP4Box.exe; ssleay32.dll)

2
dfkt