3

CDN に大量のオーディオ ファイルがあります。これらは mp3 と ogg の vorbises です。これらのファイルは、それぞれ約 1 時間の再生に相当します。これらのファイルから任意の部分を抽出する必要があります。ファイル名 (mp3 または ogg バージョンのどちらを使用するかを選択できます) と 2 つのタイムスタンプが与えられ、指定された時間位置の間のオーディオが正確に必要です。ファイル全体をダウンロードしたくないので、Range http ヘッダーを使用することを考えています。

私はオーディオ ファイルを完全に制御できるので、どのバイトに達する必要があるかを推定できるように、固定ビットレートでエンコードしました。ただし、どちらの形式もフレーム (vorbis の場合はページ) を使用するため、アトミックにデコードする必要があります。

私が書いているプログラムはPerlです。特定のウィンドウが含まれていると思われるファイルの一部をダウンロードしてから、Audio::Mad と Ogg::Vorbis::Decoder を使用してオーディオ ファイルのフラグメントを解析してみました。ただし、どちらもフラグメントの処理に失敗しているようで、統合ファイルを提供する場合にのみ成功します。

だから私の質問は次のとおりです:全体をダウンロードせずにオーディオファイルの正確なスパンを取得するにはどうすればよいですか?

4

1 に答える 1

0

「mp3/oggから正確な時間範囲をカットする」と答える-以下があなたのニーズに合うかどうかをチェックすることができます:

ffmpeg -i InFile  -vn -acodec copy -ss 00:00:00 -t 00:01:32 -threads 0 OutFile

ここで、ss-開始時間、t-期間。それは確かにカットします-再圧縮はありません。

于 2012-04-07T16:08:48.157 に答える