воскресенье, 31 августа 2014 г.

Кое-что про FFmpeg

ffmpegFFmpeg — это набор свободных библиотек с открытым исходным кодом, которые дают возможность пользователю кодировать, обрабатывать аудио-видео файлы, склеивать, извлекать звук из видео файлов, делать запись экрана и много, много других полезных вещей.
Приложения для Linux, с графическим интерфейсом, в последнее время появляются очень часто. Но проверенная временем консоль, не сдает свои позиции. Данная статья покажет всю мощь и эффективность FFmpeg.
Установим свежую версию FFmpeg командами в Терминале:
sudo apt-add-repository ppa:jon-severinsson/ffmpeg
sudo apt-get update
sudo apt-get install ffmpeg
Синтаксис работы с программой такой:
ffmpeg [[опции для входного файла][-i входной файл]]… {[опции для выходного файла] выходной файл}…
Ну а теперь самое интересное, опции и примеры.
Самые основные параметры (ключи):
-i — входящий файл
-b — битрейт видео
-ar — частота дискретизации звука в Гц
-ab — битрейт звука в кБ/c
-ac — количество аудиоканалов
-vcodec — кодек для видео
-acodec — кодек для аудио
-с:v — псевдоним для видео кодека
-c:a — псевдоним для аудио кодека
-f — формат входного/выходного файла
-s — размер выходного файла
-y — перезаписать выходной файл, если он уже присутствует в рабочейдиректории
-r — количество кадров в секунду
-ss — установка времени старта кодирования. Например: -ss 00:10:50
-t — установка продолжительность кодирования. Например: -t 00:18:20
-vn — не кодировать видео
-an — не кодировать аудио
-vol — изменение уровня громкости аудио файла, где 256=normal. Пример: -vol 256
-threads — использование многопоточности, для многоядерных CPU. Пример: -threads auto
-sameq — сохраняем видео в том же качестве
-aspect — указывает соотношение сторон выходного файла. Пример: -aspect 4:3
-pass — количество проходов во время кодирования. Пример: -pass 2
Информационные команды:
ffmpeg -h — справка программы
ffmpeg -h full - полная справка программы
ffmpeg -codecs -информация по возможным кодекам в FFmpeg
ffmpeg -filters -информация по возможным фильтрам в FFmpeg
ffmpeg -formats — информация по поддерживаемым форматам и кодекам
ffmpeg -version — версия программы и библиотек
Рабочие команды на разные случаи жизни:
Узнаем информацию про файл:
ffmpeg -i input.avi
Для извлечения изображений из видео (1 кадр с каждой секунды видео и разрешением 160×128):
ffmpeg -i input.avi -r 1 -s 160x128 -f image2 images%04d.png
либо так:
ffmpeg -i video.mpg image%d.jpg
Поддерживаются следующие графические форматы: PGM, PPM, PAM, PGMYUV, JPEG, GIF, PNG, TIFF, SGI.
Кодирование из .avi в .3gp для старых «мобилок»:
ffmpeg -i input.avi -s 176x144 -vcodec h263 -vb 250k -acodec mp3 -ac 1 -ar 8000 -r 15 -ab 64k -y output.3gp
Входной файл input.avi, разрешение выходного файла должен быть 176×144, используется видеокодек h263, видео битрейт — 250k, аудиокодек — mp3, количество аудиоканалов — 1 (моно), частота дискретизации звука равна 8000, частота кадров — 15, аудио битрейт равен 64k, выходной файл output.3gp
либо такая команда:
ffmpeg -i input.avi -s 176x144 -r 15 -vb 120k -acodec libamr_nb -ar 8000 -ac 1 -ab 12.2k output.3gp
Для более новых «мобилок» команда будет следующей:
ffmpeg -i input.avi -s 320x240 -vcodec mpeg4 -r 15 -acodec libfaac -ac 1 -ar 22000 -ab 56k output.3gp
Кодирование .3gp в .avi:
ffmpeg -i input.3gp -f avi -vcodec xvid -acodec mp3 -ar 22050 output.avi
Кодирование .mov в .flv
ffmpeg -i input.mov -s 640x360 -b 1700k -vcodec flv -ar 44100 output.flv
Кодирование видео для Apple iPod/iPhone:
ffmpeg -i input.avi input -acodec aac -ab 128kb -vcodec mpeg4 -b 1200kb -mbd 2 -flags +4mv+trell -aic 2 -cmp 2 -subcmp 2 -s 320x180 -title X output.mp4
Извлечение звука из видео в формате MP3:
ffmpeg -i input.avi -vn -ar 44100 -ac 2 -ab 192 -f mp3 output_sound.mp3
Кодирование .avi в .mpg:
ffmpeg -i input.avi output.mpg
Кодирование .wav в .mp3:
ffmpeg -i input.wav -vn -ar 44100 -ac 2 -ab 192 -f mp3 output.mp3
Кодирование .mpg в .avi:
ffmpeg -i input.mpg output.avi
Кодирование .avi-файла в несжатый анимированный .gif:
ffmpeg -i input.avi output.gif
Микширование аудио и видео файлов в один:
ffmpeg -i input.wav -i input.avi output.mpg
Кодирование .avi в .flv:
ffmpeg -i input.avi -ab 56 -ar 44100 -b 200 -r 15 -s 320x240 -f flv output.flv
Кодирование Ogg Theora в Mpeg dvd:
ffmpeg -i input.ogm -s 720x576 -vcodec mpeg2video -acodec mp3 output.mpg
Создаем скриншот из видео файла с точно указанным временем:
ffmpeg -i input.flv -r 1 -ss 00:00:13.750 -vframes 1 -t 1 output.jpg
Запись видео с web-камеры:
ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 output.mpg
Удалем звук из видео файла:
ffmpeg -i input.mp4 -an -vcodec copy output.mp4

Комментариев нет: