オーディオファイルのデコード/スライス/エンコード

素晴らしいユーザー名catdogのリクエストで公開



背景:


メンコーダーを使用してスクリーンショットを撮り、ビデオファイルのプレビューとして使用する方法を知らないプログラマーを見つけることができるようになることはまずありません。 ただし、オーディオファイルのこのようなソリューションはまだ見ていません。その理由は理解できます。ここでは、原則として、ファイル全体を提供するか、コンソールコンバーターでファイルを完全に消化可能な形式につまむことができます。



そして、すべてがうまくいきますが、平均トラック長が6分である場合、カットの作成方法を自由に考えて、ハードドライブ上のサムネイルのサイズを小さくし、ユーザーが素材を聴きやすくします。 昔々、私はこのためにPOCユーティリティのセットを使用していましたが、彼らはmp3でのみ動作し、長さをすばやくカウントし、時間内にそれらをカット/接着する方法を知っていました。 それから私はすぐにこの混乱の周りにラッパーを書いて、しばらくそれを忘れていました。



しかし、新しい時代が訪れ、人々は音楽をflac、monkey audio、その他のロスレス形式でダウンロードし始めました。 はい、mp3自体は時間とともに変化し、しばしば風景写真を追加し始めました。これは大きな問題となり、頻繁にPOCセグフォルトが発生する原因になりました。



それから、一緒に接着するためのPOCユーティリティのセット全体と、mp3用のエンコーダーを組み込むアプリケーションを作成することにしました。



そして今、何が起こったかについて:




recodedはLinux / * BSD / Mac OS向けのコンソールユーティリティで、オーディオファイルのデコード/スライス/エンコードにlibav(ffmpeg)を使用します。 変換用のスクリプトに完全に統合されます。

スライスのためにファイルをフィードし、完成したプレビューを配置する場所を指示するだけです。

libavの使用により、普及しているほぼすべてのオーディオ形式(mp3、ogg、flac、ape、wavなど)のサポートが実現します。



切断は、次のアルゴリズムに従って実行されます。





入手先:


ベータリリース:

myau.su/recoded-0.1.3.tgz

svn co svn://myau.su/recoded/tags/0.1.3 recoded



svnからのトランク:

svn co svn://myau.su/recoded/trunk recoded



組み立て方法:


最初に行うことは、libavを持っていることを確認することです(ffmpegプロジェクトのsvnからlibvを取得することをお勧めします。ディストリビューションでは通常かなり古く、それ以来ライブラリアーキテクチャが変更されているためです)。

ffmpegとlibavをビルドするための小さな推奨事項:

./configure --prefix=/usr --enable-shared --enable-static --enable-libmp3lame --enable-nonfree --enable-gpl





一方で、これにはnonfreeおよびgplコンポーネントが含まれ(その後、ライブラリは再配布不可能になります)、mp3エンコーディングに必要なラメでアセンブリを許可します。



次に、アプリケーション自体のアセンブリに進むことができます(* nixシステムの場合はcmake、mac osの場合はxcode)



Mac OSの場合:

ルートでプロジェクトファイルを開き、cmd + bを押します。



* nixシステムの場合:

cmake .

make








その結果、必要なバインド済みの再コード化を取得します。



コマンドラインオプションと終了コード:


コマンドラインオプション:



終了コード:





使用法:


たとえば、これは次のように実行できます。

./recoded -f input_file.ogg -t out.mp3 -v







出力として、ストリームに関する情報(ある場合)と終了コードを取得します。

Front ring size: 38393856

Samples decoded: 19196928

Samples bytesize: 76787712

Channels: 2

Codec name: MP3 (MPEG audio layer 3)

Sample format: 1

Sample rate: 44100








入力では、任意のオーディオ(ビデオ+オーディオ)ファイルを使用できます。ファイルは拡張子をまったく使用しなくてもかまいません(形式はヘッダーとコンテンツによってlibavライブラリによって推測されます)

出力は常にmp3 44100、ステレオ結合、96kbpsです。 (サンプルレートとビットレートに関係なく、フラッシュのmp3は食べ物に対して選択的であるため、行われました)



著者のコメントとコメント:


これは最初のリリースであり、ベータ版でもアルファ版でもありません。他のリリースよりも早くリリースされます。 開発を加速するためだけに設計されています。 だから誰かがコードを掘り下げたいというアイデアや欲求を持っているなら、あなたは大歓迎です。



All Articles