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


16

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

長い一時停止、トーンなどでオーディオファイルを分割するための多くの質問が表示されますが、この単純な操作に関する質問は見つかりません。誰でもこれを行う簡単な方法を知っていますか?

もちろん、何か自動で、コマンドラインでも大丈夫です。

前もって感謝します!

回答:


20

最近のffmpeg(ここから静的ビルドダウンロードしてください):

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

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


ここに1行があります。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>で、開始時間は秒単位です。

ありがとう!UNIX用のコマンドですか、それともWindowsでも機能しますか?私はCygwinをインストールしているので、それは問題ではなく、ただ疑問に思っているだけです。家に帰ってからやってみます。
アンドリューチョン

これはLinux(およびRubyがインストールされているUnix)でネイティブに動作し、Windowsでも動作するはずです。RubyとFFmpegが必要なだけですが、Cygwinは必要ありません。Windows用のRubyインストーラーFFmpeg実行可能ファイルもあります。FFmpegコマンドは、Rubyなしで、WindowsバッチファイルまたはPowerShellを使用して自動化できるようになりましたが、私はWindowsユーザーではないため、Rubyを採用しました(LinuxおよびOS Xに付属しているため)。Windowsバッチの経験がある人は、上記のRubyコマンドを書き直すことができますか?
slhck

Windowsコマンドラインに慣れることができないため、Cygwinを使用しています。既にrubyとffmpegがインストールされていると思うので、コマンドを使用できるはずです。しかし、はい、Windowsバージョンはこの質問を他の誰かが見るのを助けるかもしれません。今のところ+1。私が試してみると受け入れます。
アンドリューチョン

2
私のように、m4aファイルにビデオストリーム(私の場合は単一の画像)が含まれている場合、-vnスイッチを追加してオーディオストリームのみを選択する必要があります。ビデオストリームを保持する場合は、拡張子が.mp4のファイルに出力する必要があります。
ロブ教会14

2

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

mp4box -split 300 infile.m4a

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

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


2

この質問が聞かれてからしばらく経ちましたが、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にインポートし、必要なバランス調整やその他の編集を行い、[ファイル]、[ラベル]、[ラベルのインポート]の順にクリックします。

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

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

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


-1

Audacityのダウンロード-これは、必要なことを正確に行える無料のオーディオツールであり、完全に無料で使いやすいツールです。http://audacity.sourceforge.net/


2
Audacityにこれを自動的に行わせる方法はありますか?マウスで5分間のピースを選択し、それらを切り取り、メニューに移動し、ファイルを保存するなどして、手動で複数のファイルをそれぞれ16個に切り分けたくないでしょう。
slhck

私はすでにAudacityを持っているので、自動的な方法がある場合はお知らせください!
アンドリューチョン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.