Тема: Конвертирование видео с максимальным качеством.
На днях возникла задача посмотреть видео с телефона на плазменной 50-дюймовой панели. И поскольку, большинство видео у меня на телефоне были среднего разрешения (вроде 512х288, 720х304 и тп) и на маленьких экранах (от экрана телефона до ТВ 22 дюйма) смотрелись нормально, то на 50 дюймах уже было очень некомфортно в плане качества.
Поэтому решил некоторые видео перекодировать в 800х480, чтобы достичь максимального качества, и при этом, конечно, нужно было, чтобы видео не сильно нагружало телефон и игралось легко и непринужденно.
Перерыл пол интернета, нашел массу программ, скриптов и пресетов, но все они не давали результат. Понятно, что всё это лишь вопрос правильного фронтенда для mencoder'а или ffmpeg'а, но не так-то легко оказалось такой натйи. К примеру, есть симпатичная программа Arista Transcoder, в которой уже есть пресеты для N900, но она давала рваный звук и побороть я это не смог.
В итоге, на вики-страничке Video Encoding for Maemo нашлась интересная программа с несколько неблагозвучным названием Handbrake. Программа работает под Linux, Windows и Mac, есть репозитории для Ubuntu. Поддерживаются и GUI, и command-line интерфейсы.
Поигравшись с настройками, создал вот такой пресет для неё, которые для меня лично работает идеально - очень быстро конвертирует HD-видео, дает отличное качество, и видео проигрывается на n900 штатным плеером очень шустро и без каких-либо намеков на то, что это максимальное родное разрешение. Видеоролики скачанные с ютьюба (FLV 480) вообще перекодируются в считанные секунды.
Ещё раз ссылка на пресет: http://dl.dropbox.com/u/9311656/N900.plis
Нужно добавить его в программе командой Import.
На всякий случай размещу содержимое пресета тут, вдруг в будущем ссылка пропадет.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>AudioList</key>
<array>
<dict>
<key>AudioBitrate</key>
<string>160</string>
<key>AudioEncoder</key>
<string>AAC (faac)</string>
<key>AudioEncoderActual</key>
<string>faac</string>
<key>AudioMixdown</key>
<string>Stereo</string>
<key>AudioSamplerate</key>
<string>Same as source</string>
<key>AudioTrack</key>
<integer>1</integer>
<key>AudioTrackDRCSlider</key>
<real>0</real>
<key>AudioTrackDescription</key>
<string>English (AAC) (2.0 ch)</string>
</dict>
</array>
<key>ChapterMarkers</key>
<false />
<key>Default</key>
<false />
<key>FileFormat</key>
<string>MP4 file</string>
<key>Folder</key>
<false />
<key>Mp4HttpOptimize</key>
<true />
<key>Mp4LargeFile</key>
<false />
<key>Mp4iPodCompatible</key>
<false />
<key>PictureAutoCrop</key>
<true />
<key>PictureBottomCrop</key>
<integer>0</integer>
<key>PictureDeblock</key>
<integer>4</integer>
<key>PictureDecomb</key>
<integer>0</integer>
<key>PictureDecombCustom</key>
<string></string>
<key>PictureDecombDeinterlace</key>
<true />
<key>PictureDeinterlace</key>
<integer>0</integer>
<key>PictureDeinterlaceCustom</key>
<string></string>
<key>PictureDenoise</key>
<integer>0</integer>
<key>PictureDenoiseCustom</key>
<string></string>
<key>PictureDetelecine</key>
<integer>0</integer>
<key>PictureDetelecineCustom</key>
<string></string>
<key>PictureHeight</key>
<integer>480</integer>
<key>PictureKeepRatio</key>
<true />
<key>PictureLeftCrop</key>
<integer>0</integer>
<key>PictureLooseCrop</key>
<true />
<key>PictureModulus</key>
<string>2</string>
<key>PicturePAR</key>
<string>0</string>
<key>PicturePARHeight</key>
<integer>1</integer>
<key>PicturePARWidth</key>
<integer>1</integer>
<key>PictureRightCrop</key>
<integer>0</integer>
<key>PictureTopCrop</key>
<integer>0</integer>
<key>PictureWidth</key>
<integer>854</integer>
<key>PresetBuildNumber</key>
<integer>2011043000</integer>
<key>PresetDescription</key>
<string>HandBrake's normal, default settings.</string>
<key>PresetName</key>
<string>N900</string>
<key>SubtitleList</key>
<array>
</array>
<key>Type</key>
<integer>1</integer>
<key>UsesPictureFilters</key>
<integer>1</integer>
<key>UsesPictureSettings</key>
<integer>1</integer>
<key>VideoAvgBitrate</key>
<integer>1500</integer>
<key>VideoEncoder</key>
<string>MPEG-4 (FFmpeg)</string>
<key>VideoFramerate</key>
<string>Same as source</string>
<key>VideoFrameratePFR</key>
<false />
<key>VideoGrayScale</key>
<false />
<key>VideoQualitySlider</key>
<real>20</real>
<key>VideoQualityType</key>
<integer>1</integer>
<key>VideoTargetSize</key>
<integer>700</integer>
<key>VideoTurboTwoPass</key>
<false />
<key>VideoTwoPass</key>
<false />
<key>anamorphic</key>
<true />
<key>par_height</key>
<integer>0</integer>
<key>par_width</key>
<integer>0</integer>
<key>x264Option</key>
<string>ref=2:bframes=2:subme=6:mixed-refs=0:weightb=0:8x8dct=0:trellis=0</string>
</dict>
</array>
</plist>
Возможно это еще не оптимальный вариант, но пока что лучший из опробованных. На плазменной панели видео выглядит отлично, даже с двух метров. С 4м даже не сразу можно понять - 720p это или нет
Если у кого есть настройки для других программ, включая просто эмпирически подобранные и протестированные параметры mencoder - добавляйте сюда
Быть мрачным и непонятным очень просто. Охрененно трудно быть добрым и ясным. (с) Стивен Содеберг.