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,这对于浏览器视频来说似乎是不寻常的(在某些移动设备上可能无法解码)。

解决方案:

在您的编码器中,选择 BaselineMain 的 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?

如何使用`ffmpeg`将视频转换为`m4v`?

HTML5 视频无法仅在 Chrome 中播放

FFMPEG 转换的 mp4 文件无法在 firefox 和 chrome 中播放

iPhone手机视频播放不了怎么回事?

Safari 9.0 无法在存储服务器上播放 mp4 视频