当前位置: 技术问答>linux和unix
MP3解码求助!
来源: 互联网 发布时间:2017-03-12
本文导语: 我正在用libmad在linux下做一个MP3的流播放器。 通过rtp协议来发送mp3的数据流。 现在遇到一个问题是这样的,客户端收到数据包后,使用libmad的上层API来解码,然后直接输出到声卡设备中。听到的声音颤抖,我自己的...
我正在用libmad在linux下做一个MP3的流播放器。
通过rtp协议来发送mp3的数据流。
现在遇到一个问题是这样的,客户端收到数据包后,使用libmad的上层API来解码,然后直接输出到声卡设备中。听到的声音颤抖,我自己的感觉是中间的数据规律性的丢失掉一些,所以没有数据的时候声音就颤抖。
于是我把解码后的PCM流直接输出到文件中,发现输出数据的大小差不多相当于我用mpg123把mp3文件转成wav格式的三分之二!于是我怀疑是不是网络传输的过程丢包了,我改了程序,把收到的mp3数据流直接写入文件。这个文件可以用mpg123流畅的播放。也就是说,网络传输不是问题的关键,可能是解码的地方错了。
由于本人对音频方面的知识很少,目前时间紧迫,没有时间系统的研究音频方面的知识。
有没有知道,我犯的是什么错误?
谢谢啦!
通过rtp协议来发送mp3的数据流。
现在遇到一个问题是这样的,客户端收到数据包后,使用libmad的上层API来解码,然后直接输出到声卡设备中。听到的声音颤抖,我自己的感觉是中间的数据规律性的丢失掉一些,所以没有数据的时候声音就颤抖。
于是我把解码后的PCM流直接输出到文件中,发现输出数据的大小差不多相当于我用mpg123把mp3文件转成wav格式的三分之二!于是我怀疑是不是网络传输的过程丢包了,我改了程序,把收到的mp3数据流直接写入文件。这个文件可以用mpg123流畅的播放。也就是说,网络传输不是问题的关键,可能是解码的地方错了。
由于本人对音频方面的知识很少,目前时间紧迫,没有时间系统的研究音频方面的知识。
有没有知道,我犯的是什么错误?
谢谢啦!
|
代码bug,检查吧。