11

我正在建立一个网站来显示从 iPhone 录制的视频。视频采用纵向,288x352。Safari 可以很好地显示此视频,但在 Chrome 中,视频被翻转为横向模式,352x288。我的头偏向一边。:-(

这是有问题的页面:http: //aaron.tiberiuslog.com/B4F4CC56-172E-4D84-9656-BE04E6E475A0

如果有帮助,这就是视频本身。

http://tiberiuslog.s3.amazonaws.com/output_D7DB78A9-8019-4D09-9B22-EB8738F844BB-2380-000001530B13BE09.mov

我尝试过使用香草 HTML5 标记,现在添加了VideoJS,尽管它对这个问题没有任何影响。

更新:我现在对我的问题有一半的答案。似乎需要在设备上设置一些编码选项,以确保所有查看器都尊重正确的方向,包括 VLC 和 Chrome(例如)。这个问题没有足够的能力得到答案,所以我创建了一个新问题。希望我们会为这个问题提供适当的解决方案!

更新 2:我找到了答案!我发布的另一个问题使我了解了在 iOS 上正确编码视频的技术

4

3 回答 3

5

请参阅videojs 支持论坛上的这篇文章,这表明这可能取决于 iPhone 编码视频的方式,因为它包含 QuickTime 可以读取但其他播放器不能读取的信息。建议您使用AVFoundation在 iOS 上对视频进行编码并旋转它。大概其他一些标准编码库也可以工作。

于 2012-11-07T01:03:50.130 回答
4

这有点难看,但是您可以添加-webkit-transform:rotate(90deg);到标签的style属性中。video但是,这也会旋转您的控件。

我刚刚通过 VLC Player 从 AWS 流式传输视频,视频似乎逆时针旋转了 90 度。Apple 使用元数据标志来指示旋转,而不是简单地以不同的方向录制视频。不幸的是,许多播放器/浏览器会忽略此标志,包括 VLC 和 Chrome。

要解决此问题,您需要旋转实际的视频文件。您可以通过在 VLC Player 中打开它来执行此操作,转到Tools > Effects and Filters. Video Effects然后点击Geometry。启用TransformRotate by 90 degrees从下拉菜单中选择。单击OK然后关闭 VLC。视频现在应该已经准备好了,尽管我无法在您的页面上对其进行测试。

您现在可能需要删除旋转元数据标签,以便 Safari 不会进一步旋转视频。同样,我还没有测试过这个。

于 2012-11-10T14:13:54.640 回答
1

此问题已于 2016 年 6 月 2 日修复。请在此处参考 firefox 错误。这个问题不是 Iphone 如何编码视频,而是与支持 mp4 文件的 firefox 相关,但与 mp4 文件中的方向元数据无关。

无论如何,可以使用以下方法检查视频文件是否有旋转:exiftool -Rotation video.mp4

注意: 对于仍然看到此问题的任何人,此更新尚不可用,因为我的最新更新未正确自动定位视频。仔细一看,错误页面说目标是 mozilla49。

于 2016-07-06T15:59:32.740 回答