利用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.mzph.cn/news/238215.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring事务管理—讲解、案例、应用

简介:Spring事务管理和数据库的事务管理的功能作用上是一样的,在学习数据库时,为了数据完整性,采用了事务管理,即开启事务、提交事务和管理事务。在SpringBoot框架中添加一个注解 Transactional 就可以将当前方法、类和…

c语言错误总结

函数 A:void类型函数可以 B:不需要,如果return 不返回任何值,函数会在return语句执行后终止执行,后面的语句不会执行 C:对的 D:不可能,return只能返回一个数据 A:函数不一定有返回值 B:可以…

柔性屏的性能、使用、维护

柔性屏是一种新型的显示技术,相比传统刚性屏幕,具有许多独特的优势。以下是关于柔性屏的性能、使用和维护的详细介绍: 一、性能 弯曲性:柔性屏幕可以轻松弯曲、卷曲或弯折,适应不同的表面形状,如弧形墙面、…

海康威视运行管理中心 Fastjson RCE

漏洞描述 海康威视运行管理中心系统存在低版本Fastjson远程命令执行漏洞,攻击者可在未鉴权情况下获取服务器权限,且由于存在相关依赖,即使服务器不出网无法远程加载恶意类也可通过本地利用链直接命令执行,从而获取服务器权限。 漏…

华为设备VRP基础

交换机可以隔离冲突域,路由器可以隔离广播域,这两种设备在企业网络中应用越来越广泛。随着越来越多的终端接入到网络中,网络设备的负担也越来越重,这时网络设备可以通过华为专有的VRP系统来提升运行效率。通用路由平台VRP&#xf…

判断上三角矩阵 C语言xdoj491

问题描述 上三角矩阵指主对角线以下的元素都为 0 的矩阵;主对角线为从矩阵的左上角至右下角的连线。 本题要求编写程序,判断一个给定的方阵是否上三角矩阵。 输入格式 第一行给出一个正整数 T,为待测矩阵的个数。接下来给出 T 个矩阵的信息&a…

ES排错命令

GET _cat/indices?v&healthred GET _cat/indices?v&healthyellow GET _cat/indices?v&healthgreen确定哪些索引有问题,多少索引有问题。_cat API 可以通过返回结果告诉我们这一点 查看有问题的分片以及原因。 这与索引列表有关,但是索引…

什么是密钥扩展?如何确保密码安全?

为了访问自己的数字账户,我们通常需要用到密码或口令。不过,正如现实生活中开锁的钥匙可能并不总是牢靠一样,并非所有的密码都是安全的。为了加强在线防御,安全专家开发了一系列技术和方法,来提高密码的安全性。这些方…

用23种设计模式打造一个cocos creator的游戏框架----(二十三)中介者模式

1、模式标准 模式名称:中介者模式 模式分类:行为型 模式意图:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 结构图&#xff…

Spring AOP入门指南:轻松掌握面向切面编程的基础知识

面向切面编程 1,AOP简介1.1 什么是AOP?1.2 AOP作用1.3 AOP核心概念 2,AOP入门案例2.1 需求分析2.2 思路分析2.3 环境准备2.4 AOP实现步骤步骤1:添加依赖步骤2:定义接口与实现类步骤3:定义通知类和通知步骤4:定义切入点步骤5:制作切面步骤6:将通知类配给…

【MYSQL】-数据类型

💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法🎄 如 果 你 …

微波射频元件厂商恒利泰授权世强硬创代理,实现滤波器国产替代

据机构数据显示,2018-2022年全球射频元件市场规模从50亿美元增长至150亿美元,平均复合增长率为31.6%,预计到2025年市场规模有望超过302亿美元。其中,滤波器是射频前端各领域产值占比最高的产品。 为扩大产品覆盖率,提…

【密码学】使用mkcert安装CA、自签名ssl证书,配置nginx的https 证书笔记

文章目录 证书(CA证书,服务端证书,客户端证书)1 安装CA1.1 下载mkcert1.2 mkcert安装和配置根证书1.3设备安装根证书 2 自签名ssl证书2.1 CA 证书过程:2.2 自签名流程2.3签发证书2.4给已有的证书请求(.csr)…

PMP证书的PDU如何获得?

首先,让我们来了解一下PDU的含义。PDU代表专业发展单元(Professional Development Unit),是指在获得认证后,您可以通过学习、授课或提供志愿服务来积累专业项目管理领域的学习时间。PDU以小时为单位计算,每…

idea 远程调试linux上的代码

背景介绍 开发过程中,我们经常会遇到部署的代码运行出问题、看日志由不是很直观、我们希望可以像调试本地代码一样去调试远程代码; IDEA提供了Remote工具,基于JVM的跨平台能力,我们可以远程调试部署的代码。 前提 保证远程和本地跑的代码是一致的 操…

音视频类App广告变现如何破局,最大化广告变现收益,让应用增收?

音视频App已然成为了我们日常获取、发布和交换信息的重要方式,在音视频行业不断的拓展中,用户的渗透率提升。 据数据显示,我国网络视听用户的规模已达9亿人次,网民使用率也突破了90%。庞大的市场规模和用户需求吸引了大批开发者和…

GBASE南大通用数据库提供的高可用负载均衡功能

GBASE南大通用GBase 8a ODBC 提供的高可用负载均衡功能是指,GBase 8a ODBC 会将客户 端请求的数据库集群连接平均分摊到集群所有可用的节点上。 GBASE南大通用数据库负载均衡的使用方法 GBASE南大通用GBase 8a ODBC 提供两种方式来使用高可用负载均衡。一种是配置数…

4. 行为模式 - 中介者模式

亦称: 调解人、控制器、Intermediary、Controller、Mediator 意图 中介者模式是一种行为设计模式, 能让你减少对象之间混乱无序的依赖关系。 该模式会限制对象之间的直接交互, 迫使它们通过一个中介者对象进行合作。 问题 假如你有一个创建…

Java:打印当前线程的堆栈信息到错误流(error stream)

使用java.lang.Thread的静态方法dumpStack(),可以打印当前线程的堆栈信息到错误流(error stream)。 代码示例: package com.thb;public class Test5 {public static void main(String[] args) {Thread.dumpStack();}}运行输出&a…

Alpha突触核蛋白A53T 突变型PFF

Alpha 突触核蛋白A53T 突变型PFF Alpha 突触核蛋白 A53T PFFs (目录号 SPR-326) 在培养的原代大鼠神经元中诱导丝氨酸 129 磷酸化 培养基中 1 g/ml 超声处理的 StressMarq’s Alpha 突触核蛋白 A53T 突变 PFF(目录号 SPR-326) 可诱导原代大鼠神经元中 …