使用RecordRTC录制的视频无法在iOS Safari/Chrome播放,求兼容格式
RecordRTC兼容iOS设备的录屏格式方案
核心兼容方案
iOS的Safari和Chrome(基于WebKit内核)仅原生支持H.264编码的MP4格式,对应的MIME类型为video/mp4;codecs=avc1,这是目前唯一能稳定兼容iOS的RecordRTC录屏格式。
具体配置示例
在初始化RecordRTC时,直接指定对应的MIME类型及相关参数:
const mediaStream = await navigator.mediaDevices.getDisplayMedia({ video: true }); const recorder = RecordRTC(mediaStream, { type: 'video', mimeType: 'video/mp4;codecs=avc1', videoBitsPerSecond: 2500000, // 控制视频码率,平衡画质和体积 frameRate: 30 // 适配iOS常见帧率支持 });
为什么之前的格式不兼容
video/webm;codecs=vp9:iOS全版本几乎不原生支持VP9编码的WebM视频,无法直接播放。video/x-matroska;codecs=avc1:Matroska(MKV)容器格式未被iOS WebKit内核原生支持,即便编码是兼容的H.264,容器不匹配也无法播放。
额外兼容注意事项
- 录制完成后,务必将视频保存为
.mp4后缀,避免iOS因扩展名识别问题拒播。 - 针对旧版iOS(iOS 12及以下),建议将H.264编码设置为Baseline或Main profile、Level 3.1及以下,进一步提升兼容性。
内容的提问来源于stack exchange,提问作者coure2011
相关产品推荐
相关产品推荐

