React-Native 修改视频分辨率:react-native-video selectedVideoTrack不生效
问题根因
selectedVideoTrack设置后无效果,本质是对该属性的能力边界存在误解:
- 该属性是视频轨道选择器,不具备实时转码、压缩原视频、降低分辨率减小体积的能力
- 它仅能匹配选择视频源本身预先封装好的多分辨率独立轨道,这类源通常为HLS自适应码率流,源文件本身就内置了多档分辨率的视频轨,此时设置对应值才能触发切换
- 你当前代码加载的是单轨道、单分辨率的普通MP4文件,源内本身不存在240p分辨率的视频轨,组件执行选择操作时找不到匹配目标,设置自然不会生效
对应需求的正确实现方案
你的核心诉求是降低大体积视频的播放带宽消耗,适配小尺寸容器播放,不要将效果寄托于播放端的实时转码能力:
- 播放端实时转码对移动端硬件消耗极高,会直接造成播放卡顿、设备发热,不属于合理的技术实现路径
- 最直接的方案是提前在内容生产端,将大体积原视频转码为低分辨率、低码率的适配版本,直接替换原高体积的视频源地址,即可直接实现减小体积、降低带宽消耗的目标
- 如果需要做多分辨率自适应切换,可将源文件提前打包为内置多档分辨率的标准HLS自适应码率流,此时再搭配
selectedVideoTrack锁定指定分辨率,功能即可正常生效
内容的提问来源于stack exchange,提问作者Yoifre Oses
相关产品推荐
相关产品推荐

