[Работа с видео] FFmpeg. Трюки и хитрости
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
ВведениеFFmpeg — мультимедийный комбайн, набор библиотек которые позволяют записывать, обрабатывать и конвертировать видео и/или аудио материалы в различные форматы. С помощью этого инструмента можно производить видео монтаж практически любой сложности. Его используют многие плееры, конвертеры, редакторы и библиотеки компьютерного зрения. В этой статье я поделюсь трюками и хитростями с FFmpeg, которые и сам часто использую в работе.Обрезка видео по времениДовольно часто нужно вырезать с видео небольшой фрагмент с n по m секунды. Для этого нужно указать секунду, с которой вырезать и длительность.
ffmpeg -i i.mp4 -ss 00:01:00 -t 00:02:00 -c copy o.mp4
Параметр -ss указывает на начальную точку, а -t на длительность.Важное замечание! Если длительность видео 5 минут, начальную точку укажем в 00:04:00, а длительность в 00:02:00, длительность конечного видео будет 1 минута.Тут и далее по тексту статьи, i.mp4 - это путь к входному файлу, а o.mp4 - к выходному.Создание видео с фотографийПредположим, у нас есть камера наблюдения, которая делала фото каждую минуту в течении суток, а мы хотим получить одно непрерывное видео.Используя код ниже, можно превратить все фото с расширением .jpg с текущей папки в видео, с кадровой частотой 10 FPS, используя H.264 кодек.
ffmpeg -framerate 10 -pattern_type glob -i '*.jpg' -c:v libx264 o.mp4
Извлечение фотографий с видеоА теперь сделаем действие противоположное действию с предыдущего пункта — разобьем видео по кадрам на фотографии.
ffmpeg -i o.mp4 -r 1 -q:v 2 -f image2 img-3%d.jpeg
Склейка двух и больше видео в одноДля склейки множества видео в одно нам потребуется создать файл, например list.txt в котором по порядку перечислим пути к видео, которые хотим склеить, например:
file 'video1.mp4'
file 'video2.mp4'
file 'videoN.mp4'
А после этого выполним:
ffmpeg -f concat -i list.txt -c copy o.mp4
Создавать такой файл вручную не лучшая идея, можно его наполнить автоматически, например, так:
for f in ./*.mp4; do echo "file '$f'" >> list.txt; done
или так:
printf "file '%s'\n" ./*.mp4> list.txt
Удаление и извлечения аудио с видеоДля удаления используем:
ffmpeg -i i.mp4 -c:v copy -an o.mp4
А для извлечения:
ffmpeg -i i.mp4 -vn 0.wav
Обрезка видео по высоте и ширине В начале статьи я рассказал о способе обрезки видео по времени, но его также можно обрезать и по размеру кадра, например превратить 16:9 формат в 3:4, обрезав кадр слева и справа.
ffmpeg -i i.mp4 -filter:v "crop=w:h:x:y" o.mp4
В фильтре crop по очереди нужно указать ширину, высоту нового кадра, а также его смещение по координатам.Размещение видео рядом в одном кадре (stack video)
Перед тем, как мы это сделаем, есть пара моментов, которые нужно рассмотреть:
- Видео должны иметь одинаковую высоту.
- Видео должны иметь тот же формат пикселей.
Горизонтальное размещение:
ffmpeg -i i0.mp4 -i i1.mp4 -filter_complex hstack=inputs=2 o.mp4
Вертикальное размещение:
ffmpeg -i i0.mp4 -i i1.mp4 -filter_complex vstack=inputs=2 o.mp4
Сетка 2x2:
ffmpeg \
-i i0.mp4 -i i1.mp4 -i i2.mp4 -i i3.mp4 \
-filter_complex \
"[0:v][1:v]hstack=inputs=2[top]; \
[2:v][3:v]hstack=inputs=2[bottom]; \
[top][bottom]vstack=inputs=2[v]" \
-map "[v]" \
o.mp4
Сетка 3x2:
ffmpeg \
-i i0.mp4 -i i1.mp4 \
-i i2.mp4 -i i3.mp4 \
-i i4.mp4 -i i5.mp4 \
-filter_complex \
"[0:v][1:v][2:v]hstack=inputs=3[top];\
[3:v][4:v][5:v]hstack=inputs=3[bottom];\
[top][bottom]vstack=inputs=2[v]" \
-map "[v]" \
o.mp4
Поворот видео
ffmpeg -i i.mp4 -vf "transpose=0" o.mp4
Параметр transpose в коде выше может принимать такие значения:
- 0 - Повернуть на 90 градусов против часовой стрелки и развернуть по вертикали. По умолчанию.
- 1 - Повернуть на 90 градусов по часовой стрелке.
- 2 - Повернуть на 90 градусов против часовой стрелки.
- 3 - Повернуть на 90 градусов по часовой стрелке и развернуть по вертикали.
Послесловие FFmpeg очень мощный инструмент для обработки видео. С его помощью, имея шпаргалку по его возможностям, можно сэкономить много времени — куда быстрее ввести несколько команд, чтобы обработать видео, чем запускать редактор. Если вы знаете еще полезные хитрости и трюки — милости прошу поделиться ими в комментариях. Спасибо!
===========
Источник:
habr.com
===========
Похожие новости:
- [Компьютерное железо, Финансы в IT, Видеокарты, Процессоры] ASUS повышает цены на видеокарты и материнские платы
- [Работа с видео, Разработка мобильных приложений, Компьютерная анимация, Продвижение игр] Наш 2020-й в видеороликах: итоги года от Alconost Video
- [Работа с видео, Разработка игр, Монетизация игр, Игры и игровые приставки] Какие ролики об играх мы сделали в 2020-м
- [Работа с видео, Python, Медийная реклама, Контекстная реклама, Звук] Продвижение бота на 214 тысяч процентов
- [Облачные сервисы, Статистика в IT] Россия вышла на третье место в мире по числу камер видеонаблюдения
- [Работа с видео, Обработка изображений, Законодательство в IT, Киберпанк, Видеотехника] Американцы не хотят сотрудничать с белорусской компанией Synesis, которая помогает МВД распознавать лица протестующих
- [Компьютерное железо, Видеокарты, Настольные компьютеры] Покупка подержанных видеокарт в Китае. Стоит ли игра свеч?
- [Работа с видео, Социальные сети и сообщества] «Газпром-медиа» запустит видеосервис по типу TikTok
- [Исследования и прогнозы в IT, Производство и разработка электроники, Компьютерное железо, Финансы в IT] Почему CPU, GPU, чипы для консолей и другие компоненты становятся дефицитом (перевод)
- [Работа с видео, Копирайт] YouTube обнаружил, что «пиратский» контент и заявления о нарушениях рассылались с одного IP-адреса
Теги для поиска: #_rabota_s_video (Работа с видео), #_ffmpeg, #_video (видео), #_hitrosti (хитрости), #_rabota_s_video (
Работа с видео
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 09:08
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
ВведениеFFmpeg — мультимедийный комбайн, набор библиотек которые позволяют записывать, обрабатывать и конвертировать видео и/или аудио материалы в различные форматы. С помощью этого инструмента можно производить видео монтаж практически любой сложности. Его используют многие плееры, конвертеры, редакторы и библиотеки компьютерного зрения. В этой статье я поделюсь трюками и хитростями с FFmpeg, которые и сам часто использую в работе.Обрезка видео по времениДовольно часто нужно вырезать с видео небольшой фрагмент с n по m секунды. Для этого нужно указать секунду, с которой вырезать и длительность. ffmpeg -i i.mp4 -ss 00:01:00 -t 00:02:00 -c copy o.mp4
ffmpeg -framerate 10 -pattern_type glob -i '*.jpg' -c:v libx264 o.mp4
ffmpeg -i o.mp4 -r 1 -q:v 2 -f image2 img-3%d.jpeg
file 'video1.mp4'
file 'video2.mp4' file 'videoN.mp4' ffmpeg -f concat -i list.txt -c copy o.mp4
for f in ./*.mp4; do echo "file '$f'" >> list.txt; done
printf "file '%s'\n" ./*.mp4> list.txt
ffmpeg -i i.mp4 -c:v copy -an o.mp4
ffmpeg -i i.mp4 -vn 0.wav
ffmpeg -i i.mp4 -filter:v "crop=w:h:x:y" o.mp4
Перед тем, как мы это сделаем, есть пара моментов, которые нужно рассмотреть:
ffmpeg -i i0.mp4 -i i1.mp4 -filter_complex hstack=inputs=2 o.mp4
ffmpeg -i i0.mp4 -i i1.mp4 -filter_complex vstack=inputs=2 o.mp4
ffmpeg \
-i i0.mp4 -i i1.mp4 -i i2.mp4 -i i3.mp4 \ -filter_complex \ "[0:v][1:v]hstack=inputs=2[top]; \ [2:v][3:v]hstack=inputs=2[bottom]; \ [top][bottom]vstack=inputs=2[v]" \ -map "[v]" \ o.mp4 ffmpeg \
-i i0.mp4 -i i1.mp4 \ -i i2.mp4 -i i3.mp4 \ -i i4.mp4 -i i5.mp4 \ -filter_complex \ "[0:v][1:v][2:v]hstack=inputs=3[top];\ [3:v][4:v][5:v]hstack=inputs=3[bottom];\ [top][bottom]vstack=inputs=2[v]" \ -map "[v]" \ o.mp4 ffmpeg -i i.mp4 -vf "transpose=0" o.mp4
=========== Источник: habr.com =========== Похожие новости:
Работа с видео ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 09:08
Часовой пояс: UTC + 5