我正在尝试找到使mp4在Chrome中运行的神奇选项。我认为我的视频正常运行,但Chrome更新后似乎没有了。
Chrome,版本41.0.2272.101(Windows)
我尝试了其他一些机器,发现一些视频适用于旧版本,而我的Mac似乎仍可以使用最新的Chrome。
我使用ffmpeg选项转换为png系列,
ffmpeg -framerate 10 -i dance%02d.png -r 10 -pix_fmt yuv420p dance.mp4
有些视频有效,有些则无效,有些视频有效,或者中途停止。
我尝试了各种其他选项,例如,
ffmpeg -start_number 16 -framerate 10 -i dance%02d.png -r 10 -an -s hd720 \
-vcodec libx264 -pix_fmt yuv420p -preset slow -profile:v baseline \
-movflags faststart -y dance.mp4
但这似乎让事情变得更糟。
这是其中一个视频, http://www.botlibre.com/media/a786625.mp4
另一个, http://www.botlibre.com/media/a812450.mp4
Firefox似乎在任何版本,灰色背景上都没有问题。 IE工作正常,白色背景。 Safari工作,灰色背景。
另一件事,他们的视频过去在较旧的Chrome版本上有白色背景,但现在是灰色的,除了Mac仍然是白色。
还有一件事。 Webm格式有效,但是有人知道删除透明度的选项吗?我正在使用,
ffmpeg -i dance%02d.png -r 10 -c:v libvpx -crf 10 -b:v 512k -c:a libvorbis dance.webm
只想要一个坚实的白色背景。
答案 0 :(得分:3)
所提供的视频适用于Chrome v.44(但现在两个链接都已关闭)。如您所述,您认为视频在升级到第41版之前已经有效,它表示版本41中的Chrome中存在错误(可能)为43。
至于背景。 PNG通常是透明的,编码的MP4流似乎被编码为32位流(24位颜色,8位alpha)。只有webm才真正支持浏览器中的alpha(目前只支持Chrome和Opera)。
Chrome使用FFmpeg解码mp4视频,Firefox使用主机系统提供的任何内容。不同的背景颜色用于表示透明度,因为视频实际上并未显示可用的Alpha通道。
推荐的方法是在没有Alpha通道的情况下渲染帧(如果你不打算用它做任何事情),或者在将PNG序列解码为视频之前将PNG序列转换为非alpha通道PNG。这适用于mp4和webm。