我将由三个图像组成的 gif 转换为 mp4 和 m4v(适用于 Safari)以便在 html5 视频播放器中播放,但是 Safari 不会播放 .mp4
也不会播放 .m4v
包含以下内容
<video preload="yes" controls="true" >
<source src="./menu.mp4" type="video/mp4" />
<source src="./menu.m4v" type="video/m4v" />
</video>
但是,如果我使用正确的视频(即不是转换后的 gif),Safari (9.2) 将使用上述语法播放它,所以我知道 html5 视频播放器正在我的浏览器中运行,而不是我转换后的 gif。
问题,对于转换为“静态电影”照片的 gif,我是否必须设置不同的类型,即 type="gif/m4v"
或者是否需要激活其他设置?
我使用 ffmpeg 将 gif 转换为 mp4,但不记得我运行的确切命令。
更新 根据this TechCrunch 文章,Twitter 使用 mp4 而不是 gif,因此我假设它应该适用于所有浏览器。
可以在此处查看 mp4 文件
最佳答案
问题在于视频编码,特别是与视频编解码器一起使用的 H.264 配置文件设置。
您当前的视频编码为:High 4:4:4 Predictive @ Level 2.2
,这对于浏览器视频来说似乎不寻常(并且可能无法在某些移动设备上解码)。
解决方案:
在编码器中,选择 Baseline
或 Main
的 H.264 配置文件。
这个working video使用Main @ L3.1
使用FFmpeg您可以在Main
配置文件下制作一个新视频(适合您的尺寸宽度480 X高度640)。
ffmpeg -i input.mp4 -c:v libx264 -pix_fmt yuv420p -profile:v main -level:v 3.1 -an output.mp4
有用的注释:
您可以 check here一些 Apple 推荐的配置文件(请参阅Point.11)。预计视频使用
4:2:0
采样,而不是无法正常工作的视频中存在问题的4:4:4
。Wowza.com explains移动设备的配置文件和级别。
基线
配置文件将保证在更旧的设备(例如:iPhone 3或更旧的设备)上播放。
关于html - Safari 无法播放转换为 mp4 或 m4v 的 gif,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45776576/