2011-09-07 90 views
1

当iPhone录制视频时,它将来自摄像机的数据直接放到磁盘上。什么告诉玩家如何重新定向视频是变形矩阵。它是一个数学结构,用于改变X,Y空间中像素的位置。从C#/ C++中的iPhone电影获取矩阵(CGAffineTransform)信息

在iPhone和Macintosh中我可以问视频什么是它的变换,然后我得到一个CGAffineTransform b c d tx和ty。苹果公司介绍了Transform Matrix here

有了这些信息,我可以确定视频布局应该是什么,并确定它是否期望在显示之前进行旋转。

我可以在osx和ios环境中轻松获得这些信息。我正试图确定一种方式来获得与Windows相同的矩阵信息。但是,如果我必须使用C++,那么可以使用C#。 Active X解决方案完全不受欢迎,我希望Quicktime SDK for windows有一定的用处。否则苹果为它写了什么?

如果有人知道如何从视频或任何地方获取变形矩阵请开始,请指向正确的方向。

+0

你能否详细说明你要完成什么?我无法找到与“Neo”无关的“Matrix Info”。 – Sneakyness

+0

在iPhone中的Quicktime变换矩阵我可以操纵CGAffineTransform来修改视频的方向。我需要在Windows机器上找到它。 –

+0

不知道如何在本机窗口应用程序中做到这一点,但这里有一个关于在浏览器中做的链接! http://www.webkit.org/blog/386/3d-transforms/ – Sneakyness

回答

2

看来CGAffineTransform是需要从文件本身拉出来的东西。我使用的QuickTime文件格式规范PDF获得对文件的理解和在哪里得到的CGAffineMatrix

这里是它

Quicktime File Format Specification Matrix Info

到页面的链接与矩阵数据,你可以从该剪辑中看到该矩阵位于Movie头原子中。与'mvhd'类型端庄。

它总共有36个字节长,是'mvhd'原子类型名称后的总共36个字节。

鉴于矩阵在整个视频播放期间可以更改的帧和轨道的文件格式规范。但是根据我的经验,这种方法不适用于从iPhone输出的视频。

我想在不久的将来需要从每一帧抓取矩阵,也许这是FFMpeg或其他视频格式应用程序可以在他们的图像采集卡和视频转换器中工作的东西。但是由于我目前没有使用这种矩阵信息的ffmpeg版本,我将创建一个简单的Movie头部抓取器,它将拉出矩阵并允许我相应地调整我的ffmpeg命令行参数,从而允许我适当地翻译我的视频..

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

Clip from the Quicktime File format

的征程上,以这样的回答

所有这些谁downvoted这个问题,因为你不知道我在说什么的旁注。要求澄清可能已经足够了。因为你不明白或不知道答案既不具有建设性也不公平。这是一个非常具体的问题,这个答案不仅仅帮助我自己。

我相信,在帮助传播各种知识和你们谁认为它有助于downvote,因为你就是没有如何帮助任何线索。我希望这能让你更好地理解人们正在寻求解决的问题。只是因为你不知道问题所在并不意味着你应该把注意力放在它上面,当然并不意味着你应该打折寻找你无法提供的答案的人。

我很高兴,我有一个回答我的问题,肯定会开放给任何进一步的批评,我已经给出了答案。也许,这个答案将引发有关此问题的问题,我将能够学习,并有助于未来关于它的讨论

感谢您的StackOverflow恢复我的问题,我就可以适当地回答。

+0

只要我得到付诸实践,这个我会尽量提供代码片段展示了如何实现的机会这个信息适当。 –

+0

对于任何关注此事的人。我们公司一直在推动这一实施,但客户正在寻求它。当这项工作得到实施时,我会保持这个线索的通知。再次如果其他人有任何补充。我一定会有兴趣听到它。 –