gpt4 book ai didi

c# - 从 C#/C++ 中的 iPhone 电影获取矩阵 (CGAffineTransform) 信息

转载 作者:行者123 更新时间:2023-11-30 04:32:55 29 4
gpt4 key购买 nike

当 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 命令行参数,从而允许我适本地翻译我的视频..

如果我想出更好的主意,我会尝试在这篇博文中包含这些知识。

Clip from the Quicktime File format

关于此答案之旅的旁注

对于所有因为您不知道我在说什么而对这个问题投反对票的人。一个澄清的请求就足够了。因为你不明白或不知道答案而进来并投反对票既不具有建设性也不公平。这是一个非常具体的问题,这个答案不仅对我有帮助。

我相信帮助传播各种知识,以及那些认为投票有帮助的人,因为您只是不知道如何提供帮助。我希望这能让您更好地了解人们希望解决的问题。仅仅因为您不知道问题是什么并不意味着您应该对此嗤之以鼻,当然也不意味着您应该对那些寻求您无法提供的答案的人不屑一顾。

我很高兴我的问题得到了答案,并且肯定会接受任何对我给出的答案的进一步批评。也许这个答案会引发更多关于这个问题的问题,我将能够学习并为 future 的讨论做出贡献

感谢 StackOverflow 恢复我的问题,以便我可以适本地回答它。

关于c# - 从 C#/C++ 中的 iPhone 电影获取矩阵 (CGAffineTransform) 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7341084/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com