登峰造极境

  • WIN
    • CSharp
    • JAVA
    • OAM
    • DirectX
    • Emgucv
  • UNIX
    • FFmpeg
    • QT
    • Python
    • Opencv
    • Openwrt
    • Twisted
    • Design Patterns
    • Mysql
    • Mycat
    • MariaDB
    • Make
    • OAM
    • Supervisor
    • Nginx
    • KVM
    • Docker
    • OpenStack
  • WEB
    • ASP
    • Node.js
    • PHP
    • Directadmin
    • Openssl
    • Regex
  • APP
    • Android
  • AI
    • Algorithm
    • Deep Learning
    • Machine Learning
  • IOT
    • Device
    • MSP430
  • DIY
    • Algorithm
    • Design Patterns
    • MATH
    • X98 AIR 3G
    • Tucao
    • fun
  • LIFE
    • 美食
    • 关于我
  • LINKS
  • ME
Claves
长风破浪会有时,直挂云帆济沧海
  1. 首页
  2. Platforms
  3. LINUX
  4. FFmpeg
  5. 正文

HTML5 视频流控制与传输之RSTP+HTML5+HLS+RTMP

2018-01-09

海康等普通网络摄像头均仅支持RSTP实时流传输协议,但是此协议各大浏览器均不直接支持,需要采用N中复杂的架构,才可以支持浏览器端显示实时流。

今天中午发现了HTML5开始主推HSL(HTTP Live Streaming)流传输协议,经过短暂学习后,发现此种流传输完全可以替代以前架构,应用到目前的产品中,所有进行了测试。

总则:实时性要求不高的(10~90秒)应用采用HTML5+HLS的方式,实时性要求高的(<10S)采用RTMP+HTML5方式

一、技术架构:

1、采用海康网络摄像头捕获视频,并转成RTSP流。

rtsp://user:password@192.168.1.1:554/h265/ch1/main/av_stream

2、采用RTSP转HLS工具,实时转编码HLS流。(目前使用91flv工具,但此工具免费版仅支持30min实时流。单最终会使用ffmpeg直接转流。详见:https://lists.ffmpeg.org/pipermail/ffmpeg-user/2013-November/018558.html)

3、采用nginx转发,规范化传输。(此步骤可不需要。但是普通hls server不支持跨域,需要nginx添加cors头,支持其跨域)

server
{
    listen 80;
    server_name live.dev.claves.me;
    location / {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://192.168.1.1:80;
        add_header  Access-Control-Allow-Origin '*' ; 
    }
   
}

 

4、使用ngrok内网穿透,支撑外网访问。

5、编写html5,实现流媒体传输与控制。

二、HTML5+HLS

 

三、HTML5+RTMP

1、流程

  1. 摄像头捕获RTSP流
  2. ffmpeg转rtsp流为rtmp流,发送至red5服务器
  3. red5流媒体服务器进行分发
https://github.com/Red5/red5-server
https://www.cnblogs.com/lidabo/p/7325037.html

四、百度播放器

http://cyberplayer.bcelive.com/demo/new/index.html

参考资源:

http://cyberplayer.bcelive.com/demo/new/index.html

https://github.com/video-dev/hls.js
https://github.com/videojs/video.js

http://videojs.com/plugins/

http://www.91flv.com/

https://github.com/EasyDSS/EasyNVR
https://github.com/xiongziliang/ZLMediaKit
https://lists.ffmpeg.org/pipermail/ffmpeg-user/2013-November/018558.html
标签: 暂无
最后更新:2025-03-13

代号山岳

知之为知之 不知为不知

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2099 登峰造极境. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备14031139号-5

川公网安备51012202000587号