За кілька останніх років рівень програмного забезпечення піднявся настільки, що з його допомогою навіть без особливих знань ти можеш займатися будь-чим: писати музику, знімати та монтажувати відео, проектувати 3D, створювати бази даних і т. д. І це все за неймовірно короткий час у неймовірно зручних додатках, у яких все "під руками". Звичайно, що за весь цей корисний софт переважно завжди доводиться платити немалі суми.

Але якщо ти читаєш цей блоґ, значить уже знаєш, що я завжди стараюся підказати якусь програмку, яка робить неймовірні речі, але коштує копійки або й зовсім безкоштовна. Так, сьогодні мова піде про FFmpeg – консольну програму з відкритим джерельним кодом, яка, незважаючи на відсутність будь-якого графічного інтерфейсу (це не так – є додатковий софт, що надає графічні оболонки для FFmpeg, і я про нього вже писав), має просто колосальні можливості для роботи із медіа, при цьому будучи абсолютно безкоштовною.

Інструкція із встановлення FFmpeg у Windows та Linux знаходиться внизу статті, а наразі поглянемо на можливості програми.

Можливості FFmpeg

Із фрази "консольна програма", напевно, вже зрозуміло, що всі операції програма виконує в командному рядку Windows або терміналі Linux. Пропоную тобі перелік найпростіших та найпотрібніших команд.

Конвертація відео

Просте конвертування відео з одного формату в інший:

ffmpeg -i originial_file.mov converted_file.mp4

Конвертувати із заданням параметрів конвертації (відео та аудіо кодеки). Досить хороше стиснення розміру файлу без особливих втрат якості, сам постійно використовую перед завантаженням відео в YouTube – якщо цього не зробити, сервіс сам стисне файл, але при цьому втрата якості буде значно вищою:

ffmpeg -i originial_file.mov -vcodec h264 -acodec aac converted_file.mp4

Змінити контейнер (розширення) відео без перекодування (дуже швидко):

ffmpeg -i originial_file.mov -vcodec copy -acodec copy converted_file.mp4

Стиснути відео під заданий розмір:

ffmpeg -i originial_file.mov -fs 1.5G converted_file.mp4

Конвертація відео в аудіо

Витягти аудіодоріжку з відео:

ffmpeg -i video.mp4 sound.mp3

Конвертація відео в зображення

Перетворити відео в ряд зображень:

ffmpeg -i video.mp4 image%d.webp

В результаті виконання команди вийде задана кількість зображень. Змінна %d додає порядковий номер до назви зображення. Тобто якщо в тебе відео на 10 секунд із 30 кадрами в секунду, то в результаті виконання команди буде створено 300 зображень із назвами image1.webp, image2.webp, image3.webp ... image300.webp.

Якщо ж ти хочеш витягти картинки з частотою, наприклад, по 2 кадри за секунду, задавай отаку команду:

ffmpeg -i video.mp4 -vf fps=2 image%d.webp

Або 1 кадр кожних 10 секунд:

ffmpeg -i video.mp4 -vf fps=1/10 image%d.webp

Обрізка відео

Обрізати початок відео, наприклад, з десятої секунди, можна отак:

ffmpeg -i originial_file.mov -ss 00:00:10 converted_file.mp4

А для вирізання уривка із середини відео задаємо початок та тривалість відеоуривка:

ffmpeg -i originial_file.mov -ss 00:00:10 -t 00:20:00 converted_file.mp4

Дана команда видасть відеоуривок тривалістю 20 хв починаючи з десятої секунди.

Зміна роздільної здатності відео

Уяви, що ти маєш FullHD відео з роздільною здатністю 1920x1080 пікселів, а тобі треба HD-якість – 1280x720 пікселів. Немає нічого простішого:

ffmpeg -i originial_file.mov -vf scale=1280x720 converted_file.mp4

Ще багато різних цікавих функцій може виконувати FFmpeg, та я так і сказав на початку – тут є перелік лише найпотрібніших та найкорисніших функцій. Якщо тобі стало цікаво, можеш погортати офіційну документацію додатка 😉

Встановлення FFmpeg

Windows

Для встановлення FFmpeg у Windows потрібно звантажити інсталяційний файл звідси:

Звантаження FFmpeg для Windows

Звантаження FFmpeg для Windows

Теку з архіву потрібно перейменувати в ffmpeg та помістити в корінь диска C:

Після цього відкрити командний рядок Windows від імені адміністратора та виконати в ньому команду:

setx /m PATH "C:\ffmpeg\bin;%PATH%"

Linux

В переважній більшості дистрибутивів Linux уже є встановлений пакунок ffmpeg, якщо ж ні, то для встановлення вистачає однієї команди в терміналі.

В Debian, Ubuntu та інших схожих дистрибутивах:

sudo apt install ffmpeg

Arch Linux, Manjaro:

sudo pacman -S ffmpeg

openSUSE:

sudo zypper install ffmpeg

Fedora:

У Fedora потрібно увімкнути додаткові репозиторії:

sudo dnf -y install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf -y install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

А потім встановити FFmpeg так само, як в інших дистрибутивах:

sudo dnf install ffmpeg

Solus:

sudo eopkg install ffmpeg

Висновок

Отже, ffmpeg — надзвичайно корисна програма, яка дозволяє виконувати безліч функцій в одному рядку коду. Ти можеш вибирати серед великої кількості інших програм, які виконують лише деякі з вищеперелічених функцій або коштують немалі гроші, а можеш спробувати ці функції безкоштовно і в одному невеличкому додатку, встановивши утиліту ffmpeg.