微信小程序中视频无法播放,显示黑屏,但是有声音

文章目录

    微信小程序的视频播放组件,在某些低端 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 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式