- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当 iPhone 录制视频时,它会将相机中的数据直接放到磁盘上。告诉播放器如何重新定向视频的是变换矩阵。它是一种数学结构,用于改变像素在 X、Y 空间中的位置。
在 iPhone 和 Macintosh 中,我可以询问视频它的 Transform 是什么,然后我得到一个带有 b c d tx 和 ty 的 CGAffineTransform。 Apple 描述了 Transform Matrix here
根据这些信息,我可以确定视频布局应该是什么,并确定它是否需要在显示前旋转。
我可以在 osx 和 ios 环境中轻松获取这些信息。我正在尝试确定一种方法来获取与 Windows 相同的矩阵信息。最好使用 C#,但是如果我必须使用 C++,那就这样吧。 Active X 解决方案是完全不可取的,我希望 Quicktime SDK for windows 有一些用处。否则 Apple 写它到底是为了什么??
如果有人知道如何从视频或任何地方开始获取变换矩阵,请指出正确的方向。
最佳答案
CGAffineTransform 似乎需要从文件本身中直接提取出来。我使用 Quicktime 文件格式规范 pdf 来了解该文件以及从何处获取 CGAffineMatrix
这是指向包含 Matrix 数据的页面的链接
Quicktime File Format Specification Matrix Info
正如您从该剪辑中看到的那样,矩阵位于 Movie header 原子中。端庄的'mvhd'类型。
它总共有 36 个字节长,在 'mvhd' 原子类型名之后总共有 36 个字节。
鉴于帧和轨道的文件格式规范,Matrix 可以在整个视频播放过程中发生变化。但根据我的经验,这种方法并没有在iphone输出的视频上运行。
我想在不久的将来某个时候需要从每一帧中抓取矩阵,也许这就是 FFMpeg 或其他视频格式应用程序可以在其帧抓取器和视频转换器中使用的东西。但由于我目前没有使用此矩阵信息的 ffmpeg 版本,我将创建一个简单的电影标题抓取器,它将拉出矩阵并允许我相应地调整我的 ffmpeg 命令行参数,从而允许我适本地翻译我的视频..
如果我想出更好的主意,我会尝试在这篇博文中包含这些知识。
关于此答案之旅的旁注
对于所有因为您不知道我在说什么而对这个问题投反对票的人。一个澄清的请求就足够了。因为你不明白或不知道答案而进来并投反对票既不具有建设性也不公平。这是一个非常具体的问题,这个答案不仅对我有帮助。
我相信帮助传播各种知识,以及那些认为投票有帮助的人,因为您只是不知道如何提供帮助。我希望这能让您更好地了解人们希望解决的问题。仅仅因为您不知道问题是什么并不意味着您应该对此嗤之以鼻,当然也不意味着您应该对那些寻求您无法提供的答案的人不屑一顾。
我很高兴我的问题得到了答案,并且肯定会接受任何对我给出的答案的进一步批评。也许这个答案会引发更多关于这个问题的问题,我将能够学习并为 future 的讨论做出贡献
感谢 StackOverflow 恢复我的问题,以便我可以适本地回答它。
关于c# - 从 C#/C++ 中的 iPhone 电影获取矩阵 (CGAffineTransform) 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7341084/
如何将 CGAffineTransform 转换为 CGTransform3D? 我使用 UIImagePickerController 作为相机 Controller 。我在相机 View 的上部添
使用此命令时,我在标题中收到错误消息: CGPathContainsPoint(Hitbox.CGPath, self.transform, point, false) Hitbox 是一个 UIBe
我正在尝试使用 CGAffineTransformRotate 旋转基于触摸手势添加到父 View 上的自定义 View (VIEWA)。一切正常。现在,我在父 View 上添加了另一个 View (
我正在尝试在 Swift 中创建 CGPath。我正在使用 CGPathCreateWithRect(rect, transformPointer) . 我怎样才能得到 UnsafePointer来自
什么时候使用 CABasicAnimation 和 CAKeyFrameAnimation 和 CGAffineTransform? 最佳答案 CABasicAnimation :为图层属性提供基本的
我有这个功能可以将 UIButtons 旋转 45 度。但是一旦旋转,调用相同的方法不会再旋转,并且按钮在第一次旋转后卡在其旋转位置。有任何想法吗? - (void)rotateImage:(UIBu
在我的代码中,我有一个表格,在我的表格中,我有一个 slider ,我将其转换为垂直的。 metricSlider.transform = CGAffineTransformRotate(metric
在我的实验中,我得出以下结论: YourView.transform = CGAffineTransformMakeRotation( positive value ); 将顺时针旋转 View ,并
我尝试为 UILabel 设置动画: let label: UILabel = UILabel() var transform = CGAffineTransform.identity UIView.
问题: 当使用 CGAffineTransform 时,我失去了 UIView 及其所有 subview 的质量。 代码 我当前正在运行以下代码来缩放和移动我的 UIView。 func an
我有一个 ImageView ,我正在通过 UISliders 缩放和旋转它。这是我这样做的方法: - (IBAction)sizeSlider:(UISlider *)sender { in
我正在开发一个允许用户旋转时钟指针的应用程序。为此,我正在使用 needle 的 imageview 的 transform 属性: CGAffineTransform newTrans = CGAf
我刚刚意识到一些很奇怪的事情。使用 Xcode 5 中的 Storyboard,我创建了一个非常简单的应用程序;只有一个 View 的 View Controller 。在此 View 上有 slid
我正在对 UILabel 应用翻译,这应该导致标签在其开始的相同 x 位置结束,但由于某种原因它似乎卡在左边。 [UIView animateWithDuration:1 delay:0 usingS
我有一个实例方法,我想返回 CGAffineTransform。我目前收到错误 Semantic Issue: Initializing 'CGAffineTransform' (aka 'struc
IU 在 Java 方面经验丰富,但对 Objective C 还是个新手,所以这可能非常愚蠢。尽管如此,我已经苦苦挣扎了一段时间,从以下代码中寻找我得到预期表达式错误的原因。 CGAffineTra
我可能误解了 CGAffineTransform 的工作原理,但它似乎给出了关于框架原点的奇怪结果。 例如: print(attribute.frame) attrib
我在某个角度添加了 UIView。现在在运行时我想将该 View 向上移动(比如 20 像素)。 开始 dragView = [[DragbleView alloc] initWithFrame:C
我正在尝试缩放 AVCaptureVideoPreviewLayer,以便它显示来自相机的“放大”预览;我可以使用 setAffineTransform:CGAffineTransformMakeSc
我正在尝试编写代码,当触发发生时,UIImageView 的实例会创建一个缓慢的“增长”效果,CGAffineTransform 会运行 20 秒。 当触发器在第一次转换完成之前再次发生时,就会出现此
我是一名优秀的程序员,十分优秀!