Ответ 1
Это работает с недавним FFmpeg:
ffmpeg -i input.mp4 -c copy -metadata:s:v:0 rotate=90 output.mp4
Это будет поток копировать потоки битов, поэтому никакая кодировка не выполняется. Здесь меняются только метаданные первого видеопотока (v:0
), и проигрыватель будет показывать видеоролик. (Не все игроки поддержат это.)
Дополнительные примечания:
-
Если вы хотите "физически" повернуть видео, вы должны использовать фильтр
transpose
. Фильтрация потребует повторного кодирования, поэтому вам нужно будет удалить-c copy
. -
Если вы опускаете
-c copy
и хотите кодировать вместо повторного мультиплексирования, тогдаffmpeg
будет автоматически поворачивать видео, если есть какие-либо существующие метаданные вращения. Вы можете отключить это поведение с помощью-noautorotate
.