• 浏览器播放rtsp流媒体解决方案


     老板提了一个需求,想让网页上播放景区监控的画面,估计是想让游客达到未临其地,已知其境的状态吧。
        说这个之前,还是先说一下什么是rtsp协议吧。
     RTSP(Real Time Streaming Protocol),实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学、网景和RealNetworks公司提交的IETF RFC标准。该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或RTP完成数据传输。HTTP与RTSP相比,HTTP传送HTML,而RTP传送的是多媒体数据。HTTP请求由客户机发出,服务器作出响应;使用RTSP时,客户机和服务器都可以发出请求,即RTSP可以是双向的。(管他说的啥,反正就是摄像头的协议,网页不能直接播)。
     跟后台研究了几天,决定的实现方式是:nginx搭的服务器,ffmpeg转码,jwplayer播放。(未知的时候像读天书,真要了解了,感觉也没多难)。
    什么都不说了,卷起袖子玩玩吧。先搞个ffmpeg、nginx和jwplay。

    图片    

    1.先把nginx开了。

    图片 

    conf里我用的是这两个端口,

    图片

    1935不是http,但8080的www是呀, 先放个本地的mp4看看有没有问题。

    图片

    2再说说ffmpeg.
     FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。在这里我只用到了它的视屏格式转换功能,将rtsp协议的视频流转成rtmp(监控本身是rtsp协议,现在这个方案虽然用了jwplay,但也只是支持rtmp,因此要用ffmpeg转码)
    举个例子:
    假如海康摄像头的监控地址为(rtsp://admin:12345@192.168.10.215/h264/ch1/main/av_stream)(帐户,密码,ip,端口,.....)

    这串地址每一项都要对,不然就等着报错吧,错了重来也是挺浪费时间的。
    图片
    如图就是地址不对导致的授权失败。
    话不多说,让我们开了ffmpeg吧。
    图片
    然后再转一下rtmp
    图片
    如果成功了会一直转,不停歇:
    图片
    至此,ffmpeg就先这样吧
    3 让我们开了jwplayer
    图片
    key值一定要有,这是我以前觉的一切都没错,js也引了,可还是实现不了播放的一个原因。
    jwplayer虽然是国外的还是很不错的,可以自定义直播封面,插播广告等,可惜有的功能要花钱。
    最后刷下local,
    图片
     
    ok,海康的摄像头再也不需要海康的软件才能看直播了。
    其实,实践过程中还出过一些其它错误,时间拖的太长,我也记不清了。
    一开始是想用websocket直接拿过来video直接播放rtsp的,由于后台说的某些原因,就改用这个方案了。
    我现在还是想用websocket,有时间了再看下吧。
  • 相关阅读:
    WPF做的小型音乐播放器升级版
    WPF做的小型下载工具和一点点吐槽
    js小技巧摘录1
    关于浏览器缓存设置
    js高阶函数应用—函数防抖和节流
    ES6中let和闭包
    js高阶函数应用—函数柯里化和反柯里化(二)
    js继承的实现(es5)
    js高阶函数应用—函数柯里化和反柯里化
    前端回答从输入URL到页面展示都经历了些什么
  • 原文地址:https://www.cnblogs.com/gaoji/p/6872365.html
Copyright © 2020-2023  润新知