为什么使用ACM进行MP3解压到PCM格式转换得到的文件总有断断续续且时长变短了?

sinqi 2003-12-19 10:55:33
为什么使用ACM进行WAV-MP3解压到WAV-PCM格式转换得到的文件总有断断续续且时长变短了?
注:使用acmStreamConvert API.
...全文
157 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
loveisbug 2004-01-04
  • 打赏
  • 举报
回复
一楼说得对,这不是一个可逆的过程。
cctv512 2003-12-31
  • 打赏
  • 举报
回复
mark
cxf1976 2003-12-30
  • 打赏
  • 举报
回复
哈哈,那我就不知道了,看看程序。
cxf1976@sohu.com
sinqi 2003-12-27
  • 打赏
  • 举报
回复
每次都是 准备转换头--转换--卸载转换头.
cxf1976 2003-12-26
  • 打赏
  • 举报
回复
有时候切割长度的奇偶也会影响;
另外我怀疑你是否转换完毕以后,有没有卸载转换头
sinqi 2003-12-22
  • 打赏
  • 举报
回复
奇怪,每次读入4Block(16帧,1872Bytes)后,文件时间长度是对了, 但是仍然是断断续续的.
sinqi 2003-12-22
  • 打赏
  • 举报
回复
nAvgBytesPerSec是2250.应该不小了.
杂家老周 2003-12-22
  • 打赏
  • 举报
回复
16帧才1872bytes?太小了,要注意压缩的时候一个数据包不要太小了,否则偏差就大了,一般是nAvgBytesPerSec的1/25,越大偏差越小(当然也不能太大了,否则不能同步),解压的时候也要注意这个问题,不能太小
cxf1976 2003-12-21
  • 打赏
  • 举报
回复
你看看帧长是多少?注意对齐
jlfuhappy 2003-12-21
  • 打赏
  • 举报
回复
一句话,因为这个过程并不是完全可逆的。不能完全的复原原过程!!
解压和压缩的时候使用ACM,并不能使压缩的数据完全复原。
比如压缩L1长度的PCM数据,压缩为L2长度的mpeg-layer3层数据,当你解压的时候并不是把这L2长度的MPPEG3数据转化为L1长度。
这个过程就没有实现完全复原。自然就会有数据丢失。因此变短了。断断续续的原因是因为这些声音数据本身是连续的,如果中间缺了一点那就会产生这种断续(实际上不平滑)的效果。
我的联系:jlfuhappy@163.net

2,543

社区成员

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

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