关于手机是否支持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博客

相关推荐
禾从道9 小时前
「杂想」未来的AI电子设备和胡思乱想。
人工智能·智能手机·创业创新·小米·豆包手机
南山电子nscn2 天前
长晶高PSRR LDO产品在高速相机与手机摄像头中的应用分析
数码相机·智能手机·ldo
wanhengidc2 天前
互联网 高端科技 云手机
科技·智能手机
weixin_478796342 天前
航空接头.
智能手机·硬件工程·射频工程
TheNextByte12 天前
如何从红米手机恢复已删除的音乐文件?
智能手机
千里马学框架2 天前
重学SurfaceFlinger之Layer显示区域bounds计算剖析
android·智能手机·sf·安卓framework开发·layer·surfaceflinger·车载开发
专业开发者3 天前
一款可穿戴设备如何同时与多部智能手机或平板电脑建立连接
物联网·智能手机·电脑
wanhengidc3 天前
巨 椰 云手机 性能稳定
运维·服务器·arm开发·智能手机·云计算
造火箭3 天前
普通手机使用Open-AutoGLM 感受豆包AI 手机的体验
人工智能·智能手机
热爱生活的五柒3 天前
电脑连接手机的wifi速度很慢怎么办,手机速度正常
智能手机·电脑