如何使用ffmpeg提取Xing / LAME帧?

时间:2011-07-25 02:24:29

标签: c++ c ffmpeg mp3 lame

使用已经使用ffmpeg进行音频处理的程序,我想提取并解析Xing / LAME样式的mp3帧。

(与其他mp3元数据不同,xing / lame元数据存储在流中的虚拟mp3文件中)

不幸的是,av_seek_frame()似乎只支持寻找包含文件中实际音频的第一帧。即使我寻求使用字节搜索模式为0,我最终在LAME / Xing帧之后的文件中的位置。如果我只是打开文件并开始阅读框架而不寻求,也会出现这种情况。

可以说服ffmpeg读取我想要的帧吗?而且,LAME / Xing数据是否可能跨越多个帧?

1 个答案:

答案 0 :(得分:0)

无论如何,找到了一个可行的解决方案......使用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 };

找到标签。更容易。