2009 09/11

Готовим видео для публикации на сайте

ffmpeg-video-publishИтак, после того как мы установили ffmpeg, мы приступаем к освоению комманд. Базовый формат командной строки выглядит вот так:
ffmpeg [input options] -i [input file] [output options] [output file], где

  • input options – обычно обязательная информация, которая по каким-то причинам отсутствует, например, в случае с последовательностью графических файлов – это может быть frame rate, или стартовая позиция.
  • output options – audio и video фильтры, кодеки, битрейт, количество аудио-каналов, frame rate, формат контейнера и т. д.

Но, когда мы используем x264, количество переменных существенно возрастает.

Необходимо определиться с размером видео, frame rate и соотношением сторон. Используйте в качестве справочной информации эти таблицы. Кроме того, если вы установили ffmpeg следуя данной инструкции, вам доступны libx264 ffmpeg presets. Вы можете просмотреть их запустив Terminal и набрав там 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

-i‘ – source file (в нашем случае мы используем batch-конструкцию, для перекодирования очереди .avi-файлов;
-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 со вторыми параметрами; завершить исполнение

View Comments

  • The post about leisure is quiet good. Reduce our work pressure, improve our life mood . I like it very much.I will support it often. These days I want to buy something from these websitesXXXXXX,but I don’t know how to do.I hope you can help me.Thank you very much! Nike Zoom Blur Low

Добавить комментарий

blog comments powered by Disqus


copyright 2008-2010 MacGuide