通过摄像机视频设备或者流媒体服务器SDK获取到数据转换成RTMP流实现网页/手机微信播放
写这篇博客主要是为了给新入门的流媒体开发者解惑,现在看到各种开发者的需求:网页播放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播放,必须借助于服务器的转换;
获取更多信息
Copyright © EasyDarwin.org 2012-2017
通过摄像机视频设备或者流媒体服务器SDK获取到数据转换成RTMP流实现网页/手机微信播放的更多相关文章
- Ubuntu 14.10下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具)
Ubuntu 14.10下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具) 最近因为项目关系,收朋友之托,想制作秀场网站,但是因为之前一直没有涉及到这 ...
- 基于EasyNVR摄像机无插件直播流媒体服务器实现类似于单点登录功能的免登录直播功能
提出问题 EasyNVR是一套摄像机无插件直播的流媒体服务器软件,他可以接入各种各样的摄像机,再经过转化统一输出无插件化直播的RTMP.HLS.HTTP-FLV流,同时,EasyNVR为了数据安全,提 ...
- 最新海康摄像机、NVR、流媒体服务器、回放取流RTSP地址规则说明
本文档主要介绍海康威视设备预览.回放.流媒体取流的RTSP URL和IE直接预览.回放的HTTP URL. RTSP为取流协议,取到码流后需要解码显示,可以通过VLC播放器进行测试,IE等浏览器网页不 ...
- Android视频直播:流媒体服务器搭建
一.前言 实时视频直播是这两年非常火的技术形态,已经渗透到教育.在线互娱等各种业务场景中.但要搭建一套实时视频直播系统,并非易事,下面针对直播系统的的搭建做一下说明: 1.1 通常的直播系统的技术模型 ...
- EasyNVR摄像机无插件直播流媒体服务器前端构建之输入框样式的调整
EasyNVR授权方式分为软件的授权和硬件授权两种方式,软件授权需要在软件输入永久邀请码可以激化永久授权 起初我们的界面设计是为了满足功能的需求就是 ,用户可以输入激活码提交,完成永久授权. 在实际的 ...
- CentOS6下基于Nginx搭建mp4/flv流媒体服务器(可随意拖动)并支持RTMP/HLS协议(含转码工具)
1.先添加几个RPM下载源 1.1)安装RPMforge的CentOS6源 [root@AY130611215205Z ~]# wget -c http://pkgs.repoforge.or ...
- EasyDSS流媒体服务器灵活地帮助用户实现摄像机RTSP转RTMP直播功能
简要描述 今天突然接到国内某上市公司同事打来的技术咨询电话,经过简单的沟通,大概所描述的需求是: 1.目前现场有非常多的摄像机资源需要接入: 2.需要将摄像机的RTSP流转成RTMP流接入到微信小程序 ...
- javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG、javaCV-openCV)
javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...
- 安防视频互联网化的EasyDSS流媒体服务器不但能Easy安防流媒体的开发而且能更加互联网化视频协议的输出
开发EasyDSS的初衷 自从12年开始做EasyDarwin的时候,当时眼光一直都仅仅局限在安防监控视频这一块,对RTMP没有太大的重视,对于后起之秀HLS更是没有太多关注,然而经历了15直播火热的 ...
随机推荐
- 解读:Hadoop Archive
hdfs并不擅长存储小文件,因为每个文件最少一个block,每个block的元数据都会在NameNode中占用150byte内存.如果存储大量的小文件,它们会吃掉NameNode节点的大量内存.MR案 ...
- NOIP树上问题总结
这几年考了好几次树上问题: NOIP2012 疫情控制(二分答案+倍增+贪心) NOIP2013 货车运输(最大生成树+倍增) NOIP2014 联合权值(勉强算作树形dp的傻逼题) NOIP2015 ...
- SaltStack使用salt-ssh模式-第十一篇
salt-ssh介绍 1.salt-ssh 是 0.17.0 新引入的一个功能,不需要minion对客户端进行管理,也不需要master. 2.salt-ssh 支持salt大部分的功能:如 grai ...
- Windows下才有blat进行命令行邮件发送
1.先下载blat.exe文件,下载地址: https://sourceforge.net/projects/blat/files/ 2.解压后只需要blat.exe即可,进入此文件夹,运行如下脚本进 ...
- LeetCode——3Sum
1. Question Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? ...
- PRcurve
https://blog.csdn.net/qq_33350808/article/details/83178002 问题:删掉pkl
- Ubuntu 安装 networkx
参考:ubuntu 下NetworkX的安装和使用 Dependences pip setuptools Commands 1.install networkx sudo pip install ne ...
- Linux段错误及GDB Coredump调试方法
最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation Fa ...
- spring @RequestMapping注解技巧
@RequestMapping 是 Spring Web 应用程序中最常被用到的注解之一.这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理方法上. 下面我们看看,@Request ...
- IDEA 中使用 Vue 提示 namespace is not bound
今天在 IDEA 中使用 vue.js 时提示我如下错误信息 解决方法: 把这个校验项目去掉就可以了.