Я хочу використовувати 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 - це підтримуваний вхідний відеофайл, а вихідний файл - бажаний вихідний файл.
Для обертання проти годинникової стрілки замініть годинник на годинник
Ось уривок із документації:
‘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
включає багато непотрібних аргументів, дякую!