1

私は生のPCMをaacに変換しようとしています.だから私はffmpegを通してそれを達成しようとしています.

私のffmpg構成

--enable-cross-compile --arch=arm --cpu=armv6 --enable-asm --target-os=linux --disable-stripping --enable-neon --enable-version3 --disable-shared - -enable-static --enable-gpl --enable-memalign-hack --cc=arm-linux-androideabi-gcc --ld=arm-linux-androideabi-ld --extra-cflags='-fPIC -DANDROID - D_ thumb _ -mthumb -Wfatal-errors -Wno-deprecated -marm -march=armv6 ' --disable-everything --enable-encoder=aac --enable-decoder=h264 --enable-hwaccels --disable-ffmpeg - -disable-ffplay --disable-ffprobe --disable-ffserver --disable-network --enable-filter=buffer --enable-filter=buffersink --disable-demuxer=v4l --disable-demuxer=v4l2 --disable -indev=v4l --disable-indev=v4l2

avcodec_find_encoder(CODEC_ID_AAC)  find's the AAC encoder succesfully.

audio_context= avcodec_alloc_context()
avcodec_open(audio_context, audio_encoder)  failed to open aac 

何か案が?

4

2 に答える 2

0

答えはlogcatのffmpeg部分にあると思います。ffmpegライブラリでデバッグレベルのログをオンにし、ログをキャプチャして、codec_openステートメントが失敗している場所を見つける必要があります。

ここにログを提供します。

于 2012-04-06T15:40:10.277 に答える
0

ffmpeg 組み込みの aac エンコーダーを使用する代わりに、libfaac を使用してみてください。

まず、Android 用の libfaac をクロスコンパイルします。

ffmpeg で--extra-cflagsは、コンパイルされた libfaac のインクルードディレクトリへのパスを提供します。

--extra-ldflagsで、コンパイル済みの libfaac のlibディレクトリへのパスを指定します。

ffmpegでは--enable-libfaacconfig.shを使用します

libfaac を使用して ffmpeg を再度コンパイルします。

于 2012-04-10T10:32:39.180 に答える