10 трюков, которые можно использовать с FFmpeg в Linux

10 трюков, которые можно использовать с FFmpeg в Linux

Хотите сделать больше с терминалом Linux? Возможно, вы не сразу совместите видео и командную строку, но с FFmpeg вы действительно можете многое сделать с видеофайлом, просто введя простую команду в терминале.

Если вы о нем не слышали, FFmpeg — это инструмент командной строки, который может обрабатывать все, что связано с медиа. Он доступен в репозиториях большинства дистрибутивов Linux, так что вам просто нужно найти и установить пакет, чтобы начать его использовать.

Если вы хотите быстро воспроизвести видео, получить какую-то информацию или выполнить крутые трюки по редактированию видео, FFmpeg вам поможет. Вот несколько полезных вещей, которые вы можете сделать с помощью FFmpeg на вашей машине Linux.

10 Воспроизведение видео

У вас уже может быть любимый видеоплеер, и это здорово. Но иногда вам просто нужен быстрый и простой способ посмотреть что-то, не открывая полноценное графическое приложение. Вы можете сделать это с помощью встроенного в FFmpeg плеера ffplay.

Например, чтобы воспроизвести видео, откройте терминал и выполните:

ffplay ваш_видео_файл.mp4

10 трюков, которые можно использовать с FFmpeg в Linux

Ваше видео появится в отдельном окне, готовое к воспроизведению. Вы можете управлять им с помощью таких команд, как «q» для выхода, «p» для паузы и клавиш со стрелками влево или вправо для быстрой перемотки вперед или назад.

Если вы хотите воспроизводить видео по кругу, выполните:

ffplay -loop 0 ваш_видео_файл.mp4

Параметр -loop 0 делает цикл бесконечным. Вы можете заменить 0 любым числом, чтобы задать, сколько раз он будет повторяться.

10 трюков, которые можно использовать с FFmpeg в Linux

9. Получить информацию о СМИ

Обычно получение информации о видеофайле подразумевает копание в меню медиаплеера или даже использование отдельного приложения. Но с FFmpeg получение всей этой информации — это всего лишь команда.

Чтобы получить информацию о медиа, просто запустите:

ffmpeg -i ваш_видеофайл.mp4

Всего через несколько секунд вы увидите полную информацию, включая кодеки, битрейты, частоту кадров и многое другое.

10 трюков, которые можно использовать с FFmpeg в Linux

Для получения более подробной информации о потоках видео, аудио и субтитров используйте ffprobe (инструмент FFmpeg):

ffprobe -show_streams –i ваш_видеофайл.mp4

А для более чистого вывода в формате JSON выполните:

ffprobe -v quiet -print_format json -show_format -show_streams ваш_видео_файл.mp4

10 трюков, которые можно использовать с FFmpeg в Linux

Плюс, позвольте мне сказать вам, что все эти команды помогают вам эффективно анализировать видеофайлы без их фактического воспроизведения.

8 Запишите свой экран

FFmpeg также может записывать ваш экран. Если вы хотите показать кому-то, как что-то сделать в Linux, или создать быструю демонстрацию, вам не нужны дополнительные программы для записи экрана.

Допустим, вы хотите записать весь экран на 10 секунд. Вы можете сделать это с помощью этого:

ffmpeg -f x11grab -video_size 1920×1080 -r 30 -i :0.0+0,0 -t 10 вывод.mp4

Эта команда захватывает ваш рабочий стол с разрешением 1920×1080 с частотой кадров 30 кадров в секунду. Кроме того, опция «-i :0.0+0,0» сообщает FFmpeg, какой экран записывать. Например, в нашем случае «:0.0» относится к главному экрану, а «+0,0» означает начать запись с верхнего левого угла.

Если ваша система использует Wayland вместо Xorg, вы можете иногда сталкиваться с проблемой черного экрана, так как x11grab FFmpeg лучше всего работает с Xorg. Переключение на сеанс Xorg должно решить проблему.

Если вы не знаете размер или положение вашего экрана, вы можете узнать это следующим образом:

xdpyinfo | grep размеры

Вы должны знать, что команда FFmpeg ранее записывала экран вашего рабочего стола без звука. Так что, если вы также хотите записывать звук вместе с видео, вам нужно указать устройство аудиовхода рядом с видеовходом.

Например, вы можете использовать опцию «-f alsa -i pulse» для захвата как видео, так и звука с экрана:

