当前位置: 首页 > news >正文

邢台移动网站设计南京网站建设

邢台移动网站设计,南京网站建设,网站建设 教学视频教程,小说网站系统怎么做简介 目前RTSP拉流是网络摄像头获取图片数据常用的方法,但通过CPU软解码的方式不仅延时高且十分占用资源,本文提供了一种从网络摄像头RTSP硬解码的拉流的方法,并且提供python代码以便从网络摄像头获取图片进行后续算法处理。 下载ffmpeg F…

简介

目前RTSP拉流是网络摄像头获取图片数据常用的方法,但通过CPU软解码的方式不仅延时高且十分占用资源,本文提供了一种从网络摄像头RTSP硬解码的拉流的方法,并且提供python代码以便从网络摄像头获取图片进行后续算法处理。

下载ffmpeg

Ffmpeg下载链接。建议下载稳定版本。

图1

这里会出现三个版本:

  • essentials:必要的组件,东西可能不全。
  • full:全面的,里面的库文件比较全。
  • shared:有动态链接库。

通过版本号命名的为稳定版,日期命名的为最新版。仅是使用的话essentials即可,Qt等调库需要选择shared。

图2

图3

复制如图所示的bin文件地址,设置环境变量。

右击此电脑打开属性

图4

图5

图6

图7

按照图4~7将复制的bin文件环境变量路径添加进去。

测试FFmpeg

运行命令

ffmpeg -version

显示以上信息则安装完成。

ffplay拉流显示

ffplay rtsp://XXXXXXX/stream

使用ffplay即可拉流成功,但是为软解码,拉流延时较高。

使用ffmpeg硬解码并保存视频

首先查看支持的硬件

ffmpeg -hwaccels

如果是nvidia的显卡并安装的对应驱动,也安装了cuda,则可以使用cuda跟h_264cuvid 解码器

查看可用的对应格式解码器

ffmpeg -codecs | findstr "h264"

红色框中为可用解码器。

利用硬件解码器的命令如下,以h264_cuvid为例:

ffmpeg -hwaccel cuda -vcodec h264_cuvid -i rtsp://admin:qwer1234@192.0.0.64/h264/ch1/main/av_stream output.mp4

-hwaccel 选择硬件模式

-vcodec  选择解码器

-i           RTSP地址

output.mp4 保存成.mp4视频     

note:硬解码器必须与硬件环境对应如:cuda  对应 h264_cuvid

测量延时

测量延时方法

  1. 将网络摄像头对准手机计时器
  2. 把手机靠近播放视频的电脑屏幕
  3. 同时拍摄手机与电脑屏幕显示的计时器,可计算毫秒级延时 。

具体如下面的图片所示。

利用ffplay拉流时延时

延时时间:7580 – 6130 = 1450ms

此时采用CPU软解,故延时较高。

利用ffmpeg硬解码拉流时延时

延时时间:3390 – 2680 = 710ms

可见硬解码降低了RTSP延时。

查看任务管理器的GPU界面栏

双击红色区域放大GPU显示

当Video Decode出现波动时代表调用了硬件解码器。

python调用ffmpeg转成opencv的mat格式并显示

首先安装ffmpeg-python、opencv-python、Numpy

pip install ffmpeg-pythonpip install opencv-pythonpip install numpy

此时还需要环境中安装了Cuda。

Cuda安装网络资源很多,在此不做赘述。

Code

import cv2
import ffmpeg
import numpy as np# RTSP 流地址
rtsp_url = "rtsp://admin:qwer1234@192.0.0.64/h264/ch1/main/av_stream"# 创建 FFmpeg 进程
probe = ffmpeg.probe(rtsp_url)
video_info = next(stream for stream in probe['streams'] if stream['codec_type'] == 'video')
width = video_info['width']
height = video_info['height']ffmpeg_cmd = (ffmpeg.input(rtsp_url, hwaccel='cuda', vcodec='h264_cuvid').output('pipe:', format='rawvideo',pix_fmt='bgr24').run_async(pipe_stdout=True)
)# 读取并显示视频帧
while True:in_bytes = ffmpeg_cmd.stdout.read(width * height * 3)if not in_bytes:breakframe = (np.frombuffer(in_bytes, np.uint8).reshape([height, width, 3]))cv2.imshow('RTSP Stream (GPU)', frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakffmpeg_cmd.wait()
cv2.destroyAllWindows()

上述Code即可通过python调用ffmpeg并且能够与opencv交互,能为后续开发图像算法做一个前端。

http://www.yayakq.cn/news/61277/

相关文章:

  • 网站开发工程师绩效考核百度公司可以做网站么
  • 网站如何实现微信登录界面兰州哪家网站做推广效果好
  • 企业网站推广优化公司国际新闻今天
  • 服务好的扬中网站优化专做美妆的视频网站
  • 软件下载平台中国网站优化
  • 盐城市建设银行网站centos7使用wordpress
  • 海口网站制作推广注册安全工程师职业资格制度规定
  • 北京免费模板建站广西桂林旅游必去十大景点
  • 网站建设的理由wordpress到day one
  • 做淘宝优惠券网站要多少钱大学生实训网站建设心得
  • 网站制作湖州云南网站建设选天软
  • 安徽省住房和城乡建设厅网站首页网站建设走什么科目
  • 大名专业做网站扩展名 网站
  • 西安网站建设品牌公司推荐济南网站建设哪家便宜
  • 北京网站关键词排名推广视频网站自己怎么做
  • 教育培训推广网站模板设计页面宽度
  • 石家庄最好的网站建设公司哪家好wordpress官网中文
  • 淘宝运营规则东莞网络营销优化
  • 石排镇做网站网站代备案公司
  • 厦门网站设计品牌企业企业网站营销的优缺点
  • 常州建行网站堆龙德庆网站建设
  • 做国际网站江苏建设工程信息网一体化平台官网
  • 企业网站seo怎么做花80亿美元建空间站
  • 简洁大气网站模板wordpress ping百度
  • 虚拟主机网站建设大众拆车件网上商城
  • 沈阳的网站建设论坛网站模
  • 门户网站建设的好处私密浏览器在线观看
  • 网站营销公司简介外包网站多少钱
  • 英文网站收录提交网站设计需要考虑的基本原则
  • 佛山市手机网站建设哪家好推广方式营销方案