2011-09-07 87 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

對於任何關注此事的人。我們公司一直在推動這一實施,但客戶正在尋求它。當這項工作得到實施時,我會保持這個線索的通知。再次如果其他人有任何補充。我一定會有興趣聽到它。 –