前言:需求中有这么一个问题,部分mov格式的视频在移动端可以播放,但在pc客户端无法显示,对比能播放和不能播放的mov格式视频,发现是hevc编码的mov视频不能播放,对此在做需求过程中,寻求并尝试了一些方法来解决这个问题,在本文做个记录。

  1. MOV合适视频是苹果手机拍摄的视频格式
  2. 苹果拍照的视频和苹果利用api调用的拍照的视频,这两者拍的视频编码是有差异的

一、两者视频元信息比较

所用例子:

利用格式工厂查看两个视频的元信息:
image.png
利用上面的信息以及实际的可播放效果得:

判断是否为h.265,如果是就将其用新的播放器(插件)播放
https://github.com/buzz/mediainfo.js
项目中添加该api的判断代码

只要是hevc的格式,不管是视频还是声音,都无法播放

【弃】libde265.JS解决办法

PS:ffmpeg安装方法:
https://ffmpeg.org/download.html
image.png
image.png
添加到环境变量
image.png
检测是否安装成功
image.png
安装成功

【ffmpeg转mov为mp4-命令】

  1. ffmpeg -i test.mov -vcodec libx264 -preset fast -crf 20 -y -acodec libmp3lame -ab 128k test.mp4

【前端实现】
https://download.csdn.net/download/weixin_42120997/19759493【收费】
https://blog.csdn.net/dj513dj/article/details/60961970
https://juejin.cn/post/6844903961942556685
https://github.com/damianociarla/node-ffmpeg
https://blog.csdn.net/dj513dj/article/details/60961970
还是需要电脑有ffmpeg环境

【后端实现】
NodeJS实现视频转码
image.png
需要服务端有ffmpeg环境