使用Exiftool更新mov文件中的Rotation值

时间:2014-07-08 16:42:21

标签: ios exiftool

Phil Harvey提供了一些使用Exiftool在http://owl.phy.queensu.ca/~phil/exiftool/exiftool_pod.html#writing_examples处写照片元数据的优秀示例。

根据Phil的例子,我在更新JPG的现有元数据字段时没有任何问题。但是,我现在正试图将相同的逻辑应用于视频元数据(MOV包装的H.264),但没有取得任何成功。根据拍摄的iPhone 5(iOS 7.1),我有一个颠倒的视频 - 旋转值为180而不是0.所以我正在执行“exiftool -Rotation = 0 [文件名]”但是我得到的结果是:

更新了0个图像文件

1个图像文件不变

视频元数据是否有根本不同的东西?这可能是权限问题吗?我的执行声明不正确吗?是否有更好的方法?

谢谢!

截至7月10日更新: 根据Exiftool网站http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/Composite.html再次提到,我发现旋转字段无法编辑:

标记名称:旋转

可写:N

派生自:QuickTime:MatrixStructure,QuickTime:HandlerType

不幸的是,当我尝试通过Exiftool更新MatrixStructure(也显示为“Matrix Structure”)时,它也失败了 - “警告:抱歉,MatrixStructure不可写。”

所以看起来不可能在这里编辑相关的元数据。然而,虽然我正在使用的VLC和视频转码器兼容iPhone文件,但Adobe Premiere Pro CC和QuickTime播放器都正常使用该文件。因此,除了轮换之外,当前元数据中肯定存在某些东西。

再次感谢。

2 个答案:

答案 0 :(得分:3)

Phil Harvey 解释了更新该特定代码here的问题。 。

作为替代解决方案,我设法使用

获取mp4文件的无损旋转
ffmpeg -i input.mp4 -metadata:s:v rotate="180" -codec copy output.mp4

适用于我颠倒的GoPro视频。

视频在VLC上播放正确但不是Mediaplayer classic。

答案 1 :(得分:2)

您可以使用最新的Exiftool来旋转MOV。

https://www.sno.phy.queensu.ca/~phil/exiftool/

exiftool -Rotation=0 *.mov 

请参考下表设置旋转。 它将应用QuickTime MOV的Track1中的值。

MatrixStructure 0 1 0 -1 0 0 1080 0 1

  

垂直,主页按钮关闭,旋转= 90

MatrixStructure 1 0 0 0 1 0 0 0 1

  

水平,主页按钮为右,旋转= 0

MatrixStructure 0 -1 0 1 0 0 0 1920 1

  

垂直,主页按钮启用,旋转= 270

MatrixStructure -1 0 0 0 -1 0 1920 1080 1

  

水平,主页按钮,旋转= 180