iPhone записує відео, що обертаються в системах Windows


5

Я записую відео на iPhone і завантажую їх на мій сервер Linux. Користувачі можуть бачити ці відео на веб-сайті. Якщо користувачі переглядають відео на Mac або iDevices, відео виглядає чудово, але коли користувачі бачать, що відео в системах Windows, це відео змінюється.

Я припускаю, що це є деяким яблучним прапором у записаному відео, яке системи Windows не в змозі прочитати. Чи можу я записувати відео якимось чином, щоб вони не оберталися в системах Windows? Або є спосіб перекодувати відео з правильною орієнтацією інтерфейсу за допомогою FFmpeg?

Я відкритий для FFmpeg або iOS.

Відповіді:


7

Ви не можете змінити спосіб запису відео на камеру iOS. Він встановлює прапор обертання, і якщо ви хочете, щоб відео відображалося правильно як в OS X, так і в Windows (та інших програвачах), вам доведеться:

  • Видаліть прапор обертання. Тепер ваше відео є пейзажним, але все ще відображається неправильним.
  • Повторно кодуйте відео, обертаючи його.

Завантажте ffmpeg (статична збірка для вашої ОС чудово).

Потім вам потрібен transposeфільтр, наприклад

ffmpeg -i portrait.mov \
-c:v libx264 -filter:v "transpose=1" \
-c:a copy \
-metadata:s:v:0 rotate=0 out.mp4

Кілька зауважень:

  • Тут transpose=1буде обертатися на 90 °. Якщо ваше відео перевернуте, вам потрібно поєднати варіанти. Ви можете використовувати -filter:v "transpose=2,transpose=2"або інші. Дивіться тут: Як перевернути відео на 180 ° (вертикально / догори дном) за допомогою FFmpeg?

  • Цей -metadata:s:v:0 rotate=0параметр гарантує, що метадані обертання в першому відеопотоку знову будуть встановлені на 0 (це було раніше 90), тому ваше відео тепер добре відображається як на OS X, так і на інших ОС.

  • Природно, перенесення перекодуватиме відео, і ви втратите якість. Додайте -crfопцію після -c:v libx264встановлення коефіцієнта постійної швидкості , який контролює якість. Використовуйте нижчі значення, щоб отримати кращу якість. 23 насправді за замовчуванням, так що вам не потрібно вказувати його на всіх, але ви можете вибрати що - то , як низько як 18 , якщо відео закінчує тим, що погано в іншому випадку, наприклад, -c:v libx264 -crf 18.

  • У деяких випадках ви можете просто зняти прапор обертання, але зберегти оригінальний бітовий потік відео недоторканим. Для цього замініть -c:v libx264 -filter:v "transpose=1"на -c:v copy.

  • Перегляньте посібник з кодування x264 для отримання додаткової інформації.


На кожному iPhone, який я маю, "рідна" орієнтація задньої камери знаходиться в телефоні в альбомній орієнтації, з лінзою камери в лівій руці. Якщо відео спочатку було знято в такій орієнтації, слід позбавити прапор обертання без повторного кодування. (Хоча це, мабуть, відобразиться правильно у всіх гравців без будь-яких змін.)
smitelli
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.