2012-02-17 3 views
1

Я пытаюсь определить ориентацию видеофайла iPhone (.mov) при загрузке через форму PHP, чтобы я мог использовать FFMPEG для его исправления (много загруженных видеороликов показаны на их стороне). Кажется, я не могу найти способ доступа к ориентации загруженного файла на сервере. Есть идеи?Определить ориентацию видео iPhone с сервера

+0

http://stackoverflow.com/questions/2814626/programatically-access-orientation-of-an-iphone-video – cspray

+0

@ craig1231 Да? Итак, поскольку браузер является клиентом, ему не разрешается взаимодействовать с сервером, на котором запущен PHP? IPhone, безусловно, может [отправлять запросы и данные на веб-сервер] (http://stackoverflow.com/questions/3249897/get-content-of-webservice). – cspray

+0

Извините, просто уточнил вопрос, пользователь загружает файл со своего компьютера через форму html/php –

ответ

8

Использование MediaInfo

$ mediainfo test.mp4 | grep Rotation 
Rotation       : 90° 

Вы можете использовать Exec(), чтобы получить вывод этой системы вызова, а также применить ориентацию затруднительное (90 градусов по часовой стрелке):

$ ffmpeg -i test.mp4 -vf "transpose=1" testRotated.mp4 

Если у вас есть - -enable_vfilters

$ ffmpeg -vfilters "rotate=90" -i test.mp4 testRotated.mp4 
+0

да, но предполагается, что это было записано на портрете – user2387149

0

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

exec(ffmpeg -i uploaded.mov,$output) 

Затем, если у вас есть выход сделать pregmatch на ней, как так

preg_match('/(\d+)x(\d+)/', $output, $dims); 

Затем проверьте, чтобы увидеть, если $ тускнеет [1] больше, чем $ тускнеет [2], если то он в пейзаже, если он меньше, чем его портрет.

Я не смог проверить его полностью, но что-то в этом направлении должно работать на вас.

+0

Размеры ничего не сообщают об ориентации. Он может работать в некоторых случаях, но не в том случае, если вы переверните камеру вверх дном или камеру, используя портрет в обычном режиме. – PiTheNumber

Смежные вопросы