|
|
Строка 1: |
Строка 1: |
− | [[Category:Пользователи]] | + | [[Category:Users]] |
− | | + | |
− | Кодирование видеосигнала вручную
| + | |
− | Для получения информации об инструментах автоматической перекодировки видеосигнала обратитесь в статью Кодирование видео сигнала.
| + | |
− | | + | |
− | === ===
| + | |
− | | + | |
− | Mencoder – один из инструментов, который можно использовать для кодировки видеосигнала. Он прилагается к mplayer в операционных системах Linux. Всегда начинайте с видео наиболее высокого качества и убедитесь, что у него хорошая синхронизация аудио и видео рядов до начала кодировки, просмотрев его на компьютере. Убедитесь, что частота кадров в оригинале больше или равна той частоте, которая должна быть сгенерирована.
| + | |
− | | + | |
− | Рекомендуемый способ запускать mencoder – через кодировщик планшета. Можно, тем не менее, попытаться запустить mencoder напрямую и поэкспериментировать с опциями. Тем не менее, будьте осторожнее, когда задается частота кадров на выходе. Приведенные далее команды не привели к хорошим результатам. Напротив, получилась десинхронизация аудио и видео рядов и помехи, вызванные изменениями частоты кадров. В силу этого предлагается использовать вышеупомянутые основные сценарии с некоторыми изменениями.
| + | |
− | | + | |
− | mencoder infile.avi -oac mp3lame -ovc lavc \
| + | |
− | -lavcopts vcodec=mpeg4 -vf scale=352:208 -ffourcc DIVX \
| + | |
− | -ofps 15 -o outfile.avi
| + | |
− | | + | |
− | В результате будет сгенерирован файл со скоростью воспроизведения 15 кадр\с и разрешением352x208 в формате avi.
| + | |
− | | + | |
− | Следующая командная строка инструмента mencoder уменьшит видео:
| + | |
− | | + | |
− | mencoder infile.avi -oac mp3lame -ovc lavc \
| + | |
− | -lavcopts vcodec=mpeg4:mbd=1:vbitrate=300 -vf scale=352:208 \
| + | |
− | -ffourcc DIVX -ofps 15 -o outfile.avi
| + | |
− | | + | |
− | mplayer прекрасно воспроизведет видео со скоростью 30 кадр\с. В результате использования следующей команды получается приемлемое видео без проблем с синхронизацией аудио видео рядов.
| + | |
− | | + | |
− | mencoder infile.avi -oac mp3lame -ovc lavc \
| + | |
− | -lavcopts vcodec=mpeg4:mbd=1:vbitrate=300 -vf scale=352:208 \
| + | |
− | -ffourcc DIVX -o outfile.avi
| + | |
− | | + | |
− | Предложенная выше команда была протестирована на исходным файле с воспроизведением 30 кадр\с. В результате создается видео, воспроизводимое со скоростью 30 кадр\с. Оно прекрасно воспроизводится на устройстве oN810.
| + | |
− | | + | |
− | Чтобы сделать видео меньше, можно понизить качество аудио сигнала до 64 Кбит/с (для потока видеосигнала емкостью 300 Кбит конвертирование аудио сигнала до 64 Кбит с 128 Кбит экономит в сумме приблизительно 20%. Обратите внимание, что для фильмов с более низкой скоростью передачи битов процент значительно выше):
| + | |
− | | + | |
− | mencoder infile.avi -oac mp3lame -lameopts abr:br=64 -ovc lavc \
| + | |
− | -lavcopts vcodec=mpeg4:mbd=1:vbitrate=300 -vf scale=352:208 \
| + | |
− | -ffourcc DIVX -ofps 15 -o outfile.avi
| + | |
− | | + | |
− | Разница заключается в способе обнаружения блока (mbd=1) и ограничения скорости передачи битов.
| + | |
− | | + | |
− | За более подробной информацией об опциях выполните man mencoder.
| + | |
− | | + | |
− | == ffmpeg ==
| + | |
− | | + | |
− | Существует возможность преобразовывать видео при помощи инструмента ffmpeg. В видео будет поврежден заголовок fourcc, что можно исправить при помощи инструмента avifix в transcode или используя -vtag DIVX в командной строке ffmpeg:
| + | |
− | | + | |
− | ffmpeg -i infile -vcodec mpeg4 -acodec mp3 -s 176:144 -b 200 -pass 1 outfile.avi
| + | |
− | ffmpeg -i infile -vcodec mpeg4 -acodec mp3 -s 176:144 -b 200 -pass 2 outfile.avi
| + | |
− | avifix -i outfile.avi -F "divx"
| + | |
− | | + | |
− | Или прямо (без avifix):
| + | |
− | | + | |
− | ffmpeg -i infile -vcodec mpeg4 -acodec mp3 -vtag DIVX -s 176:144 -b 200 -pass 1 outfile.avi
| + | |
− | ffmpeg -i infile -vcodec mpeg4 -acodec mp3 -vtag DIVX -s 176:144 -b 200 -pass 2 outfile.avi
| + | |
− | | + | |
− | === transcode ===
| + | |
− | | + | |
− | Можно конвертировать видео в формате DVD при помощи инструмента transcode, используя следующую командную строку:
| + | |
− | | + | |
− | transcode -i /dev/dvd \
| + | |
− | -x dvd \
| + | |
− | -T 1,1-16 \
| + | |
− | -a 0
| + | |
− | -j 48,0,48,0 \
| + | |
− | -Z 240x160 \
| + | |
− | -y xvid \
| + | |
− | -V -w 300 \
| + | |
− | -N 0x55 \
| + | |
− | -b 48 \
| + | |
− | -o output.avi
| + | |
− | | + | |
− | В результате перекодируются разделы с 1 по 16 первого заголовка. Разрешение формата DVD – 720x576, но используется только 720x480, поэтому данная команда вырезает оставшиеся 96 черных пикселей при помощи опции -j. Размер на выходе – 240x160. Скорость передачи битов видео – 300 кадр\с, аудио – 48 кадр\с. Кодек xvid (символьная ссылка на xvid2 в некоторых системах) приводит к очень хорошим результатам с настройками по умолчанию. Не используйте видео в формате mpeg4, для его декодирования потребляется слишком много ресурсов процессора, что приводит к загрузке артефактов при воспроизведении на устройствах Nokia, даже если на компьютере все выглядит прекрасно.
| + | |
− | | + | |
− | Исправьте FOURCC при помощи
| + | |
− | | + | |
− | avifix -i output.avi -F DIVX
| + | |
− | | + | |
− | Полученный в результате файл в формате avi имеет размер 114 Mб, длительность 45 минут и скорость 25 кадр\с. Все показатели можно, безусловно, улучшить, настроив опции xvid, используя ./xvid2.cfg.
| + | |
− | | + | |
− | Ниже предлагается еще один пример, в котором видео в формате DVD имеет разрешение 720x576, которое полностью используется для изображения с соотношением сторон 4:3. Размер на выходе – 256x192 (4x64, 3x64). В данном примере используется кодек xvid4. Обратите внимание, не нужно использовать B-кадр, как видится, устройства 770/N800 не могут его обрабатывать. Его можно отключить, установив max_bframes=0 в xvid4.cfg. Это легко выполняется при помощи инструмента xvid4conf. После этого следующая командная срока выполнит все остальное:
| + | |
− | | + | |
− | transcode -i /dev/dvd \
| + | |
− | -x dvd \
| + | |
− | -T 1,-1 \
| + | |
− | -a 0
| + | |
− | -Z 256x192 \
| + | |
− | -y xvid4 \
| + | |
− | -V -w 300 \
| + | |
− | -N 0x55 \
| + | |
− | -b 48 \
| + | |
− | -o output.avi
| + | |
− | | + | |
− | Опция -T 1,-1 конвертирует весь первый заголовок (все разделы). Можно попробовать более низкую скорость передачи битов видео, регулируя параметр -w (300 Кбит/с в данном примере). Не забудьте исправить FOURCC при помощи команды avifix (как в приведенном выше примере). Данное видео очень хорошего качества, оно прекрасно работает при скорости воспроизведения 25 кадр\с.
| + | |
− | | + | |
− | Дополнительная информация о программах transcode и IT 2006 beta:
| + | |
− | | + | |
− | Рекомендуется использовать следующую командную строку:
| + | |
− | | + | |
− | transcode -i /dev/dvd \
| + | |
− | -x dvd \
| + | |
− | -T 1,-1 \
| + | |
− | -a 0
| + | |
− | -Z 352x208 \
| + | |
− | --keep_asr \
| + | |
− | -y ffmpeg \
| + | |
− | -F mpeg4 \
| + | |
− | -w 300 \
| + | |
− | -N 0x55 \
| + | |
− | -b 48 \
| + | |
− | -R 1 \
| + | |
− | -o output.avi
| + | |
− | | + | |
− | и
| + | |
− | transcode -i /dev/dvd \
| + | |
− | -x dvd \
| + | |
− | -T 1,-1 \
| + | |
− | -a 0
| + | |
− | -Z 352x208 \
| + | |
− | --keep_asr \
| + | |
− | -y ffmpeg \
| + | |
− | -F mpeg4 \
| + | |
− | -w 300 \
| + | |
− | -N 0x55 \
| + | |
− | -b 48 \
| + | |
− | -R 2 \
| + | |
− | -o output.avi
| + | |
− | | + | |
− | Используя ffmpeg, не нужно исправлять FOURCC. -R x используется для выполнения кодировки в два прохода. --keep_asr изменит размеры исходного видео до выбранного желаемого разрешения. Нет необходимости беспокоиться о том, чтобы обрезать по рисунку или добавить черные рамки, если в исходном видео используется отличное соотношение размеров (в формате DVD часто используется анаморфированный формат 1.77), инструмент transcode займется этим. Единственный выбор, который нужно сделать – желаемое разрешение: 320x208 или 240x144 для источника с соотношением сторон 16:9, 352x288 или 176x144 для источника с соотношением сторон 4:3.
| + | |
− | | + | |
− | === H.264 (с mencoder) ===
| + | |
− | | + | |
− | Теоретически, операционная система OS2008 прекрасно воспроизводит видеосигналы стандарта H.264. Большое количество существующего материала стандарта H.264 будет воспроизводится с проблемами на устройствах N8x0. В [http://talk.maemo.org/showthread.php?t=13514&page=4 данной ветке] на talk.maemo.org указывается, что видео файл должен соответствовать базовому профилю и уровеню 1.2 стандарта H.264 для совместимости как с OS2008 Media Player, так и с MPlayer. (Обратитесь в гипертекстовую среду Wikipedia за более подробной информацией по [http://en.wikipedia.org/wiki/H.264#Profiles профилям] и [http://en.wikipedia.org/wiki/H.264#Levels уровням].)
| + | |
− | | + | |
− | Известно, что следующие настройки работают в отношении mencoder. (Представлены в упрощенном виде; можно использовать двойной проход и так далее). Данные настройки в оригинальном виде взяты на сайте, посвященном стандарту H.264 на устройстве N95, и предлагаются здесь в адаптированном виде только в качестве примера для тех пользователей, кто хочет экспериментировать с настройками вручную.
| + | |
− | | + | |
− | | + | |
− | ## Create video
| + | |
− | # I omitted various filters I use to make the video smaller
| + | |
− | # while encoding. A video resolution of 352:208 is assumed here,
| + | |
− | # you can achieve it by adding something like
| + | |
− | # -vf dsize=15/9,scale=352:208
| + | |
− | # Whats important is the part after -x264encopts:
| + | |
− | # * bitrate=300: max would be 364 according to level 1.2
| + | |
− | # * nocabac: no CABAC Entropy Coding according to Baseline profile
| + | |
− | # * partitions=p8×8,b8×8,i4×4: no idea what this is, but didn't work
| + | |
− | # with different settings
| + | |
− | # * level_idc=12: indicate to decoder that we're at level 1.2
| + | |
− | # * frameref=2: influences peak signal to noise ratio (?)
| + | |
− | # * me=umh: motion estimation search method
| + | |
− | # * bframes=0: no B-frames according to basline profile
| + | |
− | # * nodeblock: (?)
| + | |
− | # * noweightb: (?)
| + | |
− | # * nomixed_refs: unknown, but didn't work without it
| + | |
− | # so:
| + | |
− | mencoder $INPUTFILE \
| + | |
− | -nosound \
| + | |
− | -ovc x264 \
| + | |
− | -x264encopts bitrate=300:nocabac:partitions=p8×8,b8×8,i4×4:level_idc=12:frameref=2:me=umh:bframes=0:nodeblock:noweightb:nomixed_refs \
| + | |
− | -of rawvideo -o N800.264
| + | |
− | #
| + | |
− | #
| + | |
− | ## Create audio
| + | |
− | # The standard is picky about valid container formats for h.264
| + | |
− | # and audio codecs within these containers.
| + | |
− | # AAC is a good choice; bitrate settings may be too conservative
| + | |
− | mencoder $INPUTFILE \
| + | |
− | -ovc copy \
| + | |
− | -oac faac -faacopts br=40:mpeg=4:object=2 \
| + | |
− | -af resample=32000:0:2,volume=4:1 \
| + | |
− | -of rawaudio -o N800.aac
| + | |
− | #
| + | |
− | ## Mux MPEG4 file
| + | |
− | # MP4Box is part of the GPAC package.
| + | |
− | # You could also use mp4creator,
| + | |
− | # but that's buggy and no longer actively developed
| + | |
− | # -fps ist frames per second; you need to give this info
| + | |
− | MP4Box -new -add N800.264 -add N800.aac -fps 25.000 N800.mp4
| + | |
− | | + | |
− | | + | |
− | Специальная ветка на форуме talk.maemo.org дает общее представление о том, как может работать остальное программное обеспечение.
| + | |
− | | + | |
− | [[Category:Пользователи]]
| + | |
− | [[Category:Медиа]]
| + | |
− | [[Category:Продвинутые]]
| + | |