关于手机是否支持h264的问题的解决方案

目录

现象

原理

修改内容



现象

开始以为是手机不支持h264的编码 。机器人chatgpt一通乱扯。

后来检查了下手机,明显是有h264嘛。

终于搞定,不枉凌晨三点起来思考

原理

WebRTC 默认使用的视频编码器是VP8和VP9,WebRTC内置了这两种编码器的软件实现,因此使用WebRTC进行视频通信的时候视频编码器都是VP8或者VP9,当需要用到H264格式的时候发现WebRTC在sdp协商过程中就失败了,通过查看sdp信息,发现sdp中完全没有H264相关的信息,也就是说手机不支持H264,这是不可能的,H264作为视频的主流编码器,手机厂商不可能不支持,而且大部分手机厂商都将H264编码算法植入到硬件中,实现了H264的硬件编解码。

如何让WebRTC支持H264,需要看一下WebRTC的源码,看一下HardwareVideoEncoderFactory这个类,有一个isHardwareSupportedInCurrentSdk私有方法,这个方法就是判断当前的Android 版本是否支持硬件编码,里面调用了一个方法isHardwareSupportedInCurrentSdkH264,找到H264了,同样这个方法是用来判断当前Android版本是否这次H264硬件编码器

修改内容

参考文档

WebRTC 支持H264编解码_webrtc android h264-CSDN博客

相关推荐
我重来不说话2 小时前
Android 自动化工作流平台——群控手机
android·智能手机·自动化·工作流·群控
꯭爿꯭巎꯭21 小时前
3Dmark安卓下载(3Dmark手机版下载)
智能手机
程序猿追1 天前
在 HarmonyOS 手机上从零实现一个手绘涂鸦板——Canvas 绘制原理与触摸交互实践
智能手机·交互·harmonyos
liurendonews2 天前
刘韧微积分笔记之四:手机里的微积分
笔记·智能手机
不做超级小白2 天前
从零到可用:在手机上用 Termux + Git + Obsidian 打造稳定同步环境(踩坑全记录)
git·智能手机
天人合一peng2 天前
Unity 3D 电脑端和手机端都实现画线与清除功能
3d·unity·智能手机
limingade2 天前
如何在浏览器网页中远程对手机进行ADB控制
adb·智能手机·远程adb操控手机·远程adb·网页上控制手机的adb
Digitally3 天前
4 种智能方案:传音手机传文件到 Mac
智能手机
Digitally3 天前
如何备份和恢复中兴手机?4 种可靠方法
智能手机
皮皮虾12343 天前
云手机是怎么搭建的?六边云手机详细解答
智能手机