mp3 オーディオ データを pcm にデコードする必要があります。mp3 ヘッダーで始まるデータがあります。Api-example.c が機能しない、出力がおかしい:
コマンドffmpeg -i input.mp3 output.wav
は素晴らしいです、これは私が必要なものです。しかし、コードでそれを行う方法を見つけることができません。ffmpegライブラリを使用したチュートリアルがどこにあるか、誰か知っていますか? ありがとう
編集 2.7.13:
こんにちは、ffmpeg からオーディオ デコードのサンプル メソッドを再構築しましたが、おそらくここに問題があります。
len = avcodec_decode_audio4(avCodecContext,avFrame, &got_frame,&avPacket);
int data_size = av_samples_get_buffer_size(NULL,avFrame->channels,avFrame->nb_samples,AV_SAMPLE_FMT_S16P,1);
data_size は、デコーダーからのデータ フレームのサイズです。チャンネル数、データ サンプル数、およびデータ タイプによって異なります (私のデータは、mp3 フレームの 1152 サンプルに mp3 にエンコードされた 16 ビット PCM ステレオです)。
出力ファイルを audacity で開いた場合、正しい出力を与える正しいパラメーターは、ステレオ (正しい)、8 ビット pcm (間違っている)、およびハーフ サンプル レート (これも間違っている) ですが、何が起こったのでしょうか?
エンコード前データ:16bit PCM 44100Hz、ステレオ
デコード後のデータ: 8bit PCM 22050Hz, ステレオ ---> ???!!!
私はこれに疲れている....