0

おそらく C で、FLAC から ALAC へ、または FLAC から AAC へのコンバーターを作成することを考えています。形式の仕様に従って、ある形式で読み取り、別の形式で出力するのと同じくらい簡単ですか??

方法、言語などに関するヒントは素晴らしいでしょう! ありがとう!

4

2 に答える 2

4

全部自分でやる?難しそうですね。

これは、ある形式で読み取り、別の形式で出力するのと同じくらい「単純」ですが、細部は実際にはかなり複雑な数学がたくさんある巨大な巨大なものです。

基本的に、FLAC を読み込み、そのコンテナー形式を解析し、FLAC オーディオを中間形式にデコードし、Apple Lossless にエンコードして、それを MPEG4 オーディオ コンテナー内に配置する必要があります (ALAC が使用するため)。

すべてを自分で行うことをあきらめて、FLAC のデコードと ALAC のエンコードにライブラリを使用したとしても、まったく難しいことではありません。エンコーダーとデコーダーを書くのは簡単ではありません。

エンコーダー/デコーダーの libflac と libavcodec を調べてください。そうすれば、それらを中心にプログラムを作成するのは難しくありません。

于 2012-06-14T17:06:16.660 に答える
3

いいえ、それはまったく単純ではありません。

DSPに関する限り、FLACのデコードは比較的簡単です。ただし、libavにはまだ約3,000行のコードがあり、使用するライブラリの他の場所にある一連のサポートコードは含まれていません。

AACエンコーディングは不可逆コーデックであるため、非常に複雑です。そのため、AACへのエンコードには、非常に主観的な音響心理学的決定が多数含まれます。libavのAACコーデックは約12,000行のコードであり(ここでも、MPEG4コンテナーを生成するためのコードは含まれていません)、その結果は特に高品質ではありません。MDCTオーディオエンコーディングにまだ精通していない場合は、エンコーダを最初から作成しようとしても無駄になります。

すでにこの変換を実行できるライブラリ(libav!など)を使用するのがおそらく最善です。ゼロから書き込もうとしないでください。

(気の利いた人は、コードの行は複雑さの大きな尺度ではないことに気付くでしょう。私はこれを認識しています-私はここでそれを「球場の図」として使用しています。)

于 2012-06-14T17:11:45.637 に答える