ПрограммированиеФорумЗвук

[ffmpeg]Звук в AAC

#0
19:33, 5 июня 2014

Привет!
В общем дело такое: с помощью ffmpeg тяну видео со звуком, звук в формате AAC.
У первого готового аудио фрейма полученного с помощью avcodec_decode_audio4 первые 4096 байт - нули, дальше что-то ненулевое идет:

[4096]  0x0d ''  unsigned char
[4097]  0xf0 'р'  unsigned char
[4098]  0xad '­'  unsigned char
[4099]  0xba 'є'  unsigned char

Причем эти 4 значения заполняют всю остальную часть фрейма, оставшиеся 4096 байт...
Я так думал, что начинаться должно с ADTS, но первые ненулевые байты на него совсем непохожи...
Пытаюсь проиграть это видео
Помогите разобраться, что я делаю не так.
Заранее спасибо!

#1
23:26, 5 июня 2014

Paltr

avcodec_decode_audio4 выдает готовые аудиосэмплы в формате декодировщика. В AAC по моему фрейм 1024 float сэмпла, как раз твой моно буфер.

#2
0:23, 6 июня 2014
[4096]  0x0d ''  unsigned char
[4097]  0xf0 'р'  unsigned char
[4098]  0xad '­'  unsigned char
[4099]  0xba 'є'  unsigned char

0xbaadf00d - это гуглится, очень полезная инфа.

#3
11:59, 6 июня 2014

Ghost2
Ну просто получается, что первый фрейм - нули, второй, как заметил Wraith, baadf00d... При этом пример работы ffmpegа такие же значения выдает...
Wraith
Спасибо, я и не заметил сразу. Просто не понятно, с чем оно так - сейчас нормально погуглить нет возможности - с телефона пишу...

#4
1:21, 7 июня 2014

Paltr

Я вообще не знаю как в ffmpeg декодер AAC (они обычно стабильнее), но энкодер там глючный и считается экспериментальным даже в самой крайней версии. Может пол часа работать, а потом упасть при индексации какой-то таблицы минус единицей. Попробуй выхлоп av_read_frame скормить какой нибудь libfaad.

Если badfood прет, то может просто неправильно декодируешь. Покажи код.

PS. Вообще, если есть сомнения на счет правильности работы ffmpeg, можно сначала за юзать саму утилиту ffmpeg. Выкорчевать, например, из видео файла только звук и посмотреть, все ли он верно разжал. Ну или просто ffplay.

#5
10:20, 7 июня 2014

Ghost2
> Если badfood прет, то может просто неправильно декодируешь. Покажи код.
Да не - все правильно, я пробовал с другими реализациями на ffmpeg'е это видео проигрывать - там мусор тот же. Видимо буду acm декодеру поток скармливать, а под ios и прочими - Queue System'ам и прочим.
Спасибо большое за желание помочь!

Прошло более 10 лет
#6
15:49, 26 авг 2024

ни у кого не наблюдался рассинхрон видео и звука при использовании AAC?

ПрограммированиеФорумЗвук