2

WMA ストリームを 16 ビット PCM にデコードしたいと考えています。今、私はFFMpegに関する質問があります..の出力形式は何ですか..

len = avcodec_decode_audio2(c, (int16_t *)outbuf, &outbuf_used, inbuf_ptr, size);

これはこのタスクに適した機能ですか?

ありがとうございました

4

1 に答える 1

2

備考 : ffmpeg ユーザー リストでこの質問をしてみてください。あなたは確かにそこにffmpegの達人を見つけるでしょう.

私は主にffmpegを使用してビデオをエンコード/デコードします。デコードするには、「avcodec_decode_*」を使用するのが適切です...デコード。あなたが得るものは... 16ビットのPCMです。

つまり、マルチメディア ストリームのデコードは難しく、ffmpeg は非常に低レベルのライブラリであるということです。与えられたコード行だけでより正確にすることは困難です (少なくとも、パラメーターについてはより正確にする必要があります)。

注意すべきことは、マルチメディア ストリームを読み取るときは、最初にストリームをデマルチプレクサ化し (コンテナにストリームが 1 つしかない場合でも)、次に正しいコーデックでデコードする必要があるということです。ストリームを正しく分離し、コーデック/コーデック コンテキストを正しく初期化した場合は、avcodec_decode を呼び出すことができ、動作します :)

タグでc++に言及しているように、ffmpegのc++ラッピングを試すことができます:FOBS 使用ははるかに簡単ですが、もちろん、正確な制御を失います...

お役に立てば幸いです。

于 2009-08-12T07:32:43.760 に答える