четверг, 13 сентября 2012 г.

ffmpeg - кодирование видео и аудио

Справка — ffmpeg -h

Кодирование в FLV

ffmpeg -i video.avi -ar 22050 -ab 32k -f flv -b 500k -s 640x360 -vcodec libx264 -y video.flv

возможные параметры кодирования:
-i video.avi — исходный файл видео;
-ar 22050 — частота дискретизации звука (должна быть кратна 11кГц);
-ab 32k — битрейт звука;
-ac 1 — количество каналов звука;
-f flv— формат видео на выходе;
-b 500k— битрейт видео;
-r 25 — фреймрейт видео (FPS);
-s 640x360 — размер видео в пикселях;
-ss 00:00:12:0 перекодирование начнется с 12 секунды исходного ролика
-aspect 4:3
-g 25 — плотность ключевых кадров (по ним осуществляется перемотка, чем плотнее (1- каждый кадр ключевой) — тем лучше для перемотки, но значительно вырастает размер файла), если значение равно FPS(-r), то ключевой кадр вставляется каждую секунду (так по умолчанию);
-vframes 100 — ограничение на количество кадров видео;
-vcodec libx264 - кодек для видео, очень важный параметр, влияет на качество
-y — перезаписать файл, если он уже существует;
в конце указываем имя файла, который у нас получится в результате кодирования.

Кодирование в mp4

Кодирование в mp4 можно выполнить используя кодек -vcodec libx264 или -vcodec h264

ffmpeg -i input.avi -vcodec h264 -threads 0 -r 25 -g 50 -b 500k -bt 500k -acodec mp3 -ar 44100 -ab 64k out.mp4

Кодирование в mp4 c копированием аудиопотока без перекодировки

ffmpeg -i input.avi -s 1920x1080 -r 30 -vcodec libx264 -c:a copy out.mp4

Захват кадра в JPG

ffmpeg -i video.flv -an -ss 15 -vframes 1 -s 640x480 -y -f mjpeg screen_640_480.jpg
-ss 15 — кадр будет с 15 секунды



FFmpeg кодирование видео и аудио (взято из википедии)

Кодирование в mp3 аудиофайла с битрейтом 320:

ffmpeg -i audio.ape -ab 320k audio.mp3

Кодирование в FLV

ffmpeg -i video.avi -ar 22050 -ab 32 -f flv -s 320x240 video.flv

Сделать скриншот размером 320×240 из 10-ой секунды файла video.avi:

ffmpeg -i video.avi -an -ss 00:00:10 -r 1 -vframes 1 -s 320x240 -y -f mjpeg screenshot.jpg

Сделать DVDRip из vob-файла:

ffmpeg -i snatch_1.vob -f avi -vcodec mpeg4 -b 800k -g 300 -bf 2 -acodec libmp3lame -ab 128k snatch.avi

Сделать скриншот с веб-камеры размером 640×480:

ffmpeg -f video4linux2 -s 640x480 -i /dev/video0 -f image2 snapshot.jpg 2>/dev/null

Перекодировка всех файлов .mov в каталоге в формат .avi реализуется с помощью двух bat-файлов.
Файл convert.bat (для конвертации нужно вызвать его):
for %%i IN (*.mov) DO (doConvert.bat "%%i")
pause
Файл doConvert.bat (здесь прописываются параметры перекодировки):
IF EXIST "%~d1%~p1%~n1.avi" GOTO exit
ffmpeg -i "%~d1%~p1%~n1.mov" -f avi -vcodec mpeg4 -b 3500k -g 300 -bf 2 -acodec libmp3lame -ab 128k -y "%~d1%~p1%~n1.avi"
:exit

1 комментарий: