手头上有几十个 rtsp 链接,需要接受所有的 rtsp 视频流,并进行相应的处理。现有是使用 ffmpeg-python 库来接受 rtsp 流。
由于没有什么好的方法,所以只能用 python 的 Process 对象来管理。
接受 RTSP 的代码
class RTSPStream(Process):
def __init__(self, queue, stream_id, stream_url):
Process.__init__(self)
self.q = q
self.stream_id = stream_id
self.stream_url = stream_url
def get_hnw(self, url):
probe = ffmpeg.probe(url, rtsp_transport='tcp')
video_stream = next((stream for stream in probe['streams'] if stream['codec_type'] == 'video'), None)
width = video_stream['width']
height = video_stream['height']
return height, width
def run(self):
h, w = get_hnw(self.stream_url)
assert h != 0
assert w != 0
out = (
描述手头上有几十个 rtsp 链接,需要接受所有的 rtsp 视频流,并进行相应的处理。现有是使用 ffmpeg-python 库来接受 rtsp 流。由于没有什么好的方法,所以只能用 python 的 Process 对象来管理。代码接受 RTSP 的代码class RTSPStream(Process):def __init__(self, queue, stream_id, stream_u...
FFmpeg
[1] 主要网站:
官网:https://www.
ffmpeg
.org/ Github地址:https://github.com/
FFmpeg
/
FFmpeg
1.1
ffmpeg
组成[2]
构成
FFmpeg
主要有三个部分:
第一部分是四个作用不同的工具软件,分别是:
ffmpeg
.exe:音视频转码、转换器
ffplay.exe:简单的音视频播放器
ffserver.exe:
流
媒体服务器
ffprobe.exe:简单的多媒体码
流
分析器
第二部分是可以供开发者
[
python
]
ffmpeg
-
python
读取
rtsp
(tcp方式)
在多路无线摄像头同时接入时,网络不稳定,经常出现雪花屏的问题。参考网上资料,怀疑是网络摄像头默认使用
RTSP
协议,
RTSP
下层默认使用UDP传输,而UDP传输是不可靠的,会丢包,所以导致雪花屏。
RTSP
使用TCP或者UDP传输,使用TCP还是UDP取决于客户端的SETUP请求。所以尝试将由UDP改为TCP取
流
。
opencv-
python
的videocapture获取
rtsp
只支持UDP方式,改为用
FFmpeg
-
python
2)下载nginx-rtmp-module–>添加链接描述
3)下载完成后解压到刚刚解压的nginx-1.7.11.3-Gryphon目录中
4)配置nginx-1.7.11.3-Gryphon文件下conf\nginx-win-rtmp.conf 内容如下:
5)、启动nginx–>nginx.exe -c conf\nginx-win-rtmp.conf
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(
问题产生的原因
最近在捣鼓图像方面的项目,项目过程中,发现使用cv2.VideoCapture这个方法获取
rtsp
流
会有一定的延迟,于是就有了这篇文章。方法步骤如下
1. 安装ffmepg-
python
包
打开终端进入你的anacondad虚拟环境或者
python
环境,用pip包进行安装
pip install
ffmpeg
-
python
2. 安装
ffmpeg
目前我还没找到解耦
ffmpeg
软件的方法,下面程序跑通必选安装此软件并将其添加到环境变量当中。
去官网(https://
ffmpeg
.org/)
Unix shell内核安装:
参考如下两个网址,shell内核用于执行.sh脚本,实现多路视频的同时推
流
,而不是多源视频合并。
https://www.bbsmax.com/A/Gkz1aDqjzR/
https://www.ibm.com/developerworks/cn/aix/library/au-spunix_cygwin/index.html
shell 脚本(
ffmpeg
.sh):...
敬告:该系列的课程在抓紧录制更新中,敬请大家关注。敬告:本课程项目仅供学习参考,请不要直接商用,概不负责任何法律责任。 该系列的课程涉及:
FFmpeg
,WebRTC,SRS,Nginx,Darwin,Live555,等。包括:音视频、
流
媒体、直播、Android、视频监控28181、等。 我将带领大家一起来学习使用
FFmpeg
开发视频监控项目,并动手操练。具体内容包括: 一、视频监控的架构和
流
程二、
FFmpeg
4.3+SDL2+Qt5开发环境的搭建三、
FFmpeg
的SDK编程回顾总结并操练四、SDL2.0的编程回顾总结并操练五、颜色空间转换RGB和YUV的原理与实战六、Qt5+
FFmpeg
本地摄像头采集预览实战七、代码封装:摄像头h264/5编码并存储八、Qt5+
FFmpeg
单路网络摄像头采集预览九、Qt5+
FFmpeg
单路网络摄像头采集预览录制会看十、onvif与GB/T-28181的简介 音视频与
流
媒体是一门很复杂的技术,涉及的概念、原理、理论非常多,很多初学者不学 基础理论,而是直接做项目,往往会看到c/c++的代码时一头雾水,不知道代码到底是什么意思,这是为什么呢? 因为没有学习音视频和
流
媒体的基础理论,就比如学习英语,不学习基本单词,而是天天听英语新闻,总也听不懂。 所以呢,一定要认真学习基础理论,然后再学习播放器、转码器、非编、
流
媒体直播、视频监控、等等。 梅老师从事音视频与
流
媒体行业18年;曾在永新视博、中科大洋、百度、美国Harris广播事业部等公司就职,经验丰富;曾亲手主导广电直播全套项目,精通h.264/h.265/aac,曾亲自参与百度app上的网页播放器等实战产品。 目前全身心自主创业,主要聚焦音视频+
流
媒体行业,精通音视频加密、
流
媒体在线转码快编等热门产品。