3

У меня есть видео в формате MP4, которое было снято на моем телефоне Android, но парень снял его, держа мой телефон каким-то странным образом.

При просмотре в QuickTime мне нужно повернуть ноутбук на 90 градусов, а затем я увижу его как обычное широкоэкранное видео, и все выглядит хорошо.

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

Когда я импортировал его в iMovie, я повернул его на 90 градусов, и он был вправо вверх, но видео было сжатым и все еще выше, чем широко.

Не уверен, что происходит, но как я могу сделать его широкоформатным и правой стороной вверх?

1 ответ1

8

Файлы MP4 могут иметь флаг rotate , который указывает проигрывателю вращать видео во время воспроизведения, не изменяя способ кодирования и ориентации фактического потока битов видео. VLC поддерживает этот флаг начиная с версии 2.2.0.

Вопрос в том, что вы хотите сделать с видео. У вас есть два варианта:

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

Вы можете сделать все это с помощью ffmpeg . Загрузите статическую сборку для вашей операционной системы и распакуйте ее в каталог, например, чтобы исполняемый файл ffmpeg находился в ~/Downloads . Затем откройте окно терминала и перейдите к указанному каталогу:

cd ~/Downloads
./ffmpeg

Это должно запустить двоичный файл ffmpeg . Для получения дополнительной информации прочитайте статью нашего блога на ffmpeg .


Вот фактические команды, которые вы можете использовать. Если вы хотите сохранить текущий битовый поток видео и удалить флаг поворота, вам нужно только удалить метаданные для первого видеопотока v:0 и скопировать битовые потоки видео и аудио (-c copy):

ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=0 output.mp4

Если вы хотите перекодировать видео, переворачивая его на 180 °, вам нужно указать видеокодер (здесь, libx264) и фильтр переворачивания. Аудиопоток будет скопирован.

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -filter:v "hflip,vflip" -c:a copy output.mp4

Вы можете настроить CRF (коэффициент постоянной скорости), чтобы изменить качество видео. Разумные значения находятся в диапазоне от 18 до 28, в зависимости от качества ввода. Чем ниже, тем лучше качество, поэтому, если ваше видео выглядит хуже оригинала, попробуйте более низкое значение CRF.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .