zoukankan      html  css  js  c++  java
  • EasyPusher/EasyDarwin支持H.265 RTSP/RTP直播推流与分发播放

    前言描述

    随着大屏时代和高清时代的到来,人们已经不再满足于VGA、CIF这种小分辨率了,取而代之的是720P、1080P、4K级的视频传输,虽然我们国家的基础带宽一直在上升,但普遍情况下,传输高清视频还是带宽流量不够用,而且存在一个流量费用偏高的情况,然而目前市面上的大部分互联网直播视频协议都是基于H.264压缩方式,不得不说现在在安防领域,H.265的时代到来了,互联网上H.265不断从编码端,还是传输、解码播放端,都还没跟上,我们需要从多个方面,将H.265的特性支持于RTSP、RTMP、HTTP等流媒体通用协议中!

    H.265

    实现方案

    目前在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进行了减负,并发能力得到了提升!

    EasyDarwin

    方案推荐

    这里推荐一个推流与直播播放的替代方案,毕竟ffmpeg的学习成本比较高,首先从推流上,EasyPusher能够完全替代ffmpeg,以一种比较简便的方式进行调用再推流,EasyPusher有完备的PC、Android、iOS、arm推流的调用示例,能够满足各种平台的直播推流(H.264、H.265)、转发需求:

    项目地址:https://github.com/EasyDarwin/EasyPusher

    EasyPusher

    播放方面,可以采用EasyPlayer播放器,也是一个比较轻的、小而美的播放器,能够满足各种流媒体协议、各种音视频编码格式的播放:

    项目地址:https://github.com/EasyDarwin/EasyPlayer

    EasyPlayer

    EasyPlayer

    获取更多信息

    邮件:support@easydarwin.org

    WEB:www.easydarwin.org

    QQ群:587254841

    Copyright © EasyDarwin.org 2012-2017

    EasyDarwin

  • 相关阅读:
    如何清除去掉PPT文字下的波浪线
    使用SQLyog备份还原数据库
    excel冻结首行
    查看Mysql版本号
    java23种设计模式
    Elasticsearch Java High Level REST Client(Bulk API)
    Elasticsearch Java High Level REST Client工具类
    springboot2.0整合es报错 nested exception is java.lang.IllegalStateException: availableProcessors is already set to [4], rejecting [4]
    ElasticSearch 应用开发Transport Client和Rest Client网络协议
    单例和多例的区别
  • 原文地址:https://www.cnblogs.com/babosa/p/7348751.html
Copyright © 2011-2022 走看看