最近换了个工作,以前一直做Java Web和Android相关工作,目前因为项目需要先从底层做起,目前负责视频编解码相关工作,一下子从Java跨越到C/C++,一个不淡定的开始。
项目的本质要求是手机端、PC端能实时播放摄像头当前的视野,且低延时,低到人眼无感知层度。通过查阅资料得知有两种可行技术及协议:RTSP(Real Time Streaming Protocol) 和 RTMP(Real Time Messaging Protocol)。
- RTSP主要用于IPTV,原因是传输数据使用的是UDP(当然也可设置使用TCP,只是传输效率没有UDP好),在网络环境比较稳定的情况下,传输效率是比较高的,意味着可以做到低延时;
- RTMP主要用于互联网音视频传输,它使用的是TCP传输,因为互联网环境相对较差,采用RTMP保证了视频的传输质量,但是其传输延迟相对较高,传输效率相对较低。
因此,为了达到低延时的目的,只能选择RTSP方向。RTSP只是一个协议,那么谁来实现此协议呢,当然是得有个RTSP Server,我们流媒体播放器播放得就是来自RTSP Server的视频流,在同事的推荐下我才用了Live555——一个开源的RTSP Servier库,准确讲它还不算库,它是一个开源软件,因为它本身只能stream本地文件,需要改造让它成为我们项目的一个库——读内存中的视频并stream。
当前的工作是开发RTSP Server,因此server能不能工作得有个衡量,简单说就是得有个播放器来播放测试,我们选择了VLC,浩浩荡荡的视频编解码工作就开始了。。。(其实,处处是小白,语言还不通)
网友评论