Я хочу использовать Ubuntu и желательно стандартные пакеты, такие как ffmpeg, чтобы повернуть видеофайл .3gp на 90 градусов в любом направлении. Предпочтительно командная строка или скрипт Python.
Как я могу это сделать?
Я хочу использовать Ubuntu и желательно стандартные пакеты, такие как ffmpeg, чтобы повернуть видеофайл .3gp на 90 градусов в любом направлении. Предпочтительно командная строка или скрипт Python.
Как я могу это сделать?
Ответы:
Используя VLC , вы можете повернуть видео, выбрав Инструменты >> Настройки ...
И выберите «Все» для отображения настроек. Затем перейдите к: Видео >> Фильтры >> Повернуть
После установки желаемой степени вы можете вращаться, выбрав Инструменты> Эффекты и фильтры> Видеоэффекты> Геометрия ...
я проверил mp4, но я верю, что VLC также может поддерживать 3gp. надеюсь это поможет. :)
Из командной строки с помощью 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, если вы хотите перекодировать аудио вместо потокового копирования .
Я решил похожую проблему - у меня был .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
Результат был удовлетворительным, с необъяснимыми побочными эффектами:
Не то чтобы я жалуюсь: это желательно; Я просто не понимаю, почему они появились ...
avconv
командные строки в полном объеме, а не только отличия от ffmpeg
команды. Ваш ответ должен быть самодостаточным; другой ответ может уйти. (3) Удачи!
-filter:v transpose=1 …
.
Со времени первоначального ответа на этот вопрос произошли некоторые изменения в libav. В попытке сохранить эту актуальность и полезность я предоставлю следующее:
Это можно сделать с помощью последних версий ffmpeg
и avconv
с помощью транспонированного видеофильтра.
avconv -i inputfile -vf transpose=clock outputfile
для вращения по часовой стрелке.
в ffmpeg синтаксис такой же.
ffmpeg -i inputfile -vf transpose=clock outputfile
где inputfile - ваш поддерживаемый входной видеофайл, а outputfile - желаемый выходной файл.
Для вращения против часовой стрелки замените часы на часы
Вот выдержка из документации:
‘cclock_flip’
Rotate by 90 degrees counterclockwise and vertically flip. (default)
‘clock’
Rotate by 90 degrees clockwise.
‘cclock’
Rotate by 90 degrees counterclockwise.
‘clock_flip’
Rotate by 90 degrees clockwise and vertically flip.
Источники:
https://libav.org/avconv.html#transpose
https://ffmpeg.org/ffmpeg-filters.html#transpose-1
Тестирование на Ubuntu 14.04.5 LTS, Ubuntu 16.04, Ubuntu 18.04
ffmpeg
работал для меня (не пытался avconv
)
ffmpef
включает в себя много лишних аргументов, спасибо!