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

C++ 如何使用ffmpeg提取Xing/LAME帧?,c++,c,ffmpeg,mp3,lame,C++,C,Ffmpeg,Mp3,Lame,使用一个已经使用ffmpeg进行音频处理的程序,我想提取和解析Xing/LAME风格的mp3帧 (与其他mp3元数据不同,xing/lame元数据存储在流中的虚拟mp3文件中) 不幸的是,av\u seek\u frame()似乎只支持查找文件中包含实际音频的第一帧。即使我使用字节搜索模式搜索到0,我也会在LAME/Xing帧之后的文件中找到一个位置。如果我只是打开文件并开始读取帧而不查找,也会出现这种情况 你能说服我读我想要的帧吗?而且,LAME/Xing数据是否可能跨越多个帧?不管怎样,找到

使用一个已经使用ffmpeg进行音频处理的程序,我想提取和解析Xing/LAME风格的mp3帧

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

不幸的是,
av\u seek\u frame()
似乎只支持查找文件中包含实际音频的第一帧。即使我使用字节搜索模式搜索到0,我也会在LAME/Xing帧之后的文件中找到一个位置。如果我只是打开文件并开始读取帧而不查找,也会出现这种情况


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

不管怎样,找到了一个可行的解决方案。。。使用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,0x00,0x00,0x00,0x00,0x00,0x00,0x00 };

找到标签。容易多了