使用ffmpeg的旋转视频无法在IE9中的流媒体播放

时间:2013-10-15 12:46:57

标签: html5 video ffmpeg internet-explorer-9 flowplayer

我有一个脚本可以将视频旋转90度,然后使用flowplayer(HTML5版本,而不是Flash)在网页上显示视频。视频旋转一旦它在IE9中不播放但在Chrome和Firefox中没有任何其他问题播放。 错误消息是:找不到视频文件。

我查看了IE9的开发人员工具控制台,在网络选项卡中,浏览器会播放整个视频。

以下是我用来旋转和转换视频的ffmpeg命令:

ffmpeg -i input.mov -y -r 30 -b 4M -vf 'transpose=1,scale=800:trunc(ow/a/2)*2' -ar 48000 -vcodec libx264 -profile baseline -preset slow -level 2.2 output.mp4

这是我使用的输入文件:https://dl.dropboxusercontent.com/u/37994/local%20capture.mov

这是输出视频:https://dl.dropboxusercontent.com/u/37994/local%20capture%20rotated.mp4

上面的输入视频是在Mac OS上使用QuickTime进行的屏幕截图。

此视频也发生了这种情况:http://mirrorblender.top-ix.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_h264.mov 还有这一个:https://dl.dropboxusercontent.com/u/37994/clipcanvas_14348_offline.mp4

对于样本.mov,这不会发生:http://support.apple.com/kb/ht1425

如果我运行命令两次,意味着我将视频旋转90度,然后再次使用相同的命令旋转输出,问题就消失了,但我需要能够旋转90度。

如果我将IE9置于IE7或IE8兼容模式下,则不会发生此问题。

我在想,问题可能是服务器如何为视频服务,但其他视频没有问题。

我用ffmpeg查看了元数据,但没有看到任何重要内容。

我已经在.htaccess中有AddType video/mp4 .mp4

我似乎无法确定导致此问题的原因。

编辑:

IE9中的请求 IE9 request

IE9中的响应 IE9 response

1 个答案:

答案 0 :(得分:0)

问题是由于在使用转置时对肖像视频应用了错误的缩放导致的,这导致视频的sample_aspect_ratio从1:1变为其他东西,似乎IE9无法处理与1:1不同的任何内容。

而不是

scale=FIXED_WIDTH:trunc(ow/a/2)*2

我应该使用

scale=trunc(oh*a/2)*2:FIXED_HEIGHT

这样,样本纵横比保持为1:1。

我从这里得到了帮助:http://flowplayer.org/forum/#!/setup#rotate