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

利用ffmpeg cv2取h265码流视频(转换图片灰屏问题解决)

利用海康威视相机拍出来的视频是H265格式的,相比于常规的H264编码,压缩率更高,但因此如果直接用正常取流方法读取,会出现无法读取的情况

1. 如图h265码流取出图片为灰屏

 2 、解决灰屏问题

import subprocess
import cv2# 将h265流转换opencv可编译格式返回
def get_frame_from_rtsp(rtsp_url):# ( linux,windwos)  docker容器内部使用  两者兼容  当环境为linux时将传输协议改为tcp,否则转换失败 ( '-rtsp_transport', 'tcp')command = ['ffmpeg',#  rtsp_transport 参数,通过设定这个参数值为 tcp ,使得ffmpeg强制使用tcp协议传输RTSP流(RTSP流模式使用UDP方式传输)。'-rtsp_transport', 'tcp',# 设置探测大小,指定用于探测输入流的大小。在这里,150M 表示 150 兆字节的探测大小。'-analyzeduration', '150M','-probesize', '150M',# 指定输入文件(RTSP 流)的 URL。'-i', rtsp_url,'-vf', 'fps=1,scale=1920:1080',  # 设置帧率和图像大小# 指定输出格式为图像流。在这里,将输出格式设置为图像流,以便后续通过管道读取。'-f', 'image2pipe',# 设置像素格式为 BGR24。在这里,将像素格式设置为 24 位 BGR 格式,即每个像素占据 3 字节。'-pix_fmt', 'bgr24',# 设置视频编解码器为原始视频。 如果设置为264需要额外增添参数   '-vcodec', 'libx264''-vcodec', 'rawvideo', '-']process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)# 从 ffmpeg 进程中读取一帧数据raw_frame = process.stdout.read(1920 * 1080 * 3)if not raw_frame:return None# 将帧数据转换为 numpy 数组frame = np.frombuffer(raw_frame, dtype=np.uint8).reshape((1080, 1920, 3))return frameframe = get_frame_from_rtsp(path)if frame is not None:# FILE_SAVE_PATH保存路径地址  img_path = os.path.join(FILE_SAVE_PATH,'2023')cv2.imwrite(img_path, frame)  # 存储为图像
elseprint('无法获取到图像')

3、转换完成h265码流图片 

http://www.lryc.cn/news/264961.html

相关文章:

  • Android Uri scheme协议file转content
  • 【Jenkins】远程API接口:Java 包装接口使用示例
  • 未能加载工具箱项问题的解决
  • 算法模板之栈图文详解
  • Ajax Search Pro Live WordPress网站内容实时搜索插件
  • mysql SQL执行超时问题
  • 51单片机基于时间片轮转的简单rtos
  • python pycurl 安装使用
  • C语言数据结构-排序
  • Spring AOP入门指南:轻松掌握面向切面编程的基础知识
  • 【顶级快刊】IEEE(Trans),审稿快仅2个月录用,入选CCF-B,现在投最快!
  • 深入浅出堆排序: 高效算法背后的原理与性能
  • Golang实践录:gin绑定解析json的两种方法
  • Hypervisor Display架构
  • 基于ssm二手车交易平台的设计论文
  • IDEA 设置 SpringBoot logback 彩色日志(附配置文件)
  • 数学建模学习笔记-皮尔逊相关系数
  • 随笔:集成学习:关于随机森林,梯度提升机的东拉西扯
  • 多款实用个人年终总结模板,助力你的年度汇报!
  • 【C语言】动态内存管理基础知识——动态通讯录,如何实现通讯录容量的动态化
  • Centos9(Stream)配置Let‘s Encrypt (免费https证书)
  • Spring之事务(2)
  • 嵌入式科普(5)ARM GNU Toolchain相关概念和逻辑
  • Elasticsearch:什么是文本分类?
  • 指针(3)
  • 外汇天眼:我碰到外汇投资骗局了吗?学会这5招,轻松识别外汇诈骗黑平台!
  • 一文解析子网掩码和默认网关,成为网络设置达人
  • 二分查找法详解(6种变形)
  • uniapp uview 页面多个select组件回显处理,默认选中
  • linux中playbook的控制语句