Blog — by Andrii Dykhlin

Конвертація медіафайлів

Наше життя вже важко уявити без мультимедійного наповнення. З приходом високошвидкісного інтернету прийшла можливість відтворення потокового відео та прослуховування музики навіть за допомогою стільникового телефону.

Проте люди не завжди можуть бути в мережі, тому часто використовують й "офлайн" файли. Завантаженні чи куплені - це питання совісті та переконань, ми не будемо про це. Зараз ми подивимось як можна файли конвертувати.

Скажімо, є у вас файл. Якесь відео зі співаючими кошенятками. Вам конче захотілося пісню цих істот встановити собі на рінгтон. Або ж є запис концерту, а вам непотрібно дивитися на фанатів, співаків та інших. Або ж просто треба перетворити якийсь відеофайл на аудіокнигу. У кожному з цих випадків вам допоможе потужна команда ffmpeg. Для початку її необхідно встановити. В ОС на базі Debian:

Код:

$ sudo apt-get install ffmpeg

Якщо ви користуєтесь Ubuntu, то це, більш ймовірно, буде aptitude.

Все, програму встановлено. Базово вона працює дуже просто. Без додаткових параметрів для ґіків. Просто та логічно:

Код:

$ ffmpeg -i input_file.mp4 output_file.mp3

Конвертувати можна все у розумних межах. mp4<->avi, mp3<->mp4, mp3<->flac, avi<->avi (наприклад, змінити бітрейт чи fps).

І команда почне працювати. Треба буде лише трошки зачекати. Замість input_ та output_file можуть стояти ваші варіанти. Це логічно, проте сказати все одно треба. Також можна вказувати повний шлях до файлу. Необхідні файли не мають обов'язково бути у поточній робочій директорії.

А її, до речі, можна перевірити наступною командою:

Код:

$ pwd

Отже, визначились з тим, як конвертувати відео у аудіо. Якщо замінити output_file.mp3 на output_file.avi - буде відео. Так, це дуже логічно.

Hint: якщо ваш вхідний файл досить довгий, то натисніть TAB після введення кількох літер. Якщо ви хочете таку саму назву для вихідного файлу, то можете знову натиснути TAB після введення кількох літер, замінивши лише розширення вихідного файлу.

Якщо ж ви хочете змінити своєму відео показник кількості кадрів на секунду, то у цьому нема нічого складного:

Код:

$ ffmpeg -i input_file.avi -r 24 output_file.avi

Як ми бачимо, майже нічого не змінилося. Тільки формат вихідного файлу (бо для аудіо кількість кадрів на секунду не дуже важлива) і додали параметр -r. Після нього вказується число, яка й задасть кількість FPS (frames per second) для вихідного файлу.

Так само можна задавати бітрейт (бітову швидкість):

Код:

$ ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi

Детальніше про бітрейт можна почитати на Вікіпедії.

У цій команді ми задаємо бітрейт 64 кбіт/с за допомогою конструкції -b:v 64k. Параметр -bufsize допомагає точніше та краще визначити середній бітрейт та визначити чи співпадає він із заданим у команді.

Якщо ви хочете розбити файл (конвертуєте чи ні - це не так і важливо), то вам може допомогти наступна команда:

Код:

$ ffmpeg -i input_file.avi -ss 0 -t 600 output_file_1.avi

Числа вказуються у секундах. Можна один shell-скрипт, який виконає всі команди разом (якщо треба весь файл розбити. Але переконайтесь, що назви вихідних файлів різні. Якщо ми розбиваємо файл на кілька частин без конвертації, то краще перед назвою вихідного файлу додати наступні параметри:

Код:

-vcodec copy -acodec copy

-vcodec - кодек для відео, -acodec - для аудіо. А copy показує команді, що кодеки слід копіювати з вихідного файлу.

Власне, на цьому все. Більш детальні, глибокі та професійні налаштування можна знайти на офіційному сайті розробника. Базових має вистачити для простих маніпуляцій: конвертація файлів, "витягування" аудіодорожки, розбиття файлів.




Прокоментуйте!