Файлы 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.