[{"data":1,"prerenderedAt":64},["ShallowReactive",2],{"article-15":3},{"code":4,"msg":5,"data":6,"count":14},200,"查询成功",{"id":7,"title":8,"keywords":9,"description":10,"category_id":11,"content":12,"body_html":13,"thumb_up":14,"clicks":15,"sort":14,"remark":16,"status":17,"is_open":17,"is_deleted":14,"is_top":17,"is_recommend":17,"create_time":18,"update_time":19,"image_id":20,"url":13,"member_id":14,"cate_name":21,"prev":22,"next":25,"tags":28,"words":35,"read_time":36,"comments":14,"cover":37,"relevant":38},15,"基于Windows的FFmpeg+Red5实现海康监控摄像头RTSP协议转RTMP协议的WEB直播","监控,直播,web,rtsp,rtmp","最近公司项目需要，系统中要添加两个海康的监控摄像头，可海康的监控摄像头的数据流是rstp的，在当前的h5页面不能直接使用，进过多次方案的更改，最终选定转成h5支持的协议。",2,"最近公司项目需要，系统中要添加两个海康的监控摄像头，可海康的监控摄像头的数据流是rstp的，在当前的h5页面不能直接使用，\n\n方案一：直接使用必须要用vlc播放器以及火狐支持的vlc的版本（40版支持vlc相对稳定），但是缺点是运行时间久了之后，回报c++运行\n\n库异常的问题，\n\n方案二：同样使用vlc播放器，只是利用lvc播放器进行转码，转成video支持的视频格式，缺点是，延时高，占cup资源。\n\n方案三：使用`websocktet`转码，使用`Streamedian WS RTSP Proxy Server`，该软件免费版支持几个监控，方案一、二的问题都可解决，\n\n但是远程访问时`websocket`会报错，一直没有解决该问题，直接换第四种方案了（时间紧）；\n\n方案四：通过`FFmpeg`将`rtsp`协议转成`rtmp`协议，再用`red5`流媒体服务器接收和发布`rtmp`数据，完美解决之前的问题。\n\n以下具体介绍方案四：\n\n所有操作都是`windows`环境下进行的。\n\n一、安装`ffmpeg`\n\n1、介绍\n\n`FFmpeg`是一套可以用来记录、转换数字音频、视频，并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、\n\n转换以及流化音视频的完整解决方案。它包含了非常先进的音频\u002F视频编解码库`libavcodec`，为了保证高可移植性和编解码质量，\n\n`libavcodec`里很多code都是从头开发的。（百度的）\n\n2、下载`ffmpeg`\n```bash\nhttps:\u002F\u002Fffmpeg.zeranoe.com\u002Fbuilds\u002F\n```\n根据自己的操作系统下载静态程序版本\n\n![](https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Fckeditor\u002F20190117\\01d2f80c0c477995f0612c794308a32b.png)\n3、解压文件到指定的磁盘\n\n目录结构\n\n![](https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Fckeditor\u002F20190117\\c87b20445be29d27928921085790b1ce.png)\n4、配置FFmpeg到系统变量\n\n在系统变量的path内容中加入` d:\\ffmpeg\\bin;`然后确定。\n\n5、cmd测试\n\n`win+R`输入`cmd`回车打开命令提示符窗口，输入 `ffmpeg -version`, 如果返回`ffmpeg`的版本信息，则表示安装成功。\n\n二、安装Red5\n\n1、安装java\n\n由于red5是java开发的，所以安装red5之前要安装java环境，在这里java环境安装不做介绍。具体自行百度。\n\n这里使用的是`red5-server-1.0.10`，安装jdk1.8即可\n\n2、下载red5\n```bash\nhttps:\u002F\u002Fgithub.com\u002FRed5\u002Fred5-server\u002Freleases\n```\n3、配置red5到系统变量\n\n在系统变量中加入 red5解压的目录地址即可\n\n4、测试\n\n在命令提示符窗口输入red5，有信息输入则表示安装成功\n\n默认端口是5080，可在浏览器输入`127.0.0.1:5080`访问\n\n若修改配置可以看具体的文档介绍。\n\n三、主要问题，转协议\n\n主要代码\n\n```bash\nffmpeg -i \"rtsp:\u002F\u002Fadmin:admin123@10.10.10.158\u002Fh264\u002Fch1\u002Fmain\u002Fav_stream\" -f flv -r 25 -s 640x480 -an \"rtmp:\u002F\u002Flocalhost\u002FoflaDemo\u002Fhello\"\nrtsp:\u002F\u002Fadmin:admin123@10.10.10.158\u002Fh264\u002Fch1\u002Fmain\u002Fav_stream 海康监控的地址\nrtmp:\u002F\u002Flocalhost\u002FoflaDemo\u002Fhello 转协议后的地址\n```\n修改Red5安装目录下的 webapps\\oflaDemo\\index.html 文件，将jwplayer的 file 属性改成 “hello”。\n\n访问 http:\u002F\u002Flocalhost:5080\u002FoflaDemo\u002Findex.html 在你所修改的播放器上是否可以看到摄像头的直播了。\n\n同样把index.html的关键代码放到项目中就成了，就搞定了。\n\n参考：\n```bash\nhttp:\u002F\u002Fwww.cuplayer.com\u002Fplayer\u002FPlayerCode\u002FRTSP\u002F2014\u002F0706\u002F1419.html\n```",null,0,494,"",1,"2019-01-17 22:29:03","2026-04-19 15:03:31",127,"PHP",{"id":23,"title":24},14,"Yii2获取模块名、控制器名、方法名 ",{"id":26,"title":27},16,"MySQL Limit分页优化",[29,32],{"id":30,"name":31},32,"web",{"id":33,"name":34},33,"监控",1505,3,"https:\u002F\u002Ftp.myong.top\u002Fstorage\u002Farticle\u002Fde\u002F36593248f37397d88a6a0d873ebaad.jpg",[39,44,49,54,59],{"id":40,"title":41,"create_time":42,"description":43},93,"PHP执行Python脚本解压，压缩文件夹操作","2020-08-06 14:59:05","PHP是有解压缩类文件的，但在实际项目中，用户方使用Python脚本压缩，很容易出现中文解压乱码，导致文件内容丢失的情况，本文主要介绍PHP执行Python脚本解压缩出现的问题以及解决方法",{"id":45,"title":46,"create_time":47,"description":48},92,"PHP对图片的处理","2020-07-30 15:53:38","图片处理函数功能：缩放、剪切、相框、水印、锐化、旋转、翻转、透明度、反色处理并保存历史记录的思路：当有图片有改动时自动生成一张新图片",{"id":50,"title":51,"create_time":52,"description":53},96,"PHP中字符串跟0做比较永远是true","2021-02-04 16:16:27","最近在项目中做数据对比的功能，发现一个特殊的情况，0跟任何字符串做比较永远返回true，特意了解了一下。",{"id":55,"title":56,"create_time":57,"description":58},13,"Win系统下配置PHP链接Oracle","2019-01-17 22:23:36","该文章内容主要介绍window系统下，php连接oracle的配置。",{"id":60,"title":61,"create_time":62,"description":63},103,"面向对象三大特性五大原则 + 低耦合高内聚[转载]","2021-10-31 23:18:58","面向对象的三大特性是\"封装、\"多态\"、\"继承\"，五大原则是\"单一职责原则\"、\"开放封闭原则\"、\"里氏替换原则\"、\"依赖倒置原则\"、\"接口分离原则\"。",1783431671588]