局域网广播音视频在实际应用中广泛存在,如局域网视频教学、景区广播、会议等多种场景,本文提供了一种实现局域网音视频广播的方案。
服务器端
我们首先以指定的频率采集桌面图片,把桌面图片编码为h264格式,再把h264数据帧组播方式发送出去;
采集声卡pcm数据,将pcm数据编码为aac格式,再把aac数据帧以组播的方式发送出去;
我们也可以采集麦克风的声音,进行编码发送;
上述我们实现了数据的获取、编码及发送。
客户端
我们通过通过rtsp协议与服务器端建立连接,获取音视频数据的某些信息,根据信息初始化音视频播放器;
建立一个udp监听专门获取音频数据,将获取到的音频数据解码为pcm格式,再将pcm数据发送到音频播放器进行播放;
建立一个udp监听获取视频数据,将获取到的视频数据解码为yuv格式,然后显示到界面上,实现视频播放;
总结
本方案看似描述简单,但是在实现的过程中会遇到多种问题,我总结如下:
1、视频的采集及编码效率;
2、音频、视频的发送效率;
3、局域网udp协议丢包问题;
4、客户端的音画同步播放;
5、服务器与客户端之间的延迟;
6、客户端增加后对硬件的压力;
我花费了较长时间终于实现了局域网内音视频数据组播方案,能够达到高清效果,并且延迟在300ms以内,音画同步;
本人研究的实现为C、C++、C#、wpf,其他语言因个人能力有限暂未实现。
具体的实现请参考http://download.csdn.net/detail/zxcvbnm858442/9882597
欢迎大家交流分享如果您发现任何问题请给我指出。