首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ffmpeg查找FLAC

使用ffmpeg查找FLAC
EN

Stack Overflow用户
提问于 2013-07-21 03:02:43
回答 1查看 543关注 0票数 1

我发现使用av_seek_frame()查找FLAC文件并不能真正与ffmpeg一起工作。将FLAC解码为原始PCM运行良好,但是一旦我调用了av_seek_frame(),下一次调用av_read_frame()将返回-1,即文件结束。

我偷看了一下源代码,发现了以下原因: FLAC中的seeking是在libavformat/utils.c中的av_seek_frame_generic()函数中实现的。这个函数主要做的是在循环中调用av_read_frame(),并对照所需的查找位置检查数据包的时间戳。

它不适用于FLAC的原因是FLAC包不包含任何时间戳,因为FLAC解码器使用某种通用读取器,该读取器总是从流中提取1024字节的硬编码大小的包。

我使用的不是最新版本的ffpmeg,而是一个旧版本,但由于FLAC播放效果很好,我不想切换到最新版本,因为这对我来说意味着重要的工作,因为我已经根据自己的特定需求调整了这个旧版本的ffmpeg。这就是为什么我想问一个问题,如果有人知道我如何在这个旧版本的ffmpeg中修复FLAC查找(具体地说,它是2010年的0.6版)。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-21 18:52:29

似乎在0.6中根本不支持它,因为在那个版本中没有FLAC解析器。我现在已经从0.8版本中获取了FLAC解析器,并将其与版本0.6合并。所以它现在运行得很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17765667

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档