一、流服务器搭建
1、安装
sudo apt-get install software-properties-common python-software-properties
sudo add-apt-repository ppa:nginx/stable
sudo apt-get update
sudo apt-get install nginx
sudo apt-get install libnginx-mod-rtmp
2、配置文件修改
sudo gedit /etc/nginx/nginx.conf
添加:
rtmp {
servername {
listen 1935;
chunk_size 4096;
application live {
live on;
}
}
}
sudo service nginx restart
然后推出的流地址就可以是: rtmp://ip:1935/servername/name
二、opencv处理视频流并推出
1、读取流
和读取摄像头一样,`cap = cv2.VideoCapture(rtmp_)`
可用的rtmp地址:
- rtmp://58.200.131.2:1935/livetv/hunantv 湖南卫视
- rtmp://202.69.69.180:443/webcast/bshdlive-pc 香港财经,很流畅!!!
注意: 抓取rtmp流可能一次抓不到,所以得多抓几次,特别是自己搭的rtmp流更得多抓几次!!
下面是测试rtmp的代码,开始抓出错继续抓,抓到后中断了又继续抓。
rtmp = 'rtmp://192.168.1.18:1935/jiteng/3d'#'rtmp://58.200.131.2:1935/livetv/hunantv'#
# nginx 搭建的rtmp服务器,有时第一次抓不到,要多次抓取。
count_open_cap = 0
print ('开始抓取!')
cap = cv2.VideoCapture(rtmp)
while 1:
if cap.isOpened():
w,h,fps = int(cap.get(3)),int(cap.get(4)),cap