На повестке дня были следующие проблемы:
- размер файла с фильмом
- качество картинки
Выбирал из 3-х вариантов кодеков mpeg4 (libxvid, mpeg4, h264). Качество получаемого изображения, при настройках по умолчанию, примерно одинаковое, особенно учитывая устройство просмотра и то, что в качестве исходного изображения уже был сжатый avi файл. Возможно, при налчии качественного исходного материала, можно добиться лучшей картинки, но в моем случае это не актуально.
По результатам тестов я выяснил, что при одинаковом качестве, кодек h264 выдает результат наилучший по качеству (субъективно) и самое главное, размер итогового файла на 10-15% меньше. Меня это вполне устроило, не смотря на почти двух кратный проигрыш по времени. Для себя поставил галочку, если буду торопиться - mpeg4.
Теперь в общем то переходим собственно к самому ffmpeg. Разберем мой простенький тестовый пример:
#ffmpeg -i kino.avi -vcodec h264 -acodec libfaac -ac 2 -ab 32kb -s 320x240 kino.mp4
- -i kino.avi - исходный файл
- -vcodec h264 - указывается кодек (libxvid, mpeg4)
- -acodec libfaac - кодек для звуковой дорожки
- -ac 2 - количество каналов. 2 - стерео, 1 - моно. Надо проверить - играет ли пой телефон 5.1 звук =). Если параметр не указан - берутся характеристики из исходного фильма.
- -ab 32kb - битрейт звуковой дорожки. Я осознанно зажал его в 32kb, т.к. объемного звука на динамиках телефона =) не добиться. 32kb достаточно для нормальной передачи звука и минимальных издержек на звуковую дорожку.
- -s 320x240 - размер кадра для конвертированного фильма
- kino.mp4 - готовый фильм
- -ss 150 - отступить от начала файла 150 секунд, можно указывать время hh:mm:ss
- -t 60 - конвертировать 60 секунд видео от текущей позиции
-s 360x288 -croptop 24 -cropbottom 24 -cropleft 20 -cropright 20 kino.mp4
Для оценки изменений я вырезал некоторые кадры и сравнивал, что в итоге получается, для этого опять же подошел ffmpeg:
#ffmpeg -i kino.mp4 -ss 10 -vframes 1 -an -sameq -f mjpeg kino.mp4.jpg
Опция -ss означает из какого места вырезать кадр. Указывается в секундах от начала ролика или в формате hh:mm:ss.
Вот в общем то и все =). Загоняю свои любимые фильмы в телефон.
1 комментарий:
Я для H264 и HTML5 делал так: http://plutov.by/post/html5_ffmpeg
Отправить комментарий