
Хотите сделать больше с терминалом Linux? Возможно, вы не сразу совместите видео и командную строку, но с FFmpeg вы действительно можете многое сделать с видеофайлом, просто введя простую команду в терминале.
Если вы о нем не слышали, FFmpeg — это инструмент командной строки, который может обрабатывать все, что связано с медиа. Он доступен в репозиториях большинства дистрибутивов Linux, так что вам просто нужно найти и установить пакет, чтобы начать его использовать.
Если вы хотите быстро воспроизвести видео, получить какую-то информацию или выполнить крутые трюки по редактированию видео, FFmpeg вам поможет. Вот несколько полезных вещей, которые вы можете сделать с помощью FFmpeg на вашей машине Linux.
10 Воспроизведение видео
У вас уже может быть любимый видеоплеер, и это здорово. Но иногда вам просто нужен быстрый и простой способ посмотреть что-то, не открывая полноценное графическое приложение. Вы можете сделать это с помощью встроенного в FFmpeg плеера ffplay.
Например, чтобы воспроизвести видео, откройте терминал и выполните:
ffplay ваш_видео_файл.mp4

Ваше видео появится в отдельном окне, готовое к воспроизведению. Вы можете управлять им с помощью таких команд, как «q» для выхода, «p» для паузы и клавиш со стрелками влево или вправо для быстрой перемотки вперед или назад.
Если вы хотите воспроизводить видео по кругу, выполните:
ffplay -loop 0 ваш_видео_файл.mp4
Параметр -loop 0 делает цикл бесконечным. Вы можете заменить 0 любым числом, чтобы задать, сколько раз он будет повторяться.

9. Получить информацию о СМИ
Обычно получение информации о видеофайле подразумевает копание в меню медиаплеера или даже использование отдельного приложения. Но с FFmpeg получение всей этой информации — это всего лишь команда.
Чтобы получить информацию о медиа, просто запустите:
ffmpeg -i ваш_видеофайл.mp4
Всего через несколько секунд вы увидите полную информацию, включая кодеки, битрейты, частоту кадров и многое другое.

Для получения более подробной информации о потоках видео, аудио и субтитров используйте ffprobe (инструмент FFmpeg):
ffprobe -show_streams –i ваш_видеофайл.mp4
А для более чистого вывода в формате JSON выполните:
ffprobe -v quiet -print_format json -show_format -show_streams ваш_видео_файл.mp4

Плюс, позвольте мне сказать вам, что все эти команды помогают вам эффективно анализировать видеофайлы без их фактического воспроизведения.
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 — отличный выбор. Плюс, если вы любите работать из терминала, он дает вам полный контроль над каждым аспектом процесса записи.

7 Извлечение изображений из видео
Вы когда-нибудь хотели извлечь один кадр из видео — возможно, для миниатюры или для того, чтобы запечатлеть классный снимок? FFmpeg делает эту задачу очень простой.
Например, предположим, что вы хотите извлечь одну картинку каждую секунду из видео и сохранить их как файлы изображений. Для этого выполните:
ffmpeg -i input.mp4 -r 1 изображение-%04d.jpg

Здесь опция «-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 делает видео таким же длинным, как и более короткий вход. Таким образом, если аудио длиннее слайд-шоу, видео будет соответствовать длине слайд-шоу.

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 гарантирует, что обрезка начнется с верхнего левого угла исходного видео.

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