赞
踩
sudo apt-get install libssl-dev libpcre3 libpcre3-dev openssl zlib1g-dev
下载nginx,这里选择了稳定版本
nginx: downloadhttp://nginx.org/en/download.html
解压nginx
tar -zxvf nginx-1.14.2.tar.gz
下载rtmp插件(这个nginx没有,所以要单独下载)
https://github.com/arut/nginx-rtmp-modulehttps://github.com/arut/nginx-rtmp-module
解压nginx rtmp模块
unzip nginx-rtmp-module-master.zip
编译nginx
- cd nginx-1.20.2/
- ./configure --add-module=../nginx-rtmp-module-master
- #../nginx-rtmp-module-master这里是nginx-rtmp的全路径或者相对路径,能在编译的时候找到就行
编译情况如下
接着make,正常情况如下
再接着sudo make install
这里注意不加sudo 可能报错:mkdir: cannot create directory ‘/usr/local/nginx’: Permission denied
正常情况如下
自此nginx已经安装完了,验证是否安装
启动
sudo /usr/local/nginx/sbin/nginx
新打开一个窗口命令行输入top,应该能找到nginx
查看自己的ip并访问网页确认,注意IP是那个ens33
命令行编辑nginx配置文件
sudo vim /usr/local/nginx/conf/nginx.conf
新增内容1,1992为监听端口,live on为实时
注意这里我设置了1992是监听端口,那么等下Windows推流时一定要用到的,默认是1935,如果你没有改就不用管
- rtmp
- {
- server
- {
- listen 1992;
- chunk_size 4096;
- application live
- {
- live on;
- }
- }
- }
新增内容2
其中8080为接流端口,等下要用到
/home/saners/software/nginx-rtmp-module-master为上面下载的nginx-rtmp-module-master全路径
- server
- {
- listen 8080;
- location /stat
- {
- rtmp_stat all;
- rtmp_stat_stylesheet stat.xsl;
- }
- location /stat.xsl
- {
- root /home/saners/software/nginx-rtmp-module-master;
- }
- }
注意这个要放到http里面
接着关闭先前打开的nginx
sudo killall nginx
重启更改了配置后的nginx
sudo /usr/local/nginx/sbin/nginx
官网下载ffmpeg
Download FFmpeghttp://ffmpeg.org/download.html
点击以后跳转到GitHub,我选择了下面那个版本
下载好以后解压放到自己想放的地方,并配置环境变量就可以用了
环境变量的配置右击此电脑后按照我标注的数字找到地方把ffmpeg的bin路径放过去就行了
配置好后输入ffmpeg -version查看是否安装正确,或者我插上罗技摄像头测试,在cmd中输入
ffmpeg -list_devices true -f dshow -i dummy
这句命令是给出现在设备的列表
输出设备信息说明没问题了。
在Windows本机打开一个命令行输入以下语句,其中test.mp4是随便找的一个视频,flv是流格式,这个ip 192.168.41.128就是虚拟机里Ubuntu的
ffmpeg -i test.mp4 -f flv rtmp://192.168.41.128:1992/live/test
成功推送显示如下
现在去Ubuntu看看推好了没有,输入地址
http://192.168.41.128:8080/stat 这个端口号是上面自己定义哈,别忘了那个stat不要改,固定的
上面没看到对应的test,说明推送视频失败,那么我们再试试usb设备的实时视频,看看是不是配置文件有问题,根据之前查的USB设备名字,我用下面的语句向Ubuntu推送视频流
ffmpeg -f dshow -i video="HIK 1080P Camera" -vcodec libx264 -preset:v ultrafast -tune:v zerolatency -f flv rtmp://192.168.41.128:1992/live/test
Windows命令行情况如下
Ubuntu访问上述网址出现
说明配置没问题,后面再探究原因吧,下面走完最后一步,把视频实时接出来看看
直接用python接,代码如下
- import cv2
-
- cap = cv2.VideoCapture("rtmp://192.168.41.128:1992/live/test")
- while cap.isOpened():
- ret,frame = cap.read()
- if ret:
- cv2.imshow('frame',frame)
- key=cv2.waitKey(delay=2)
- if key == ord('q'):
- break
-
- cap.release()
- cv2.destroyAllWindows()
跑起来以后情况如下,刷新网页,那些out相关的会变,说明没有问题,而且还是实时
雁过留声,人过留名,有用点赞,不要白嫖!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。