背景:
メンコーダーを使用してスクリーンショットを撮り、ビデオファイルのプレビューとして使用する方法を知らないプログラマーを見つけることができるようになることはまずありません。 ただし、オーディオファイルのこのようなソリューションはまだ見ていません。その理由は理解できます。ここでは、原則として、ファイル全体を提供するか、コンソールコンバーターでファイルを完全に消化可能な形式につまむことができます。
そして、すべてがうまくいきますが、平均トラック長が6分である場合、カットの作成方法を自由に考えて、ハードドライブ上のサムネイルのサイズを小さくし、ユーザーが素材を聴きやすくします。 昔々、私はこのためにPOCユーティリティのセットを使用していましたが、彼らはmp3でのみ動作し、長さをすばやくカウントし、時間内にそれらをカット/接着する方法を知っていました。 それから私はすぐにこの混乱の周りにラッパーを書いて、しばらくそれを忘れていました。
しかし、新しい時代が訪れ、人々は音楽をflac、monkey audio、その他のロスレス形式でダウンロードし始めました。 はい、mp3自体は時間とともに変化し、しばしば風景写真を追加し始めました。これは大きな問題となり、頻繁にPOCセグフォルトが発生する原因になりました。
それから、一緒に接着するためのPOCユーティリティのセット全体と、mp3用のエンコーダーを組み込むアプリケーションを作成することにしました。
そして今、何が起こったかについて:
recodedはLinux / * BSD / Mac OS向けのコンソールユーティリティで、オーディオファイルのデコード/スライス/エンコードにlibav(ffmpeg)を使用します。 変換用のスクリプトに完全に統合されます。
スライスのためにファイルをフィードし、完成したプレビューを配置する場所を指示するだけです。
libavの使用により、普及しているほぼすべてのオーディオ形式(mp3、ogg、flac、ape、wavなど)のサポートが実現します。
切断は、次のアルゴリズムに従って実行されます。
- 2分未満のファイルの場合-これは完全な変換です。
- 2分から15のファイルの場合-30秒の部分に分割し、ファイルに偶数を書き込みます(この場合、部分はファイル全体の長さに沿って均等に広がり、30秒の断片に分割した後の残り時間がギャップに均等に追加されます)
- 15分を超えるファイルの場合-最初の2分のみ。
入手先:
ベータリリース:
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
その結果、必要なバインド済みの再コード化を取得します。
コマンドラインオプションと終了コード:
コマンドラインオプション:
- -f-どのファイルから
- -t-どのファイルへ
- -v-デコードされたファイルに関する詳細
終了コード:
- 0-正常に完了しました
- 1-ファイルを開けません
- 2-ファイルをデコードできません
- 3-出力用のファイルを作成できません
- 4-リサンプリングエラー用に予約済み
- 5-出力用のファイルを閉じることができません
使用法:
たとえば、これは次のように実行できます。
./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は食べ物に対して選択的であるため、行われました)
著者のコメントとコメント:
これは最初のリリースであり、ベータ版でもアルファ版でもありません。他のリリースよりも早くリリースされます。 開発を加速するためだけに設計されています。 だから誰かがコードを掘り下げたいというアイデアや欲求を持っているなら、あなたは大歓迎です。