video标签播放只有声音无画面

3,519 阅读1分钟
写在前面:本文是项目开发中遇到过的问题记录,如有不严谨、错误之处,欢迎补充、指正~

问题: 视频播放页面,移动端微信公众号中使用,pc端可兼容显示,遇到的问题是:在移动端安卓部分手机中,视频播放时,只有声音,无画面;在pc谷歌浏览器中,只有声音,无画面。

html页面中使用video标签

业务需求,要实现的是移动端页面,对于pc端的兼容也是主流浏览器,所以在视频播放方式上选择的是<video>标签。
Internet Explorer 9+, Firefox, Opera, Chrome 以及 Safari 支持 <video> 标签。

<video src="movie.mp4" controls="controls">
您的浏览器不支持 video 标签。
</video>

video标签支持的格式

  • MP4 = MPEG 4文件使用 H264 视频编解码器和AAC音频编解码器。
  • WebM = WebM 文件使用 VP8 视频编解码器和 Vorbis 音频编解码器。
  • Ogg = Ogg 文件使用 Theora 视频编解码器和 Vorbis音频编解码器。

问题可能性分析

  • 播放同一个视频文件a.mp4,在iPhone中能正常播放,安卓、谷歌浏览器中只有声音,无画面,由此分析,此视频资源文件可用,未被损坏。
  • 更换其他视频文件b.mp4测试,在iPhone、安卓、谷歌浏览器中都可正常播放,由此分析,html代码中video标签的使用方法是正确的。
  • 初步判断,可能是a.mp4文件的编码方式有问题。

使用格式工厂工具进行编码查看

a.mp4编码:

image.png

b.mp4编码:

image.png

然后通过格式工厂对a.mp4进行格式转换:

image.png

a.mp4格式转换后编码:

image.png

格式转换后,a.mp4可进行正常播放。