前言描述
随着大屏时代和高清时代的到来,人们已经不再满足于VGA、CIF这种小分辨率了,取而代之的是720P、1080P、4K级的视频传输,虽然我们国家的基础带宽一直在上升,但普遍情况下,传输高清视频还是带宽流量不够用,而且存在一个流量费用偏高的情况,然而目前市面上的大部分互联网直播视频协议都是基于H.264压缩方式,不得不说现在在安防领域,H.265的时代到来了,互联网上H.265不断从编码端,还是传输、解码播放端,都还没跟上,我们需要从多个方面,将H.265的特性支持于RTSP、RTMP、HTTP等流媒体通用协议中!
实现方案
目前在RTMP推流协议中,还没有统一的推送H.265的标准,都是各家CDN公司自己定义私有字段,再自己解析播放,目前拥有统一H.265推流和播放标准的,应该就是RTSP/RTP的直播协议,因为流程基本跟H.264的推流和H.265的播放过程一样,只是在SDP和RTP包上有所区别,而在整个流程上,RTSP推流还是原来的:Announce、Setup、Play、RTP流程,RTSP播放流程还是原来的Describe、Setup、Play、RTP流程,那么,整个H.265直播推流+转发+播放的核心功能就可以拆分为几个部分:
1. RTSP/RTP推流;
2. RTSP/RTP转发;
3. RTSP/RTP拉流与播放;
RTSP/RTP推流的方案我们之前在博客《ffmpeg推送,EasyDarwin转发,vlc播放 实现整个RTSP直播》中有详细的流程描述,ffmpeg是一个非常好的推流工具,在做调研验证的阶段可以采用ffmpeg.exe进行推流验证,在实际项目集成的过程中,可以采用ffmpeg的av库进行二次开发,在功能性和稳定性上,觉得是世界一流;
同样在RTSP/RTP直播流的H.265播放上,ffmpeg的ffplay也是兼容性极强,几乎市面上大部分的流媒体都能播放,而且在各种平台上都有对应的开源项目,例如ijkplayer等等;
那么,主要就是转发用到的流媒体服务器,目前开源的比较有名的就是我们开源团队做的EasyDarwin开源流媒体服务器(好像也没其他好的选择),经过测试,EasyDarwin完全能够支持H.265的RTSP/RTP转发与分发,EasyDarwin只做网络流转发,不做编解码,也就是相对来说,转发H.265是给EasyDarwin进行了减负,并发能力得到了提升!
方案推荐
这里推荐一个推流与直播播放的替代方案,毕竟ffmpeg的学习成本比较高,首先从推流上,EasyPusher能够完全替代ffmpeg,以一种比较简便的方式进行调用再推流,EasyPusher有完备的PC、Android、iOS、arm推流的调用示例,能够满足各种平台的直播推流(H.264、H.265)、转发需求:
项目地址:https://github.com/EasyDarwin/EasyPusher
播放方面,可以采用EasyPlayer播放器,也是一个比较轻的、小而美的播放器,能够满足各种流媒体协议、各种音视频编码格式的播放:
项目地址:https://github.com/EasyDarwin/EasyPlayer
获取更多信息
QQ群:587254841
Copyright © EasyDarwin.org 2012-2017