ffmpeg -f x11grab -video_size 1920×1080 -r 30 -i :0.0+0,0 -f alsa -i default -t 10 output.mp4

Для записи определенного окна команда FFmpeg немного сложнее, но для быстрой полноэкранной записи FFmpeg — отличный выбор. Плюс, если вы любите работать из терминала, он дает вам полный контроль над каждым аспектом процесса записи.

10 трюков, которые можно использовать с FFmpeg в Linux

7 Извлечение изображений из видео

Вы когда-нибудь хотели извлечь один кадр из видео — возможно, для миниатюры или для того, чтобы запечатлеть классный снимок? FFmpeg делает эту задачу очень простой.

Например, предположим, что вы хотите извлечь одну картинку каждую секунду из видео и сохранить их как файлы изображений. Для этого выполните:

ffmpeg -i input.mp4 -r 1 изображение-%04d.jpg

10 трюков, которые можно использовать с FFmpeg в Linux

Здесь опция «-r 1» устанавливает частоту захвата в одно изображение в секунду. Она извлекает один кадр из каждой секунды видео. Вы можете настроить это число, чтобы захватывать изображения чаще или реже. Вы также можете изменить JPG на PNG или другой формат изображения, если это необходимо.

6. Конвертируйте изображения в видео

FFmpeg может не только извлекать изображения, но и собирать серию изображений в видео. Хотите ли вы создать слайд-шоу, анимацию или покадровую съемку, FFmpeg упрощает процесс.

Перед конвертацией убедитесь, что ваши изображения названы последовательно (например, image-0001.jpg, image-0002.jpg). Теперь преобразуйте эти последовательные изображения в видео с помощью следующей команды:

ffmpeg -framerate 1 -i image-%04d.jpg -c:v libx264 -r30 output.mp4

Здесь мы устанавливаем частоту кадров на 1 кадр/с. Это означает, что если у нас есть 5 изображений и мы предпочитаем 5-секундное видео, частота кадров будет равна 1. Вы можете настроить значение частоты кадров, чтобы ускорить или замедлить видео.

Предыдущая команда преобразует изображения в видео без добавления музыки. Но что, если вы хотите включить музыку в свое видео? Запустите это, заменив «music.mp3» на нужный вам аудиофайл:

ffmpeg -framerate 1 -i image_%04d.jpg -i music.mp3 -c:v libx264 -r30 -shortest slideshow.mp4

Здесь опция -shortest делает видео таким же длинным, как и более короткий вход. Таким образом, если аудио длиннее слайд-шоу, видео будет соответствовать длине слайд-шоу.

10 трюков, которые можно использовать с FFmpeg в Linux

5 Конвертируйте видео в MP3 или GIF

Одной из самых сильных функций FFmpeg является конвертация видео в различные форматы, например, преобразование видео в MP3 или создание GIF-анимации из видео.

Чтобы извлечь аудио из видео, используйте -вн опция, которая заставляет FFmpeg отбрасывать видеопоток и конвертировать в MP3 только аудио:

ffmpeg -i вход.mp4 -vn -acodec libmp3lame выход.mp3

При необходимости вы также можете изменить output.mp3 на output.wav или другой аудиоформат.

Чтобы конвертировать видео в GIF, используйте:

ffmpeg -i sample_video.mp4 вывод.gif

Вы также можете извлечь определенные части видео и преобразовать их в GIF-файлы с помощью этой команды:

ffmpeg -ss 30.0 -t 2.1 -i sample_video.mp4 вывод.gif

Эта команда обрезает 2.1 секунды с начала видео продолжительностью 00:30 и преобразует его в GIF.

4. Добавить субтитры к фильму

Добавление субтитров к фильму может быть очень полезным, особенно при просмотре контента на другом языке. FFmpeg упрощает процесс добавления субтитров к вашим видео.

Сначала получите файл субтитров, обычно с расширением SRT. Например, если у вас есть файл субтитров (такой как subtitles.srt) и видео (input.mp4), вы можете жестко закодировать субтитры в видео, используя:

ffmpeg -i вход.mp4 -vf «subtitles=subtitles.srt» выход.mp4

Эта команда навсегда встраивает субтитры, гарантируя, что они останутся видимыми и не могут быть отключены.

Если вы предпочитаете дополнительные субтитры, которые зрители могут включать или выключать, используйте это:

