php+ffmpeg+nginx实现 rtsp数据流转为rtmp

公司需要在网页端显示rtsp视频数据,而网页端的vlc插件支持不算好等等原因,打算自己用php后台写一个服务器,将rtsp数据流转成rtmp后再在pc端显示。

因为之前从来没有接触过rtsp,也完全不知道ffmpeg是个什么东西,所以,在搭建服务器的过程中踩了很多的坑。

现在将这些坑记录下来,因为后续往测试和正式服务器上面部署的时候还有再次操作,免得之后忘记了。

废话不多说了,直接开始。

一、安装ffmpeg

因为我是在我本地开发的,我本地是window环境

ffmpeg下载链接:https://ffmpeg.zeranoe.com/builds/win64/static/

点进去之后,选择了latest最新的版本。

下载到本地之后解压缩,将解压缩后的文件夹放在自己心仪的位置。

然后

点到bin目录下,将此目录添加的path的环境变量里面。

之后点开cmd

输入ffmpeg


显示成这样就表示ffmpeg安装成功了。

就这样,ffmpeg先告一段落,接着搭建nginx服务器。

在这里的时候,我遇到了一个问题,我本地搭建的服务器是用的xampp这样的集成,已经是开了apache了。如果再安装一个nginx那势必会与我的apache冲突。虽然可以重新配置,但是想想还要重新搭一套nginx的服务器也挺烦的。

于是我想到,我们公司的测试环境刚好就是用nginx搭的么,我把这个转换rtsp的服务搭到测试环境上不就好了么?

说干就干,我ssh上了公司的测试服务器,然后按照网上的教程就开始配置nginx的config文件了,然后,重启nginx就报错了。

搜了百度后,才发现,我的nginx没有装nginx-rtmp-module 这个模块。

apt-get update

apt-get install libnginx-mod-rtmp

这两个命令就安装好了,重启nginx。

另外nginx.conf里面关于rtmp的配置是这样的

rtmp{

     server{

          listen 1935;

         chunk_size 4096; 

          application live{

             live on;

              record off;

              max_connections 1024;

          }

     }

}

开始的时候我将这个配到了conf.d里面去了,然后一直报错。放到nginx.conf里面就好了,时间紧迫,我也没有去研究为什么。

一直到这里,转流服务器好像就搭好了,于是,我开始兴冲冲地尝试。

回到本地,打开cmd

在里面输入

ffmpeg -i rtsp://onvif:Admin-12345@10.200.200.240:554/Streaming/channels/7601 -c:a copy -c:v libx264 -f flv rtmp://ip:1935/live

这样的一个命令。

rtsp://onvif:Admin-12345@10.200.200.240:554/Streaming/channels/7601 这个是rtsp链接。

rtmp://ip:1935/live 这个是自己搭建的转流服务器链接。(将ip替换成自己的即可)。

结果,命令行执行了这个命令后,并没有成功,眼瞅着快要成功了,却给我报了一个

method SETUP failed: 454 Session Not Found 这个样子的错位。


简直要愁白头了,又开始海量百度,但是,网上这样的问题,真的不多啊,好多我还看不懂,这可怎么是好啊。

这时候,有个做过手机端rtsp转流的同事跟我说,是不是我用的rtsp流有问题。让我换一个rtsp链接试试。

于是,没有头绪的我,乖乖地换了一个链接。

结果,真的成功了。

但是,为什么刚刚那个链接不行呢?同事说,那个rtsp的编码有问题。

于是,我利用vlc看了一下那个rtsp的编码,发现是h265的,网上一搜,果然,nginx一般而言不支持。

因为时间问题,我没有去解决这个问题,不过网上有类似的教程,先贴上链接,等我下次再弄。

https://blog.csdn.net/ybn187/article/details/88351874

https://zhuanlan.zhihu.com/p/94440269。

到这里,后端做的事情基本上就完成了,可是,我还需要将这个视频放到pc端啊。

于是,我又跑去弄前端了。

公司前端用的是vue,根据网上的推荐,我打算用video.js来实现rtmp视频流的播放。

首先

npm install video.js

npm install videojs-flash (ps:这个千万不要忘记了,否则rtmp展示前端会有问题。)

别的不说了,直接贴代码,当然也是根据网上的参考来的。

main.js里面注册

import Video from 'video.js'//浏览器视频插件

import 'video.js/dist/video-js.css'

Vue.prototype.$video = Video


接着到展示页面:


这个千万不要忘记引用



斜杠一定要加上


<video id="myVideo" class="video-js">

      <!-- <source src="../../../static/7efaf904a76f6050251da6d38980600c.mp4" type="video/mp4" > -->

      <source src="rtmp://ip:1935/live/" type="rtmp/flv" >

    </video>



mounted() {

        this.initVideo();

    },

  methods:{

    initVideo() {

            //初始化视频方法

            let myPlayer = this.$video(myVideo, {

                //确定播放器是否具有用户可以与之交互的控件。没有控件,启动视频播放的唯一方法是使用autoplay属性或通过Player API。

                controls: true,

                //自动播放属性,muted:静音播放

                autoplay: "muted",

                //建议浏览器是否应在<video>加载元素后立即开始下载视频数据。

                preload: "auto",

                //设置视频播放器的显示宽度(以像素为单位)

                width: "800px",

                //设置视频播放器的显示高度(以像素为单位)

                height: "400px"

            });

            }

  }


之后允许chrome使用flash插件即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容