微信小程序的视频播放组件,在某些低端 Android 手机上无法正常播放视频,例如华为的某些机型。 表现为,播放时只显示黑屏,但是有声音。
而并不是所有的视频都如此,只有部分视频出现这个问题。于是对比了两个视频文件,一个为在问题手机上能正常播放的,另一个则不能。
可以播放的 MP4 视频相关参数
该视频是由腾讯云直播服务自动生成的录播文件。
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Baseline@L3.2
Format settings : 1 Ref Frames
Format settings, CABAC : No
Format settings, ReFrames : 1 frame
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
显示为黑屏,但是有声音的 MP4 视频相关参数
此视频是客户自己录制的视频。
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L5
Format settings : CABAC / 4 Ref Frames
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
使用 VIMDIFF 进行对比
Format profile 为 Baseline、Main、High 的区别
这三种级别的视频质量由低到高:
- Baseline 主要用于视频通话、手机视频等;
- Main 用于主流消费类电子产品规格如低解码(相对而言)的mp4、便携的视频播放器、PSP 和 Ipod 等;
- High 用于广播及视频碟片存储(蓝光影片),高清电视的应用。
解决方式
将 Format profile 调低进行转码,转到 High@L4 以下时,绝大多数 Android 机就已经可以正常播放了。视频大小减小了近一半。
除了用客户端软件进行转码,还可以使用七牛云提供的视频云转码服务,但是需要写简单的几何程序,转码完成后会提供回调通知。
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式
谈笑风生
付飞虎 (来自: 俄罗斯 列宁格勒 圣彼得堡) 5年前
崔先森 (来自: 中国 山东 青岛 联通) 5年前
苏 (来自: 中国 四川 成都 电信) 2年前