我有一个脚本可以将视频旋转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中的响应
答案 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。