0

我有一个将视频旋转 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 查看了元数据,但没有看到任何重要的东西。

我已经AddType video/mp4 .mp4在 .htaccess 中了。

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

编辑:

IE9 中的请求 IE9 请求

IE9 中的响应 IE9 响应

4

1 回答 1

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

于 2013-10-17T11:19:58.943 回答