Конвертация видео вручную

(Различия между версиями)
Перейти к: навигация, поиск
(Отмена правки 1649 участника 217.77.58.217 (обсуждение))
Строка 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:Продвинутые]]
+

Версия 14:17, 28 декабря 2009

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты