视频流媒体中视频数据的传输占据了绝大部分的带宽,如何提升编码效率、减小带宽使用、提升画面质量,成为音视频开发者努力的重点。随着互联网、流媒体技术的发展,兼容支持H.264、H.265编码器(可减少计算的复杂性、提高压缩率,并降低编码时间)已经成为迫在眉睫的事。
RTSP协议也是广泛使用的直播/点播流媒体协议,以前的项目里实现了一个RTSP协议转换RTMP直播协议的程序,为的是可以接收远端设备或服务器的多路RTSP直播数据,实时转换为RTMP直播协议,推送到NginxRtmp等RTMP服务器,可以在PC上实现flash观看RTSP直播源(比如IPCAM)的需求,也能通过Nginx的HLS协议转换,在手机上观看。
该流程的关键点有以下部分:
- RTSP直播流的读取
- H.264和AAC编码数据的分析、处理
- FLV文件数据的提取及与RTSP直接的切换和衔
- RTMP数据包封装
- RTMP推送协议
如何实现拉RTSP流推出RTMP流
问题描述
最近有开发者咨询是否有工具支持实现拉RTSP流推出RTMP流?
解决方案
我们首先来搭建一个实例。
1、准备一个rtsp流。我们这里准备的是海康的摄像机,rtsp流地址如下:rtsp://admin:admin12345@192.168.99.23:554/h264/ch33/main/av_stream
2、从https://github.com/tsingsee/EasyRTMPLive下载EasyRTMPLive,目前只支持windows系统,直接点击EasyRTMPLive.exe文件启动,会出现一个命令行窗口,不能关闭这个窗口:
直接在浏览器输入如下图中URL地址,初次打开默认列表是空的如下图:
3、在新增界面我们只需要填写三个参数:名称,源地址,推流地址,我们现在将该RTSP流推送到我们的EasyDSS-Kernel流媒体服务器上,地址为:rtsp://192.168.99.103:10085/hls/test
4、观看效果