Показать полную графическую версию : [решено] Конвертация фильмов для бытовых DVD плееров при помощи Mencoder
registeruser1
01-07-2010, 09:20
...Доброго дня всем.
Вообщем есть проблема связанная с конвертацией видео в Mencoder.
Для компа все хорошо - ему все равно какие фильмы крутить, а вот для бытового плеера - нет!
Думаю что тут надутся специалисты которые помогут разобраться с этим...
Итак суть проблемы -
Есть плеер, поддерживает DivX Xvid, т е читает любые авишки.
Пытаюсь сделать универсальный код для Mencoder с максимальным качеством видео и аудио конвертации FLV в avi c использованием кодека именно Xvid. Потому как DivX в плеере не все версии есть и потому последние версии оного плеер не будет воспроизводить.
Проблема в том что я сделал код - а плеер пишет "Ошибка Xvid" - не могу понять в чем проблема.
А сама идея в том что бы качать из сети фильмы в FLV их там море и весят в разы меньше и конвертить их в avi Xvid-кодеком и на плеере смотреть. На телевизоре как ни крути удобнее смотреть, тем более всей семьей... И качество по максимуму выжимать из него...
Думаю что не только мне это пригодится...
Вот весь код -
mencoder 1.flv -vf scale=720:460,crop=720:400,hqdn3d=2:1:2,denoise3d,pullup,softskip,scale=-10 -sws 1 -ovc xvid -forceidx -oac mp3lame -lameopts cbr:br=320 -srate 44100 aq=0:q=0:vol=5 -xvidencopts vhq=4:bitrate=10000:gmc:bvhq=1:quant_type=mpeg:chroma_me:chroma_opt:me_quality=6:autoaspect -endpos 100 -o output-avi.avi
Получается вот такое видео на выходе -
http://s52.radikal.ru/i136/1006/61/fa76c425ec39.jpg
Требования к выходному видео-
- Максимально возможное качество видео после конвертации (не хуже скачанного оригинала)
- Максимально возможное качество аудио после конвертации (не хуже скачанного оригинала)
- Универсальность видео потока (для проигрывания на ЛЮБЫХ бытовых DVD-плеерах которые поддерживают avi формат).
Что я не так делаю? Почему плеер пишет "Ошибка Xvid"?
Надеюсь на вашу помощь...
Спасибо...
DJ Mogarych
02-07-2010, 18:18
Уберите из командной строки опцию GMC.
Если после этого плеер всё равно играть не будет, убирайте по очереди все тонкие настройки -- всякие там bvhq, chroma и т. д. "Железные" плееры тонких настроек кодека не любят.
И можно снизить битрейт аудио. 160 килобит хватит с головой для конвертации роликов FLV.
А можно взять, например, Any video converter free, SUPER 2010, PocketDivXEncoder или разработки посетителей этого форума (см. прикреплённые темы с пометкой "авторский проект").
Все они так или иначе основаны на Менкодере.
registeruser1
02-07-2010, 20:18
Уберите из командной строки опцию GMC.
А где у меня это? Не вижу. Или я не правильно вас понял?
mencoder 1.flv -vf scale=720:460,crop=720:400,hqdn3d=2:1:2,denoise3d,pullup,softskip,scale=-10 -sws 1 -ovc xvid -forceidx -oac mp3lame -lameopts cbr:br=320 -srate 44100 aq=0:q=0:vol=5 -xvidencopts vhq=4:bitrate=10000:gmc:bvhq=1:quant_type=mpeg:chroma_me:chroma_opt:me_quality=6:autoaspect -endpos 100 -o output-avi.avi
DJ Mogarych
03-07-2010, 00:31
Ну поищите у себя в строчке: gmc.
Я так понимаю, что строчку не вы составляли?
registeruser1
03-07-2010, 00:36
Ну поищите у себя в строчке: gmc.
Я так понимаю, что строчку не вы составляли?
ааа, понял, составлял я. Попробую так.
Больше нет вариантов?
registeruser1
03-07-2010, 09:32
...Нашел вариант с двумя проходами кодирования, сделал как вы сказали, убрал лишнее, вроде на железке пошло.
Спасибо вам за подсказку...
Получилась вот такая портянка на выходе -
http://s51.radikal.ru/i132/1007/25/0f8881c72d36.jpg
...теперь вопрос у меня к вам - какой ставить битрейт на выходе видео, что бы было максимальное качество и без квадратиков?
-xvidencopts bitrate=???
И еще, не пойму почему Format/Family - RIFF ???
DJ Mogarych
03-07-2010, 12:05
какое ставить разрешение на выходе видео, что бы было максимальное качество и без квадратиков? »Зависит от исходника. Но больше 720 (или в крайнем случае 768) по горизонтали делать нет смысла.
Квадратики появляются из-за недостаточного битрейта. Увеличьте битрейт раза в полтора против прежнего, посмотрите на результат. Может быть, вместо битрейта вам понравится использовать значение квантайзера (для кодека это что-то вроде планки качества, ниже которой он не должен опускаться, и битрейт он подбирает автоматически). Минус квантайзера — плохо предсказуемый размер файла на выходе.
Если вы увеличиваете разрешение, то, соответственно, повышайте битрейт.
Конкретные значения командной строки посмотрите, пожалуйста, самостоятельно. Я так сразу так сказать не могу.
почему Format/Family - RIFF »
Это стандарт контейнера (http://ru.wikipedia.org/wiki/RIFF). Можно на этом внимание не заострять.
registeruser1
03-07-2010, 12:33
...Спасибо за совет DJ Mogarych, некоторые пишут что если ставить битрейт в районе 1700-2000, то квадратиков наблюдаться не будет.
Если больше, то они могут быть. Но я боюсь что это низкое разрешение, может я не прав?
А с квантайзером попробую, спасибо. Правда боюсь что железка может не принять такое навороченное видео...
DJ Mogarych
03-07-2010, 13:14
Если больше, то они могут быть »
Не могут. Чем больше битрейт, тем меньше потерь качества, и квадратики возникают только при недостатке битрейта, но уж никак ни при избытке.
Другой вопрос, что запредельных значений тоже ставить не нужно. Нужно подбирать необходимые.
Но я боюсь что это низкое разрешение »
Кажется, вы объединяете понятия "разрешение" и "битрейт".
Разрешение — это количество точек в кадре, например, 720x480. Говоря упрощённо, размер.
Битрейт — это поток данных, выделяющийся под описание этого кадра. Чем больше битрейта выделяется, тем полнее можно описать содержимое кадра, соответственно, тем выше качество.
боюсь что железка может не принять такое навороченное видео »
Железки понимают довольно большие значения битрейта, насколько я помню, примерно до 8000–10000 кбит/сек, чего хватит с лихвой для самого сложного видео стандартного (не HD) разрешения.
registeruser1
03-07-2010, 13:18
Железки понимают довольно большие значения битрейта, насколько я помню, примерно до 8000–10000 кбит/сек, чего хватит с лихвой для самого сложного видео стандартного (не HD) разрешения. »
То есть я так понимаю что -xvidencopts bitrate=10000 будет нормально?
10000 будет нормально? »
Для обычных сцен вам хватит и 5 мбит. Для динамических же можно поднят и до 8 (предел – 9,8). Больше не советую. Чревато некоторыми последствиями (напр. та же совместимость или переполнение буфера в нек. случ.). Да, впрочем, сомневаюсь, что вы увидите разницу на расстоянии между 8 и 10 мбит в мпег2.
Лучше выставить VBR и предоставить енкодеру самому, сколько и каким сценам дать битрейта. Железные плееры в 99% поддерживают такую опцию задания битрейта.
registeruser1
03-07-2010, 14:06
Для обычных сцен вам хватит и 5 мбит. Для динамических же можно поднят и до 8 (предел – 9,8). Больше не советую. Чревато некоторыми последствиями (напр. та же совместимость или переполнение буфера в нек. случ.). Да, впрочем, сомневаюсь, что вы увидите разницу на расстоянии между 8 и 10 мбит в мпег2.
Лучше выставить VBR и предоставить енкодеру самому, сколько и каким сценам дать битрейта. Железные плееры в 99% поддерживают такую опцию задания битрейта. »
Пытаюсь сделать универсальный код в mencoder, что бы один раз прописать для максимально возможного качества которое будет воспроизводить железный плеер и больше код не изменять. Размер файла на выходе не имеет значения для меня...
Тогда я выставляю -xvidencopts bitrate=9000 и я так понимаю что это максимально возможное качество и все должно пахать на железном плеере?
А по поводу квантователя -
quant_type=<h263|mpeg>
Устанавливает используемый тип квантователя. можете заметить, что при высоких значениям битпотока MPEG квантование сохраняет больше деталей. Для маленьких значений сглаживание H.263 даст меньший блочный шум. При использовании нестандартных матриц должно использоваться MPEG квантование.
он у меня стоит в коде -
quant_type=mpeg
Только и битрейт тоже стоит там.
-xvidencopts bitrate=9000:pass=2:max_bframes=3:quant_type=mpeg
Совместимы ли эти два параметра между собой?
Спасибо...
registeruser1, А почему бы и нет. Bitrate – это базовый, так сказать, параметр. МПЕГ и Н263 просто матрицы которые предназначены для немножко разных целей. То есть для живого ряда лучше все же применять МПЕГ. Если кодируете мультики (аниме), то тогда стоит(не всегда) присмотреться к Н263. Немножко по другому это же написано у вас в посте выше =)
Подведя итог под выше написанным, скажу так: МПЕГ больше шарпит, Н263 больше блочит.
registeruser1
03-07-2010, 15:05
registeruser1, А почему бы и нет. Bitrate – это базовый, так сказать, параметр. МПЕГ и Н263 просто матрицы которые предназначены для немножко разных целей. То есть для живого ряда лучше все же применять МПЕГ. Если кодируете мультики (аниме), то тогда стоит(не всегда) присмотреться к Н263. Немножко по другому это же написано у вас в посте выше »
...Значит эти параметры кодирования (-xvidencopts bitrate=9000:pass=2:max_bframes=3:quant_type=mpeg) в полне подходят для без проблемного воспроизведения на железном плеере.
И битрейт и квантование друг другу мешать не будет...
Спасибо большое, буду пробовать, если что отпишусь...
registeruser1
04-07-2010, 07:59
...Ну вроде бы все получилось - читает железка!
Причем что самое интересное 15 fps стоит и ничего!
Спасибо всем кто помогал!
-xvidencopts bitrate=9000 »
А зачем для DivX или Xvid такой огромный битрейт ? Как то сравнивал два переконвертированных (AVSVideoConverter6) с качественного DVD видеоролика, один со значением 3500, другой 8000.
Разницы в качестве абсолютно никакой (почти отличное), чего не скажешь про объём...
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.