采集直播源(摄像头)+ FFMPEG推流
1直播源
http://ivi.bupt.edu.cn/hls/cctv1hd.m3u8
http://ivi.bupt.edu.cn/hls/cctv3hd.m3u8
http://ivi.bupt.edu.cn/hls/cctv5hd.m3u8
http://ivi.bupt.edu.cn/hls/cctv5phd.m3u8
http://ivi.bupt.edu.cn/hls/cctv6hd.m3u8
ONVIF网络摄像头RTSP协议扩展资料:ONVIF协议是摄像机中较常用的一种协议,它是是一种兼容协议。由安讯士联合博世及索尼三方共同成立的一个国际开放型网络视频产品标准网络接口开发论坛,取名为ONVIF(Open Network Video Interface Forum,开放型网络视频接口论坛),并以公开、开放的原则共同制定开放性行业标准。ONVIF标准为网络视频设备之间的信息交换定义通用协议,包括装置搜寻、实时视频、音频、元数据和控制信息等。
1)RTSP(Real Time Streaming Protocol)是由Real Network和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。RTSP对流媒体提供了诸如暂停,快进等控制,而它本身并不传输数据,RTSP的作用相当于流媒体服务器的远程控制。服务器端可以自行选择使用TCP或UDP来传送串流内容,它的语法和运作跟HTTP 1.1类似,但并不特别强调时间同步,所以比较能容忍网络延迟。
2)RTSP协议属于TCP/IP协议5层模型中的应用层。
3)大华
(1)举例rtsp://admin:[email protected]:554/cam/realmonitor?channel=2&subtype=1
(2)格式rtsp://username:[email protected]:port/cam/realmonitor?channel=1&subtype=0
(3)说明username: 用户名。例如admin。password: 密码。例如admin。ip: 为设备IP。例如 192.168.1.66。port: 端口号默认为554,若为默认可不填写。channel: 通道号,起始为1。例如通道2,则为channel=2。subtype: 码流类型,主码流为0(即subtype=0),辅码流为1(即subtype=1)。
import cv2
vid = cv2.VideoCapture('rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 RTSP/1.0')
#vid = cv2.VideoCapture(0)
if not vid.isOpened():
raise IOError("Couldn't open webcam or video")
video_FourCC = int(vid.get(cv2.CAP_PROP_FOURCC))
video_fps = vid.get(cv2.CAP_PROP_FPS)
video_size = (int(vid.get(cv2.CAP_PROP_FRAME_WIDTH)),
int(vid.get(cv2.CAP_PROP_FRAME_HEIGHT)))
while True:
return_value, frame = vid.read()
cv2.namedWindow("video", cv2.WINDOW_NORMAL)
cv2.imshow("video", frame)
if cv2.waitKey(1) & 0xFF == ord('q'):break
2摄像头RSTP推RTMP流
ffmpeg -i “rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 RTSP/1.0” -y -c:v libx264 -s 640x480 -c:a copy -f hls -hls_time 10 “http://****/”
[rtsp @ 0x30ca600] method PAUSE failed: 455 Method Not Valid in This
Statertsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 RTSP/1.0: Operation not permitted
由于私网无权限,所以rtsp需要使用 tcp传输
ffmpeg -re -rtsp_transport tcp -i ‘rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 RTSP/1.0’ -y -c:v libx264 -s 640x480 -c:a copy -f hls -hls_time 10 ’ http://***/’
[hls @ 0x3118b80] Opening
http://*****’ for writing
【格式】ffmpeg -re -rtsp_transport tcp -i “rtsp://用户名:密码@摄像机IP地址:RTSP端口/h264/ch1/main/av_stream” (海康RTSP)
-f flv(注意RTMP是FLV,前面拿HLS举例子) -vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -f flv -s 1280x720 -q 10
“rtmp://本机地址:1935(nginx.conf的rtmp模块下listen)/mylive(rtmp模块下application设置)/test2(随便取名字)”
3摄像头RSTP hls协议推本地http静态文件
from ffmpy import FFmpeg, FFRuntimeError
ff=FFmpeg(
inputs={'rtsp://admin:[email protected]:554/cam/realmonitor?
channel=1&subtype=0 RTSP/1.0':'-re -rtsp_transport tcp -stream_loop -1'},
outputs={None: '-y -c:v libx264 -s 640x480 -an -f hls
-hls_list_size 5 -hls_wrap 20 -hls_time 5 /static/ts/pla.m3u8'})
#print(ff.cmd)
ff.run()
上一篇: MySQL-使用中文分词的全文索引
下一篇: ffmpeg 采集摄像头和麦克风,并推流
推荐阅读
-
Android 音视频深入 十六 FFmpeg 推流手机摄像头,实现直播 (附源码下载)
-
在Android上使用FFmpeg将摄像头采集的YUV裸流编码为h264。
-
RTSP协议网络摄像头互联网直播开源流媒体平台如何用FFMPEG将RTSP视频流推给EasyDarwin做公网拉流分发?
-
FFmpeg 推流 + EasyDarwin 转发 + vlc 播放 实现 RTSP 直播
-
Window平台 EasyDarwin 和 ffmpeg 将视频文件转成RTSP直播推流
-
node-media-server+ffmpeg搭建直播推流服务
-
OpenCv + ffmpeg + rtmp 实现摄像头采集数据直播功能
-
FFMPEG对摄像头进行RTP推流,以及RTP转发服务
-
ffmpeg实现屏幕录制、摄像头录制、录音和RTMP推流
-
关于FFMPEG采集摄像头推流方法说明