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

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(也显示为“矩阵结构”)时,它也失败了 – “警告:抱歉,MatrixStructure不可写”.

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

再次感谢.

解决方法

Phil Harvey解释了更新特定标签 here的问题.

作为替代解决方案,我设法使用获得mp4文件的无损旋转

ffmpeg -i input.mp4 -Metadata:s:v rotate="180" -codec copy output.mp4

它适用于我颠倒的gopro视频.

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

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...