文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>音频压缩方案

音频压缩方案

时间:2006-07-02  来源:lzhw_lucky

初步定为采用G.729进行音频压缩。 首先了解一下G.729的接口问题,如何输入原始数据和得到编码的数据的格式为何? 采用的协议为UDP+RTP。应该达到具有像QQ等聊天工具等效果。     由于初期方案考虑的不是很完善,现更正如下: 由于G.729压缩方案只适合windows下使用,如果要在linux下使用需要到visage网站购买它的linux版本,(并且G.729没有Java版本),有G.729和G.729A和G.728和G.723不适应跨平台的程序的编写。所以经过综合考虑选用MPEG4进行音频编码,而用H.264或H.263进行视频编码。因为两者都有一个跨平台的源代码FFMPEG。 发送端在Linux下编译,而FFMPEG正好就可以在Linux下编译。 接受端在跨平台的Java下显示,由于FFMPEG本身是C++语言编写的,不能够直接在Java下调用,因此需要对其进行Java封装,目前开源网sourceforge给出了两个Java版本--JFFMPEG、FMJ和FobsFFMPEG。三者都可以在java下直接调用FFMPEG的C++ API。因此达到跨平台的编译。 不过好像是RTP这一块解决的都是不好,如果想用的化需要自己编一个RTP包装。其实JMF也支持H.263编解码。 基于上述方案,可以实现编写的音视频编解码的跨平台运行。   也可以考虑以下方案: 由于JMF支持mp3(MPEG1 Layer3)解码,所以可以在Java客户端可以采用MP3解码,而在服务器端由于是C++语言编写的,所以应该采用Lame MP3编码库(可以在sourceforge下载)。虽然压缩比不如MPEG4,但实现起来简单,不失为一个好的选择!   经过测试感觉采用GSM编解码方式具有更好的可取性: 经过测试mp3只能在本地播放,不能经过网络RTP包传输进行实时播放。 而采用GSM有linux下的编码版本,在Java下又有RTP解包装,另外由于较高的压缩比,比较适合在窄带中应用。     另外猜测JMF中的MPEG可能指的是MPEG1,而非MPEG4格式!     RTP+RTCP的库采用大牛Jori Liesenborgs的JRTPLIB和JVOIPLIB来设计媒体的传输方案。估计用2.8的版本就可以了,支持RTP 1889。   下一步工作:关于RTP要好好结合他给的例子研究一下!
相关阅读 更多 +
排行榜 更多 +
PvZ戴夫的时空冒险重置

PvZ戴夫的时空冒险重置

策略塔防 下载
PVZTV雪版阳光加50

PVZTV雪版阳光加50

策略塔防 下载
双刃战士雪姐

双刃战士雪姐

冒险解谜 下载