用到的工具:OBS Studio(推流).nginx-rtmp流媒体服务器.VLC(拉取流播放) Nginx系列1:ubuntu16.04编译出适合自己的nginx服务器 Nginx系列1.1:ubuntu16.04编译nginx-rtmp流媒体服务器 1 配置推流权限 配置nginx-rtmp流媒体服务器的conf/nginx.conf文件: rtmp { server { listen 1935; #监听的端口 chunk_size 4000; application hls { #rtmp…
javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.javaCV-openCV) javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG) javaCV开发详解之4:转流器实现(也可作为本地收流器.推流器,新增添加图片及文字水印,视频图像帧保存),实现rtsp/rtmp/本地文件转发到rtmp…
Nginx学习历程 一.初识Nginx 1.Nginx适用于哪些场景 (1)静态资源服务 通过本地文件系统提供服务 (2)反向代理服务 Nginx的强大性能 缓存 负载均衡 (3)API服务 OpenResty 2.Nginx出现的历史背景 nginx [engine x]是俄罗斯人Igor Sysoev编写的一个HTTP和反向代理服务器,另外它也可以作为邮件代理服务器. 它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括Yandex.Mail.Ru.VKontakte,以及Ramb…
北广传媒移动电视(http://www.bj-mobiletv.com/)的RTMP流媒体服务器有漏洞 该漏洞可以上我们通过他们的服务器向互联网直播视频 使用任意可以发布RTMP流媒体的客户端(例如:Adobe Flash Media Encoder,或者自己做一个Flash文件) 随便给流媒体起个名字,可以直接Publish到他们的服务器的名字叫“live”的地址上.URL:rtmp://www.bj-mobiletv.com:8000/live 例如取名“myCamera” 然后使用Flas…
没有用到ffmpeg库 可以将本地FLV文件发布到RTMP流媒体服务器 使用librtmp发布RTMP流可以使用两种API:RTMP_SendPacket()和RTMP_Write(). 使用RTMP_SendPacket()发布流的时候函数执行流程如下图所示.使用RTMP_Write()发布流的时候函数执行流程图相差不大.   InitSockets():初始化Socket RTMP_Alloc():为结构体“RTMP”分配内存. RTMP_Init():初始化结构体“RTMP”中的成员变量.…
方案介绍 目前互联网直播的CDN和标准RTMP流媒体服务器通常只能接收RTMP格式的音视频推流.目前市场上有一些自带RTMP推流的摄像机和编码器,可以直接在其rtmp推流配置里面配置推送到RTMP流媒体服务器上.但是大部分的安防网络摄像机还是不带推流功能,尤其是海康.大华.宇视等通用性价比高的摄像机,是不支持的,所以,对于这种摄像机只能通过二次开发的方式,先获取摄像机实时视频流并封装成RTMP/FLV格式进行推送,再由RTMP流媒体服务器进行转发/分发. 获取摄像机实时视频流的方式可以调用摄像机…
开发EasyDSS的初衷 自从12年开始做EasyDarwin的时候,当时眼光一直都仅仅局限在安防监控视频这一块,对RTMP没有太大的重视,对于后起之秀HLS更是没有太多关注,然而经历了15直播火热的发展,RTMP.HLS.H5直播已经势不可挡了,16年初的时候我才恍然清楚,传统的安防已经没有太大的发展空间了,安防的下一个爆发点将会是在:安防视频的互联网化!,果不出所料,我们开发了一款非常火热的EasyNVR项目受到了来自全国用户的喜爱,当然这个不是本篇讨论组的重点: EasyDarwin如何向…
之前接触最多的都是EasyNVR,主要针对的都是前端的一些问题.也有接触到一些easydss流媒体服务器. 前端方面的,EasyDSS流媒体服务器与EasyNVR有着根本的不同.EasyNVR使用的是传统的js来进行开发.而EasyDSS使用的是webpack+vue来进行开发的. 能了解到vue+webpack的应该都需要介绍他的好处了吧. 我也是在这里才接触的vue.我在后续的博客中也会记录下自己的一些学习vue的体会.心得. 之前没有接触过vuejs.由于开发需求,需要在easydss流媒…
使用用户提供的交叉编译工具链编译easydss时遇到一个编译错误 stray '\239' inprogram stray '\187' inprogram stray '\191' inprogram 初看这个错误摸不着头脑,网上的解决方案也是一本正经的胡说八道 那我们来看看239 187 191是什么,也就是EF BB BF 原来是utf-8的BOM,那原因我大概了解了 这个源码的文件格式是带BOM的utf-8,此编译器版本较老不支持 那我们将源码文件做一下转换,转换成无BOM的utf-8…
EasyDSS支持HTTP GET接口访问,我们需要获取url的各种参数信息 比如http://ip:port/action?a=1&b=2&c=3 我们需要知道对应的a.b.c的值 这里我们实现了简单的query url,能满足一般要求 后来回实现一个完善的URI解析类 to_lower辅助函数,C++中没有string的转换大小写函数 inline void to_lower(std::string& str) { for (int i = 0; i <str.size(…