safari 不会播放转换为 mp4 或 m4v 的 gif
Posted
技术标签:
【中文标题】safari 不会播放转换为 mp4 或 m4v 的 gif【英文标题】:safari won't play a gif converted to mp4 or m4v 【发布时间】:2018-01-28 07:35:45 【问题描述】:我将由三个图像组成的 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,但不记得我运行的确切命令。
更新 根据thisTechCrunch 的文章,Twitter 使用 mp4s 而不是 gif,所以我假设它应该适用于所有浏览器。
mp4文件可以在这里查看
https://www.dropbox.com/s/mvkzo8xe7is4rle/menu.mp4?dl=0
【问题讨论】:
您是如何将 gif 文件转换为 mp4/m4v 的?也许转换器有问题? 在其他浏览器中也可以使用吗? @faintsignal 它在 chrome 中工作(我尝试过的唯一另一个) @Dekel 我不记得了,我几天前做过,看过几个不同的说明。也许我会尝试一些并进行实验。我没想到。 链接到这些 GIF 动图之一?或者使用MediaInfo
(下载)之类的工具检查您的 mp4 是否具有使用基线配置文件制作的 h.264 编解码器。
【参考方案1】:
问题在于视频编码,特别是与视频编解码器一起使用的 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 移动设备的配置文件和级别。
Baseline
配置文件将保证在更旧的设备上播放(例如:iPhone 3 或更早版本)。
【讨论】:
你先生,是个传奇。我已经尝试过所有 html 属性,例如autoplay playsinline
等。它们都不起作用。该视频在某些 iPad 上完美播放,但在其他 iPad 上播放效果不佳。更奇怪的是:在相同编解码器的四个视频中,三个可以在同一个 iPad 上播放,而第四个则不能。使用您发布的命令转换视频最终解决了问题。非常感谢,我自己永远也想不通。以上是关于safari 不会播放转换为 mp4 或 m4v 的 gif的主要内容,如果未能解决你的问题,请参考以下文章
ffmpeg - mp4 在 safari 中播放,除非它不是第一个来源? Chrome 不会播放相同的 mp4?