OS Linux

FFmpeg - конвертация видеофайлов

FFmpeg - конвертация видеофайлов

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

Запись

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

ffmpeg -f x11grab -y -r 30 -s 1920x1080 -i :0.0 -vcodec huffyuv out.avi

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

Перекодирование

Благодаря Ffmpeg мы также можем перекодировать наши медиа файлы и даже персонально указывать кодеки, которые мы хотим получить. Допустим, возьмем наш записанный файл и с помощью команды выведем метаданные нашего файла. Компьютер ответит нам форматом, размером, количеством Fps, битрейтом и кодеками. Например, мы захотим перевести видеозапись в формат mp4. Даём команду:

ffmpeg -i out.avi -c:v vp9 -b:v 100K newout.mp4

-i - источник, в данном случае это видео out.avi. затем ключ -c:v, что означает кодек видео, и пишем желаемый кодек, -b:v означает битрейт видео, и завершаем команду названием будущего файла. Запускаем и видим, что начался процесс переконвертации. Сколько времени он займет, зависит от мощности вашего компьютера, размера и качества видео. По окончанию этого действия в рабочей директории мы обнаруживаем выходной файл, проверяем и видим, что мы получили то, что и хотели.

Спецэффекты

Помимо вышеприведенных функций, Ffmpeg можно использовать и как видеоредактор. К примеру, у вас есть видео, ориентированное на смартфоны с соотношением 9:16. Однако чтобы оно красиво смотрелось на десктопах или для загрузки на Youtube, то в идеале нам добавить какой-нибудь фон, оптимизирующий итоговый файл пропорцииям 16:9. Для этого пишем команду Ffmpeg, указываем наш файл в качестве источника, затем записываем ключ и указываем имя выходного файла.

ffmpeg -i newout.mp4 -lavfi '[0:v]scale=ih*16/9:-1,boxblur=luma_radius=(h\,w)/20:luma_power=1:chroma_radius=min(cw\,ch)/20:chroma_power=1[bg][0:v]overlay=(W-w)/2:(H-h)/2,crop=h=iw*9/16' -vb 800K newout-16x9.mp4

Запускаем и ждем несколько минут. По окончании данного процесса находим в нашей рабочей директории итоговый файл, включаем видео и видим, что произошло. Настоящая магия! Если коротко, что сделал Ffmpeg? Он создал вторую видео дорожку и поместил туда наш исходный файл. Растянул до необходимых нам размеров по заданной пропорции 16:9 в той же пропорции, что и экраны большинства современных десктопов. При этом, как вы можете наблюдать, на дорожке уже наложен эффект размытия, но поверх всего этого мы можем видеть наш основной файл. Самое крутое, что все эти действия просто умещается в одну команду. И стоит заметить, что это лишь один эффект как пример, на что способен Ffmpeg. Формально это позволяет нам программировать весь процесс видеомонтажа для полной его автоматизации.

Обьединение

Допустим, у нас есть несколько видео, которые мы создавали ранее. И, к примеру, у нас есть желание создать из этих нескольких видео одно. Это также легко сделать при помощи Ffmpeg. Все, что нам нужно - это создать файл list.txt со списком видео, которые мы хотим объединить. примерно подобного содержания:

file '/home/user/video/newout.mp4'
file '/home/user/video/newout-16x9.mp4'

Далее пишем команду Ffmpeg на конкатенацию и в качестве источника указываем наш список файлов, а полученные данные записываем в итоговый файл.

ffmpeg -f concat -safe 0 -i list.txt -c copy union.mp4

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

Навигация

XRandR: Точная настройка мониторов

« Предыдущая статья

OS с сертификатом от ФСТЭК

Следующая статья »