ffmpeg -i вход.mp4 -i субтитры.srt -c копия -c:s mov_text выход.mp4

Эта команда сохраняет субтитры как отдельную дорожку, сохраняя исходное качество видео.

3. Перестроение индекса видео без перекодирования

Иногда видео может выглядеть глючным — оно может пропускать, зависать или препятствовать быстрой перемотке вперед или назад. Часто эта проблема возникает из-за поврежденного индекса видео. Чтобы исправить эту проблему, вам может потребоваться перестроить индекс без повторного кодирования видео.

К счастью, FFmpeg часто может восстановить индекс, не изменяя само видео. Этот процесс, известный как ремикширование, быстрый, поскольку он сохраняет исходное качество видео и звука, исправляя при этом структуру файла.

Чтобы перестроить видеоиндекс, выполните:

ffmpeg -i вход.mp4 -c копия -copyts выход.mp4

Здесь опция -c copy указывает FFmpeg копировать видео- и аудиопотоки точно такими, какие они есть, сохраняя их качество и ускоряя процесс. Опция -copyts гарантирует, что информация о времени будет скопирована правильно, что имеет решающее значение для плавного воспроизведения.

Этот подход полезен для быстрой проверки и восстановления вашего видеофайла. Однако, если проблема сохраняется, видео может быть серьезно повреждено.

2 Изменение размера видео

Изменение размера видео — одна из самых полезных функций FFmpeg. Вы можете легко настроить размеры видео для социальных сетей, мобильных экранов или оптимизации хранилища. Видео меньшего размера занимают меньше места, загружаются быстрее и работают лучше на медленных соединениях.

Чтобы масштабировать видео до определенных размеров (например, 1280×720), используйте:

ffmpeg -i вход.mp4 -vf масштаб=1280:720 выход.mp4

Если вы хотите, чтобы FFmpeg автоматически поддерживал соотношение сторон, укажите только одно измерение или используйте выражения:

ffmpeg -i вход.mp4 -vf масштаб=640:-1 выход.mp4

Это устанавливает ширину в 640 пикселей, и FFmpeg вычисляет соответствующую высоту, чтобы сохранить соотношение сторон. Однако учтите, что уменьшение масштаба может ухудшить качество, поэтому выбирайте разрешения внимательно.

1 Обрезка и кадрирование видео

Обрезка видео позволяет извлекать только необходимые разделы без потери качества. Это идеально подходит для устранения нежелательных вступлений, концовок или любых ошибок.

Например, чтобы извлечь 20-секундный сегмент, начинающийся с 10-й секунды видео, выполните:

ffmpeg -i input.mp4 -ss 00:00:10 -to 00:00:30 -c копировать output_trimmed.mp4

Здесь «-ss 00:00:10» говорит FFmpeg начать с 10-секундной отметки, а «-to 00:00:30» останавливает видео на 30 секунде. Кроме того, опция «-c copy» гарантирует, что видео и аудио будут скопированы без повторного кодирования, что значительно ускоряет процесс, сохраняя при этом исходное качество.

Обрезка удаляет ненужные края или увеличивает самую важную часть видео. Чтобы обрезать видео до 640×480 пикселей, начиная с верхнего левого угла, выполните следующее:

ffmpeg -i вход.mp4 -vf «обрезка=640:480:0:0» выход_обрезанный.mp4

Фильтр обрезки принимает четыре значения: ширину, высоту и координаты x и y, где должна начинаться обрезка. В этом случае ширина и высота устанавливаются на 640×480, а 0:0 гарантирует, что обрезка начнется с верхнего левого угла исходного видео.

10 трюков, которые можно использовать с FFmpeg в Linux

Практикуя и изучая эти приемы FFmpeg, вы можете легко повысить свою производительность и оптимизировать рабочую нагрузку. И помните — это только начало. В FFmpeg есть много вещей, которые ждут своего исследования, так что ныряйте и продолжайте экспериментировать!

Валентин Павлов/ автор статьи
Страсть Влентина к играм началась с Resident Evil, и с тех пор он не переставал играть в хоррор-игры. Пишет экспертные руководства для самых сложных игр и обзоры для самых громких релизов. Является магистром журналистики и имеет степень бакалавра лингвистики. Любимые игры: GTA 5, Silent Hill 2, Call of Duty: Modern Warfare 2, Heavy Rain, Metro 2033 и другие.
Понравилась статья? Поделиться с друзьями:
Добавить комментарий