Получение информации о матрице (CGAffineTransform) из фильмов на iPhone в C # / C ++ - PullRequest
1 голос
/ 08 сентября 2011

Когда iPhone записывает видео, данные с камеры помещаются прямо на диск. Что говорит игроку, как переориентировать видео, является Матрица Преобразования. Это математическая структура, которая используется для изменения положения пикселей в пространстве X, Y.

В iPhone и в Macintosh я могу спросить Видео, каково его Преобразование, и я возвращаю CGAffineTransform с b c d tx и ty. Apple описывает матрицу преобразования здесь

С помощью этой информации я могу определить, каким должен быть макет видео, и определить, будет ли он вращаться перед отображением.

Я могу легко получить эту информацию в среде osx и ios. Я пытаюсь определить способ получить ту же информацию матрицы с Windows. Предпочтительнее C #, однако, если я должен использовать C ++, пусть будет так. Решения Active X совершенно нежелательны, и я надеюсь, что Quicktime SDK для Windows найдет свое применение. Иначе какого чёрта Apple это написала ??

Если кто-нибудь знает, как получить Матрицу преобразования из видео или любого места, с которого можно начать, пожалуйста, укажите мне правильное направление.

1 Ответ

2 голосов
/ 12 октября 2011

Похоже, что CGAffineTransform - это то, что нужно извлечь прямо из самого файла.Я использовал PDF-файл спецификации формата Quicktime, чтобы понять файл и узнать, где его найти. CGAffineMatrix

Вот ссылка на страницу с данными Matrix

QuicktimeСпецификация формата файла Информация о матрице

, как видно из этого клипа, матрица находится в атоме заголовка фильма.достойный с типом 'mvhd'.

это всего 36 байтов в длину и всего 36 байтов после типового имени атома 'mvhd'.

Учитывая спецификации формата файла кадров и дорожек, Матрица может изменяться повсюдувоспроизведение видео.Но по моему опыту, этот метод не применяется к видео, которые выводятся с iphone.

Я предполагаю, что матрицу нужно будет извлекать из каждого кадра в ближайшем будущем, и, возможно, это что-точто FFMpeg или другие приложения для работы с видеоформатом могут работать с захватами кадров и видео-трансляторами.Но поскольку в настоящее время у меня нет версии ffmpeg, в которой использовалась бы эта матричная информация, я буду создавать простой инструмент для захвата заголовков Movie, который извлечет матрицу и позволит мне соответствующим образом настроить параметры командной строки ffmpeg, что позволит мне соответствующим образом перевести мое видео..

Если у меня возникнет идея получше, я постараюсь включить этот пост в это знание.

Clip from the Quicktime File format

Примечание на темупутешествие к этому ответу

Для всех тех, кто отрицал этот вопрос, потому что Вы не знали, о чем я говорю.Просьба уточнить могла быть вполне достаточной.Приходить и опускаться, потому что вы не понимаете или не знаете, ответ не является ни конструктивным, ни справедливым.Это очень конкретный вопрос, и этот ответ поможет не только мне.

Я верю в то, что помогаю распространять всевозможные знания и тех из вас, кто считает полезным понизить голос, потому что вы просто не знаете, как помочь.Я надеюсь, что это поможет вам лучше понять проблемы, которые люди хотят решить.Тот факт, что вы не знаете, в чем проблема, не означает, что вы должны поднять на это свой нос и, конечно, не означает, что вам следует сбрасывать со счетов тех, кто ищет ответы, которые вы не можете дать.

Я рад, что у меня естьответ на мой вопрос и, безусловно, будет открыт для дальнейшей критики на ответ, который я дал.Возможно, этот ответ вызовет больше вопросов по этой проблеме, и я смогу узнать и внести свой вклад в будущие обсуждения по этому вопросу

Спасибо StackOverflow за восстановление моего вопроса, чтобы я мог ответить на него соответствующим образом.

...