chrome播放webRTC的H265视频方法

news/2025/2/28 20:13:14/文章来源:https://www.cnblogs.com/idealy/p/18644279

需求描述

最近有需求实现浏览器直接播放摄像头视频
鉴于Camera本身支持了rtsp流,本想web直接播放rtsp,但是还不行,搜了一下webRTC实现的效果和延迟会好一些。于是就使用了mediaMTX转了下rtsp的流,变为webRTC。

随便写了个h5页面对视频进行播放,使用下面代码的话替换一下src地址即可

点击查看代码
<!DOCTYPE html>
<html>
<head><title>WebRTC Video Stream Example</title><style>#video-frame {width: 640px;height: 480px;border: 1px solid black;}</style>
</head>
<body><div><iframe id="webrtc-frame" src="http://172.16.1.28:8889/stream" width="1280" height="720" scrolling="no" frameborder="0" allowfullscreen></iframe><button id="fullscreen-button">Toggle Fullscreen</button> </div><script>var iframeElement = document.getElementById("webrtc-frame");function enterFullscreen() {if (iframeElement.requestFullscreen) {iframeElement.requestFullscreen();} else if (iframeElement.mozRequestFullScreen) {iframeElement.mozRequestFullScreen();} else if (iframeElement.webkitRequestFullscreen) {iframeElement.webkitRequestFullscreen();} else if (iframeElement.msRequestFullscreen) {iframeElement.msRequestFullscreen();}}function exitFullscreen() {if (document.exitFullscreen) {document.exitFullscreen();} else if (document.mozCancelFullScreen) {document.mozCancelFullScreen();} else if (document.webkitExitFullscreen) {document.webkitExitFullscreen();} else if (document.msExitFullscreen) {document.msExitFullscreen();}}document.getElementById("fullscreen-button").addEventListener("click", function() {if (isFullScreen()) {exitFullscreen();} else {enterFullscreen();}});function isFullScreen() {return document.fullscreenElement ||document.mozFullScreenElement ||document.webkitFullscreenElement ||document.msFullscreenElement;}</script>
</body>
</html>

报错排查

上面代码没啥问题第一个摄像头正常播放,但加了个其他的摄像头却不行,一直报错

the stream doesn't contain any supported codec, which are currently AV1, VP9, VP8, H264, Opus, G722, G711, LPCM, retrying in some seconds

排查了下发现:
新的摄像头推的是h265的流,而mediaMTX版本193还不支持,看了下最新版29天前刚刚更新,已经支持h265了,于是升级了下版本就解决掉了。

紧接着下一个报错就来了:
[WebRTC] [session 03d8bba9] closed: codecs not supported by client

Emmmmmm,这一打眼看就是客户端的事情呗,难道我的chrome有问题?
于是看了别的博客写了127版本就支持了WebRTC的h265解码,只需要加参数就行了
image
但是试过依然不行。。。。。

于是依次尝试:
1、排查是否是硬件不支持
使用DXVAChecker检测是否是硬件本身不支持的原因,发现是有hevc解码功能
2、开启/关闭chrome的硬件加速模式
手动切换chrome://flags中的decode的enabled/disabled模式,发现硬件加速模式已经开启了
3、查看chrome://gpu
其中Video Acceleration Information确实发现没有h265相关信息

解决方案

gitlib中找到对应的chrome浏览器内核chromium
链接: https://github.com/StaZhu/enable-chromium-hevc-hardware-decoding/releases
直接找对应的版本下载,安装成功后是这样的
image

然后打开运行直接播放了

最后的最后,纠结的是浏览器啥时候能普遍支持啊。。。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/861956.html

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

相关文章

在Excel 2013中调出开发工具

打开Excel 2013,点击左上角的【文件】菜单,在【文件】菜单下,选择【选项】按钮 在弹出的【Excel选项】界面中,选择【快速访问工具栏】。在【自定义功能区】处,勾选【开发工具】选项。设置完成后,关闭【选项】界面。这时,在功能区靠右端就可以看到新增加的【开发工具】选…

库卡机械臂驱动器KPS600故障维修

首先,当出现库卡机器人驱动器过载时,首要任务是确认过载的原因。过载可能由多种因素引起,如电源电压不稳定、负载过大、电机故障或控制器设置不当等。通过检查电源电压、负载情况、电机运行状态以及控制器设置,我们可以初步判断KUKA工业机械手驱动器过载的根源。 一旦确定了…

流量分析 - 练习篇2

L1-2 流量分析流量包描述:某天晚上安服仔小辉辉上班摸鱼期间突然发现服务器登入页面被挤掉线了,于是第六感告诉他,服务器肯定是被黑客攻击了,于是他赶紧把服务器的网线拔了并调取了那段时间的流量,然后慌忙的找到你,求求你救救安服仔吧1.分析L1-2.pcapng数据包文件,通过…

Centos 7.9部署ldap 2.4.44

1、环境准备 [root@ldap81 openldap]# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) [root@ldap81 openldap]# uname -r 3.10.0-1160.119.1.el7.x86_64systemctl stop firewalld systemctl disable firewalld setenforce 0 hostnamectl set-hostname ldap81…

[241231]阿普米司特抗银屑病的同时辅助抗真菌感染

已知真菌定植/感染可能参与触发或加重斑块状银屑病. 抗IL-17和TNFi可能增加真菌感染风险. 一项探索性研究通过70例难治部位(头皮, 指甲, 间擦部/外生殖器)银屑病患者接受阿普米司特治疗前以及治疗1年过程中(允许局部真菌感染入组并继续抗真菌治疗), 监测真菌定植/局部真菌感染以…

为什么企业需要 IT 资产管理软件?

当前企业的运营越来越依赖于信息技术,从日常办公的电脑、打印机到支撑核心业务的服务器、网络设备等,IT 资产已经成为企业不可或缺的重要组成部分。而 IT 资产管理软件在这个过程中发挥着至关重要的作用。 企业面临的 IT 资产管理问题 1、资产数量庞大且种类繁多 随着企业的…

delphi 协程 doroutine bg + ui 嵌套 并行

前言 bg 与 ui 是互相嵌套的,没有终点;就是说 程序 若是高密计算,ui + bg 一切同时并行,快速响应; 示例代码 unit main;interfaceusesWinapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,Vcl.Controls, Vcl.Forms, Vcl.D…

React中的 ref 及原理浅析

前言 对于 ref 的理解,我们一部人还停留在用 ref 获取真实 dom 元素和获取组件层面上,但实际 ref 除了这两项功能之外,在使用上还有很多小技巧。本章我们就一起深入探讨研究一下 React ref 的用法和原理;本章中所有的源码节选来自 16.8 版本 基本概念和使用 此部分将分成两…

【ESP32】ESP32 SDK入门

ESP-IDF 概述 ESP-IDF 是乐鑫官方的物联网开发框架,适用于 ESP32、ESP32-S、ESP32-C 和 ESP32-H 系列 SoC。它基于 C/C++ 语言提供了一个自给自足的 SDK,方便用户在这些平台上开发通用应用程序。ESP-IDF 目前已服务支持数以亿计的物联网设备,并已开发构建了多种物联网产品,…

QT学习0,安装QT以及单间搭建环境

1.安装QT安装程序 可以使用镜像源进行下载 例如阿里,清华园... 阿里镜像源的qt安装程序网址https://mirrors.aliyun.com/qt/official_releases/online_installers/?spm=a2c6h.13651104.d-5201.2.724e4773zdBZYK 2.下面是点击qt安装程序进行安装 2.1 网速不好的可以更改下载网…