Итак, после того как мы установили ffmpeg, мы приступаем к освоению комманд. Базовый формат командной строки выглядит вот так:
ffmpeg [input options] -i [input file] [output options] [output file], где
- input options – обычно обязательная информация, которая по каким-то причинам отсутствует, например, в случае с последовательностью графических файлов – это может быть frame rate, или стартовая позиция.
- output options – audio и video фильтры, кодеки, битрейт, количество аудио-каналов, frame rate, формат контейнера и т. д.
Но, когда мы используем x264, количество переменных существенно возрастает.
cd ~/.ffmpegТеперь мы можем перейти непосредственно к перекодированию видео. Для создания правильной комманды, я рекоммендую, либо воспользоваться генератором ffmpeg команд от Rodrigo Polo, либо нижеприведенными командами:
Hiqh Quality 640×352 – формат .flv, для публикации на сайте
for f in *.avi; do ffmpeg -y -threads 8 -i $f -s 640x352 -aspect 16:9 -r 24 -b 360k -bt 416k -vcodec libx264 -pass 1 -vpre fastfirstpass -an $f.flv && ffmpeg -y -threads 8 -i $f -s 640x352 -aspect 16:9 -r 24 -b 360k -bt 416k -vcodec libx264 -pass 2 -vpre hq -acodec libfaac -ac 2 -ar 44100 -ab 64k $f.flv; done
HD 720p (2mbps) – формат .flv, для публикации на сайте
for f in *.avi; do ffmpeg -y -threads 8 -i $f -s 1280x720 -aspect 16:9 -r 24 -b 1536k -bt 1792k -vcodec libx264 -pass 1 -vpre fastfirstpass -an $f.flv && ffmpeg -y -threads 8 -i $f -s 1280x720 -aspect 16:9 -r 24 -b 1536k -bt 1792k -vcodec libx264 -pass 2 -vpre hq -acodec libfaac -ac 2 -ar 44100 -ab 128k $f.flv; done
iPhone 480×272 – формат .mp4
for f in *.avi; do ffmpeg -y -threads 8 -i $f -s 480x272 -aspect 16:9 -r 24 -vcodec libx264 -pass 1 -b 360k -bt 416k -vpre iphone -f mp4 -an $f.mp4 && ffmpeg -y -threads 8 -i $f -s 480x272 -aspect 16:9 -r 24 -vcodec libx264 -pass 2 -b 360k -bt 416k -vpre iphone -f mp4 -acodec libfaac -ac 2 -ar 44100 -ab 64k $f.mp4; done
‘-threads‘ – количество ядер компьютера;
‘-vpre‘ отвечает за выбор preset;
‘-y‘ – overwrite;
‘-s‘ – размер видео;
‘-aspect‘ – соотношение сторон;
‘-vcodec‘ – кодек (взят libx254);
‘-pass 1‘, и ‘-pass 2‘ – используем 2 прохода кодирования, для получения лучшего качества;
‘-r‘ – frame rate;
‘-b‘ – video bitrate;
‘-bt‘ – максимальная bitrate чувствительность – bitrate tolerance (максимально допустимый bitrate);
‘-f‘ – формат контейнера;
‘-acodec‘ – аудио-кодек (у нас faac);
‘-an‘ – блокировка звука, для ускорения кодирования мы не кодируем аудио в pass 1;
‘-ac‘ – количество каналов звука;
‘-ar‘ – частота звука в герцах;
‘-ab‘ – audio bitrate.
Остается пояснить конструкцию комманды
for f in *.РАСШИРЕНИЕ_ФАЙЛОВ; do ffmpeg -i $f -pass 1 ПАРАМЕТРЫ_ДЛЯ_PASS_1 ПРОМЕЖУТОЧНЫЙ_ФАЙЛ && ffmpeg -i $f ПАРАМЕТРЫ_ДЛЯ_PASS_2 КОНЕЧНЫЙ_ФАЙЛ; done
или
для всех переменны f в *.avi файлах; использовать ffmpeg с первыми параметрами и потом ffmpeg со вторыми параметрами; завершить исполнение