Я хочу использовать Ubuntu и желательно стандартные пакеты, такие как ffmpeg, чтобы повернуть видеофайл .3gp на 90 градусов в любом направлении. Предпочтительно командная строка или скрипт Python.
Как я могу это сделать?
Я хочу использовать Ubuntu и желательно стандартные пакеты, такие как ffmpeg, чтобы повернуть видеофайл .3gp на 90 градусов в любом направлении. Предпочтительно командная строка или скрипт Python.
Как я могу это сделать?
Из командной строки с помощью ffmpeg:
ffmpeg -i input.3gp -filter:v transpose=1 \
-c:v libx264 -preset veryfast -crf 22 \
-c:a copy \
-metadata:s:v rotate="" \
output.3gp
transpose=1
повернет видео на 90 градусов по часовой стрелке; чтобы повернуть против часовой стрелки, используйте transpose=2
. Смотрите документацию транспонирования для получения дополнительной информации.
-metadata:s:v rotate=""
любые существующие метаданные ротации видеопотока; в противном случае ffmpeg
скопирует его, что может привести к тому, что ваш игрок применяет дополнительное нежелательное вращение.
Для получения информации о настройках кодирования видео см. Это руководство по кодированию H.264 и руководство по кодированию AAC, если вы хотите перекодировать звук вместо потокового копирования .
Используя VLC, вы можете повернуть видео, выбрав Инструменты >> Настройки ...
И выберите "Все" для отображения настроек. Затем перейдите к: Видео >> Фильтры >> Повернуть
После установки желаемой степени вы можете повернуть ее, выбрав Инструменты> Эффекты и фильтры> Видеоэффекты> Геометрия ...
я проверил mp4, но я верю, что VLC также может поддерживать 3gp. надеюсь это поможет. :)
Avidemux должен быть в состоянии сделать это.
Выполните Video->Filters->Rotate(x degrees)->Close
затем File->Save->Save Video
Я решил похожую проблему - у меня была.MOV, который был сделан вверх ногами (то есть повернут на 180 градусов), который я хотел установить правильно.
В моей системе Ubuntu 14.04 я запустил avconv
с теми же параметрами командной строки, которые были указаны для ffmpeg
в ответе evilsoup. По-видимому, он не поддерживает опцию transpose
для поворота на 180 градусов, поэтому я выполнил 90-градусный поворот по часовой стрелке (т.е. transpose=1
) дважды.
Когда я попробовал минимальные варианты, я получил сообщение о том, что:
encoder 'aac' is experimental and might produce bad results.
Add '-strict experimental' if you want to use it.
и выходной файл был нулевой длины, поэтому я добавил -strict experimental
.
Командные строки, которые работали были:
avconv -i IMG_orignl.MOV -filter:v 'transpose=1' -strict experimental IMG_interm.MOV
avconv -i IMG_interm.MOV -filter:v 'transpose=1' -strict experimental IMG_result.MOV
Результат был удовлетворительным, с необъяснимыми побочными эффектами:
Не то чтобы я жалуюсь: это желательно; Я просто не понимаю, почему они появились ...
Со времени первоначального ответа на этот вопрос в libav произошли некоторые изменения. В попытке сохранить эту актуальность и полезность я предоставлю следующее:
Вы можете сделать это с помощью последних версий ffmpeg
и avconv
, используя команду
avconv -i inputfile -vf transpose=clock outputfile
для вращения по часовой стрелке.
в ffmpeg синтаксис такой же.
ffmpeg -i inputfile -vf transpose=clock outputfile
где inputfile - ваш поддерживаемый входной видеофайл, а outputfile - желаемый выходной файл.
Для вращения против часовой стрелки замените часы на часы
Источники:
https://libav.org/avconv.html#transpose
Тестирование на Ubuntu 14.04.5 LTS