N制29.97文件的音频采样点位置计算问题

yueyixing 2010-11-02 11:16:44
怎样得到N制文件中每一帧对应的音频采样点的起始位置。比如:第一帧的音频的起始采样点数为0。因为每一帧的采样点数不确定,所以采样点的起始位置也没法固定,这个值要怎么算才合适呢?
...全文
118 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tufaqing 2010-11-02
  • 打赏
  • 举报
回复
不是通过时间戳计算吗?一般抓取到的音视频数据都有时间戳的。
如果确实没有时间戳就按理论值计算时间,不过数据一点要很标准,不然就不同步了。
比如29.97(精准值为30000/1001)帧的每帧标准时间戳就是:0,333667,667333,1001000,...(100ns为单位)。
音频是什么格式的?设备出来的通常是PCM 44100Hz 2ch 16bit,以这个为标准,PCM码率44100*2*16bps = 44100*2*2Bytes/second = 176400 Bytes/second,而1s对应的时间是10000000,通过这个计算第一帧视频333667(精准值为1001*10000000/30000),对应PCM的333667*176400/10000000 = 5885.88,2ch 16bit要2*2为单位对齐,5884(或5888),就是1471(或1472)个sample的地方。
如果是MP2,MP3音频,它也是以一帧一帧压缩的,要以它们解码出来的PCM长度为准。一帧MP2,MP3解码处理的是1152个sample,还是以44100Hz为例,第一帧对应的1471.47个sample的地方,第二帧是2942.94=2943的地方,取比较近的音频帧为参考,第一帧视频对应1471/1152=1音频帧的地方,第二帧视频对应2943/1152=2音频帧的地方,以此类推。
注意不要有浮点误差累计,以上任何数字都可以用整数计算的。
dengzikun 2010-11-02
  • 打赏
  • 举报
回复
音频帧一般是计算duration时间,
如10ms,20ms,30ms,40ms等.
yueyixing 2010-11-02
  • 打赏
  • 举报
回复
音频采样数不固定,48000/29.97,这样每一帧的采样数是不同的
dengzikun 2010-11-02
  • 打赏
  • 举报
回复
每一帧的采样点数不确定?
视频不确定还是音频不确定?

一般都是确定的啊.

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