WMA ストリームを 16 ビット PCM にデコードしたいと考えています。今、私はFFMpegに関する質問があります..の出力形式は何ですか..
len = avcodec_decode_audio2(c, (int16_t *)outbuf, &outbuf_used, inbuf_ptr, size);
これはこのタスクに適した機能ですか?
ありがとうございました
備考 : ffmpeg ユーザー リストでこの質問をしてみてください。あなたは確かにそこにffmpegの達人を見つけるでしょう.
私は主にffmpegを使用してビデオをエンコード/デコードします。デコードするには、「avcodec_decode_*」を使用するのが適切です...デコード。あなたが得るものは... 16ビットのPCMです。
つまり、マルチメディア ストリームのデコードは難しく、ffmpeg は非常に低レベルのライブラリであるということです。与えられたコード行だけでより正確にすることは困難です (少なくとも、パラメーターについてはより正確にする必要があります)。
注意すべきことは、マルチメディア ストリームを読み取るときは、最初にストリームをデマルチプレクサ化し (コンテナにストリームが 1 つしかない場合でも)、次に正しいコーデックでデコードする必要があるということです。ストリームを正しく分離し、コーデック/コーデック コンテキストを正しく初期化した場合は、avcodec_decode を呼び出すことができ、動作します :)
タグでc++に言及しているように、ffmpegのc++ラッピングを試すことができます:FOBS 使用ははるかに簡単ですが、もちろん、正確な制御を失います...
お役に立てば幸いです。