采集和播放采用portaudio
编解码因为配合视频,直接使用ffmpeg的aac。
这里有个不错的小例子:
不过文中的ffmpeg版本比较老了,和我在前几章中使用的ffmpeg稍有不同,不过很好改,参考ffmpeg源码里 doc/examples里面的decoding_encoding.c。
portaudio使用实在太简单,看带的几个例子和上面提到的这个小例子就可以了。
如果不考虑视频只用音步,可以用speex,有个很不错的项目:
如果对带宽非常在意的话,估计729也是唯一选择了。好在除了极端项目(卫星传输数据)基本都不太在意。
写这一系列文章到现在已经一年多了。当时只是想演示一下基本的音视频编程基础。如果想做为成熟商用的话,还是建议采用SIP等应用广泛的协议。SIP比较好的开源项目是:
当然SIP也有本身的问题,比如每路传输都要占用独立的RTP端口。这时RTMP也是一种不错的方案,可以使用librtmp: 。
rtmp的特点是可以借助web完成音视频通话,在网络安全要求高的情况下非常有用。
另外,Google的webrtc也开源了,也可以研究。
当然,基础的项目,比如ffmpeg, ImageMagick, GIMP, OpenCV,最好也掌握一下。
阅读(4541) | 评论(1) | 转发(0) |