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

更新日期: 2019-06-06 阅读次数: 30423 字数: 459 分类: 微信小程序

微信小程序的视频播放组件,在某些低端 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 聊聊, 查看更多联系方式

谈笑风生

付飞虎

请问这个有详细的转码办法吗?

崔先森

学习了~

转码服务可以联系我。已经有解决所有小程序播放视频的转码方案。