111

元の質問

既存の MP3 ファイルから新しい (完全に有効な) MP3 ファイルを生成して、プレビューとして使用できるようにしたいと考えています。新しいファイルには、トラックの最初のn秒のみを含める必要があります。

さて、ファイルを配信するときにn秒 (ビットレートとヘッダー サイズから計算)で「ストリームを切り刻む」ことができることはわかっていますが、これは少し汚れており、VBR トラックの実際の PITA です。適切な MP3 ファイルを生成できるようにしたいと考えています。

誰でもアイデアはありますか?

回答

mp3splitとはどちらffmpegも優れたソリューションです。ffmpeg は、Linux サーバーに一般的にインストールされており、Windows でも簡単に利用できるため、選択しました。ffmpeg でプレビューを生成するための、さらに優れたコマンド ライン パラメータを次に示します。

  • -t <seconds>指定秒数後にチョップ
  • -y強制的にファイルを上書きする
  • -ab <bitrate>ビットレートを設定 例-ab 96k
  • -ar <rate Hz>サンプリング レートを設定します。例: 22.05kHz の場合は-ar 22050
  • -map_meta_data <outfile>:<infile>トラックのメタデータをインファイルからアウトファイルにコピー

-ab と -ar を設定する代わりに、Tim Farley が提案するように、元のトラック設定をコピーできます。

  • -acodec copy
4

8 に答える 8

151

ffmpeg もお勧めしますが、John Boker が提案したコマンド ラインには意図しない副作用があります。ファイルをデフォルトのビットレート (少なくともここにあるバージョンでは 64 kb/s) に再エンコードします。これにより、サウンド ファイルの品質について顧客に誤った印象を与える可能性があり、処理に時間がかかります。

トランスコードせずに 30 秒にスライスするコマンド ラインを次に示します。

ffmpeg -t 30 -i inputfile.mp3 -acodec copy outputfile.mp3

-acodec スイッチは、トランスコードしない特別な「コピー」コーデックを使用するように ffmpeg に指示します。電光石火です。

注: コマンドは Oben Sonne からのコメントに基づいて更新されました

于 2008-09-04T15:42:02.153 に答える
62

最初の 30 秒を削除する (そして残りを保持する) 場合は、次のようにします。

ffmpeg -ss 30 -i inputfile.mp3 -acodec copy outputfile.mp3
于 2010-05-27T23:30:11.503 に答える
18

試す:

ffmpeg -t 30 -i inputfile.mp3 outputfile.mp3
于 2008-09-04T14:45:30.930 に答える
11

mp3cutを使用できます。

cutmp3 -i foo.mp3 -O 30s.mp3 -a 0:00.0 -b 0:30.0

それはubunturepoにあるので、ちょうど:sudo apt-get install cutmp3

于 2011-09-19T00:15:13.827 に答える
6

Mp3Spltを試してみてください。

以前、mp3splt.exe win32 プロセスを単純にラップした C# サービスで使用したことがあります。Linux/PHP シナリオでも同様のことができると思います。

于 2008-09-04T14:45:52.163 に答える