在我之前的一篇博客《EasyRTMP内置进入摄像机中实现网络推流直播摄像机的功能》中,我阐述了一种将RTMP推流内置到摄像机系统内部,实现安防摄像机转互联网直播的RTMP推流摄像机功能,如果搭载在高清的IPC上,可以实现一个 非常低成本、高性价比的互联网高清直播摄像机!

但是,这只是个推流,或者说,只是一个程序,或者说是一个SDK,那么如果要做成一个产品,仅仅是有核心功能是不够的,我们还需要将整个音视频的采集、编码、回调、转码、推流、配置、停止等一系列流程,如何将整个链条完全串联和控制,是一个推流产品应该做到的;

  • 音视频源:直接由传统摄像机方案输出,例如RTSP、厂家的SDK(NetSdk、NetLib、LocalSdk)等等;
  • 转码:由于安防出来的音频数据大多数G.711/G.726类型的,所以需要进行一次音频的转码过程,编码成AAC数据;
  • 推流:RTMP推流过程;
  • 接口控制:整个音视频源获取、转码、推流过程的配置获取/设置、推流过程的启/停,等接口(http+json);

RTMP推流摄像机实现方案

  • 基于EasyRTSPClient / 摄像机SDKEasyAACEncoderEasyRTMP整合出,以设备编码源或RTSP流源作为音视频输入源,同时集成AAC转码的RTMP推流整套API方案;
  • 基于上述API做一个推流管理器:配置、控制各推流通道及监视推流状态,同时向用户提供简单的web配置接口,用户可以通过浏览器配置通道推流地址及音视频源选择,及监视通道状态;

一、整合的RTMP推流API

基本上就是基于EasyRTMP、EasyAACEncoder及EasyRTSPClient库再封装出一个扩展型RTMP推流API,若音频编码不是aac则调AasyAACEncoder arm版转码,若源是rtsp则调EasyRTSPClient实现,如果license失败就只能屏蔽相应功能。

二、RTMP推流方案HTTP RESTful服务

管理器根据配置文件配置及管理推流,同时通过http服务接受用户配置并存入配置文件,推流配置包括基本源配置(有设备源和RTSP源),推流控制包括启停通道,设置RTMP推流地址;

HTTP服务提供推流状态及现有配置显示,及配置SET服务,浏览器请求后结合html+RESTful用于显示当前配置, 用户点击设置后浏览器通过http_get的url_query_params提交配置参数,http简易服务器自己实现,http解析可以使用http-parser库,配置文件使用ini文件格式,配置文件原形:

    [base]
EasyRTMP_License=xxx
EasyAACEncoder_License=xxx
EasyRTSPClient_License=xxx Enable=true
Source=local/RTSP
RtspUrl=rtsp://xxxx
RtmpUrl=rtmp://xxxx

三、web页面原形

只提供一个页面用于状态显示及配置

    连接状态:已连接推流摄像机/未连接推流摄像机
推流状态: 推流中|通道错误|推流停止
控制: [启动] | [禁用]
源选择: 设备 | [RTSP] [应用]
RTSP源地址: [rtsp://xxx] [设置]
RTMP地址: [rtmp://xxx] [设置]

获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

Copyright © EasyDarwin.org 2012-2017

最新文章

  1. 每天一个Linux命令(3):pwd命令
  2. AGS API for JavaScript 图表上地图
  3. IDEA SDK(Software Development Kit) 介绍
  4. windows下nginx和php环境的配置
  5. struts2在pom.xml中的配置
  6. 服务器返回的各种HTTP状态码介绍
  7. javascript实现数据结构与算法系列:循环链表与双向链表
  8. linux使用crontab实现PHP执行定时任务及codeiginter参数传递相关
  9. Java之奇偶组合
  10. CF Tanya and Postcard
  11. HW5.7
  12. VS2012破解_序列号
  13. [CLR via C#]6. 类型和成员基础
  14. YII2 请求(request)
  15. Excel as a Service —— Excel 开发居然可以这么玩
  16. Django配置404页面
  17. python class 2
  18. 四:(之一和之二) docker架构和底层技术分析(C/S架构)
  19. mwan3多wan叠加成功
  20. windows 8 update to windows 8.1

热门文章

  1. 使用证书登陆Linux服务器
  2. Java并发编程,深度探索J.U.C - AQS
  3. ajax简单案例
  4. CSS 布局整理(************************************************)
  5. schema设计
  6. Android Material Design系列之主题样式介绍说明
  7. 不得不知Git远程操作详解
  8. 关于异步请求AJAX的具体解释
  9. 【Salvation】——项目进展&已取得的成果
  10. C/C++内存管理详解(转)