Как извлечь кадры Xing/LAME с помощью ffmpeg?

Используя программу, которая уже использует ffmpeg для обработки звука, я хотел бы извлечь и проанализировать mp3-кадры в стиле Xing/LAME.

(в отличие от других метаданных mp3, метаданные xing/lame хранятся в фиктивных mp3-файлах в потоке)

К сожалению для меня, av_seek_frame(), кажется, поддерживает поиск только первого кадра, содержащего фактический звук в файле. Даже если я ищу с помощью режима поиска байтов значение 0, я оказываюсь в файле после кадров LAME/Xing. Это также имеет место, если я просто открываю файл и начинаю читать кадры без поиска.

Можно ли убедить ffmpeg читать нужные мне кадры? И будут ли данные LAME/Xing потенциально охватывать несколько кадров?


person Jeff    schedule 25.07.2011    source источник


Ответы (1)


Неважно, найдено работоспособное решение... Используя TagLib, можно получить указатель файла непосредственно из ссылки на файл и выполнить поиск:

{0xff, 0xfb, 0x90, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 , 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

найти тег. Намного легче.

person Jeff    schedule 25.07.2011