2016-06-14 31 views
0

Ich versuche, AAC-Encoder mit den folgenden Parametern zu initialisieren aac-Profil = 5, Mime = Audio/mp4a-latm, Bitrate = 12000, Kanal-Anzahl = 1, Sample-Rate = 8000Android AAC-HE Encoder Initialisierung schlägt mit 8kHz Abtastrate

aber die Codec-Initialisierung schlägt mit dem folgenden Fehler:

06-14 19:17:58.009 6194-6450/? E/SoftAACEncoder2: Unable to initialize encoder for profile/sample-rate/bit-rate/channels
06-14 19:17:58.010 6194-6449/? E/ACodec: [OMX.google.aac.encoder] ERROR(0x80001001)
06-14 19:17:58.010 6194-6449/? E/ACodec: signalError(omxError 0x80001001, internalError -2147483648)
06-14 19:17:58.010 6194-6449/? E/MediaCodec: Codec reported err 0x80001001, actionCode 0, while in state 6

aber, wenn ich versuche, es Rate von 16kHz mit Sampling zu initialisieren, es funktioniert, aber die Dokumentation sagt, die AAC -HE Profil unterstützt 8 kHz Abtastrate. Irgendeine Idee, was könnte das Problem sein?

+0

Probieren Sie 'bitrate = 16000' oder sogar' bitrate = 32000' aus ... Auch was ist Ihre Bittiefe (8bit oder 16bit Audio)? –

+0

Hallo, Danke für die Antwort, ich habe mit 16000 versucht, das Ergebnis ist gleich. Ich verwende 16-Bit-Audio. – user2067340

Antwort

0

Welche Dokumentation besagt, dass HE-AAC 8 kHz Abtastrate unterstützt? Es gibt auch einen Unterschied zwischen dem Standard selbst, der ihn unterstützt, und diesem speziellen Encoder, der es unterstützt.

In der Praxis verwendet HE-AAC eine Technik namens Seitenbandreplikation (SBR). Dies läuft darauf hinaus, dass der Haupt-AAC-Strom selbst die halbe Abtastrate aufweist und dann die höhere Abtastrate darüber rekonstruiert wird. Wenn Sie 8-kHz-Audio auf diese Weise codieren würden, wäre der AAC-Hauptstream 4 kHz, und ich bin mir nicht sicher, ob der Encoder dies tatsächlich unterstützt.

Daher macht HE-AAC meistens Sinn, wenn Sie eine hohe Abtastrate haben - es macht wenig Sinn zu versuchen, es für einen 8 kHz Audio-Stream zu verwenden.