通过摄像机视频设备或者流媒体服务器SDK获取到数据转换成RTMP流实现网页/手机微信播放
来源:互联网 发布:freemind软件 编辑:程序博客网 时间:2024/06/08 16:00
写这篇博客主要是为了给新入门的流媒体开发者解惑,现在看到各种开发者的需求:网页播放RTSP摄像机、微信播放RTSP摄像机、网页播放摄像机SDK输出的视频流、网页播放第三方流媒体平台输出的视频流、包括Github有一些所谓的H5RTSPPlayer,这些都无外乎一个共同点,就是H.264+AAC进行RTMP推流;
将整个过程进行拆分为二:
一、通过RTSP或者SDK获取H.264视频流和AAC音频流,获取RTSP流我们可以用ffmpeg、EasyRTSPClient(https://github.com/EasyDarwin/EasyRTSPClient)等方案,获取SDK流我们就可以用各个摄像机厂家或者平台厂家提供的各种平台SDK(海康NetSDK、大华NetSDK、雄迈LocalSDK)等等,这些都能无一例外地有共同的流程:
- 初始化
- 登录
- 设置数据回调
- 开始实时流
- 处理实时返回的音视频数据
- 释放Handle
视频数据大多返回的是H.264数据流,音频就各种各样了,有返回G.711、G.726、AAC的,如果是返回的G.711或者G.726时,就需要调用AAC的编码器(如ffmpeg、EasyAACEncoder等)将安防的音频流转换成AAC的音频编码格式;
二、将编码好的H.264视频和AAC音频以RTMP/FLV的方式推流到通用的RTMP服务器(nginx-rtmp、srs、EasyDSS、CRTMPD等),进行RTMP/HLS的直播,这里就主要是RTMP推流功能的实现,我们可以采用ffmpeg、librtmp、EasyRTMP等多种方案推流,如果采用ffmpeg为工具进行RTSP拉流的话,我们建议推流也用ffmpeg,这样直接将音频数据在ffmpeg内部进行一次filter转码,就可以实现rtmp的output了,如果采用librtmp的话,也是比较好的方案,毕竟市面上90%的RTMP推流都是Based On librtmp,包括EasyRTMP,之所以推荐用EasyRTMP一方面是因为是EasyDarwin团队其他伙伴的产品,另一方面,确实好用,有非常完备的多平台调用示例(https://github.com/EasyDarwin/EasyRTMP):
- EasyRTMP_File:读取MP4文件推RTMP直播流,实现虚拟直播;
- EasyRTMP_RTSP:读取RTSP流并进行转换成RTMP推流到RTMP服务器;
- EasyRTMP_SDK:调用SDK获取音视频流,再推流RTMP;
- EasyRTMP Android:安卓推送摄像头/屏幕进行RTMP直播;
- EasyRTMP iOS:iOS苹果推送摄像头进行RTMP直播;
完备的调用示例,加上全平台的支持(Windows、Linux、arm、Android、iOS),给了开发者非常好的选择和帮助;
按照以上的两个流程,我们就可以将RTSP/SDK获取到的数据进行RTMP/HLS发布,实现全终端、无插件化的播放了,这也是所谓的H5 RTSP播放器的实现方案,RTSP要H5播放,必须借助于服务器的转换;
获取更多信息
邮件:support@easydarwin.org
WEB:www.EasyDarwin.org
Copyright © EasyDarwin.org 2012-2017
- 通过摄像机视频设备或者流媒体服务器SDK获取到数据转换成RTMP流实现网页/手机微信播放
- 通过摄像机视频设备或者流媒体服务器SDK获取到数据转换成RTMP流实现网页/手机微信播放
- 通过RTMP协议将AAC数据发送到流媒体服务器
- nginx安装nginx-rtmp-module视频流媒体播放服务器模块
- EasyNVR网页/微信播放RTSP摄像机HLS/RTMP播放时出现起播等待问题的优化过程
- 通过RTMP协议将AVC(H264)数据发送到流媒体服务器
- 微信、公网播放摄像机视频方案
- EasyDSS RTMP流媒体服务器中调用videojs播放rtmp视频显示在左上角问题
- rtsp2rtmp程序,从rtsp摄像机获取流,转换为rtmp push到FMS
- rtsp2rtmp程序,从rtsp摄像机获取流,转换为rtmp push到FMS
- NGinx+RTMP 实现流媒体服务器
- 网页播放rtmp流
- 通过ASIHTTPRequest实现简单流媒体视频播放下载
- 微信开发H5 video 视频在ios可以播放但是在android手机上无法播放或者黑屏
- 微信公众号用java中控服务器-实现用户网页授权和获取使用JS-SDK权限
- Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)
- Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)
- Red5流服务器搭建(实现在线直播,流媒体视频播放和在线视频会议)
- 关于Jquery版本的Ajax和SpringMVC拦截器(Interceptor)
- 数据库 第一、第二、第三范式说明
- SQL的having和where的区别
- 【GDOI2018模拟7.9】期末考试
- Python编码问题
- 通过摄像机视频设备或者流媒体服务器SDK获取到数据转换成RTMP流实现网页/手机微信播放
- The VirtualBox Linux kernel driver (vboxdrv) is either not loaded
- 踏入写博客的行列
- linux 权限管理命令
- bzoj4869&&jzoj5214[Shoi2017]相逢是问候 线段树+欧拉定理
- 剑指offer--从上往下打印二叉树--层次遍历、广度优先搜索
- Lombok 安装及入门
- JZOJ5213. 【GDOI2018模拟7.9】期末考试
- Ubuntu16.04 + cuda8.0 + GTX1080 + matlab14.04a + Opencv3.0 + caffe 安装教程