Страница 1 из 1

Mencoder - кодирование в MPEG2 (БАГ!!!)

СообщениеДобавлено: Вс дек 16, 2007 4:25 pm
Klezk
Недавно передо мной встала задача наделать DVD дисков для просмотра на бытовом плеере и телевизоре. Наделать из всяких разных оригиналов, как то HDTV рипов, трехмерной графики, DV сьемок и т. д.
Из софта решил попробовать CCE, HCenc, Mencoder - три разные библиотеки кодирования. Mencoder больше всего привлек возможностью тонкой настройки большого числа параметров, ни у одного из конкурентов такого нет. Да и командная строка - на мой взгляд это просто и удобно.
Так вот, Mencoder. Взял avs скрипт, составил командную строку, сделал первый проход, написал строку для второго, запустил, и тут.... обнаружился БАГ! Что делать? Хелп ми!
Mencoder при втором проходе вывел такое предупреждающее сообщение:

[mpeg2video @ 00C154C0][lavc rc] Using all of requested bitrate is not necessary for this video with these parameters.

и закодировал мне видео с битрейтом примерно 2000 кбит !!! Вместо заданного 6000 !!!
Я стал разбираться, какой параметр виноват в глюке... По очереди поубирал все параметры, которые я понаписал для повышения качества. В результате остались только необходимые, без которых просто не сделать MPEG2.
ВОТ СТРОКА на первый проход:

mencoder -of mpeg -mpegopts format=dvd -ovc lavc -lavcopts vcodec=mpeg2video:vpass=1:vrc_buf_size=1835:vrc_maxrate=9000 film.avs -o NUL -nosound

А вот строка второго прохода:

mencoder -of mpeg -mpegopts format=dvd -ovc lavc -lavcopts vcodec=mpeg2video:vpass=2:vrc_buf_size=1835:vrc_maxrate=9000:vbitrate=6000 film.avs -o film.m2v -nosound

Как видите, все правильно, все как в мануалах, проще простого. Так почему же Mencoder нагло игнорирует указанный мной vbitrate=6000 и делает фильм с битрейтом 2000 ?!!! Как его заставить делать тот битрейт, что указан мной?!
Билды Mencoder тестировались dev-SVN-r25279-4.2.2 и 1.0rc2-4.2.1. Ведут себя одинаково, то есть выводят сообщение "Using all of requested bitrate is not necessary for this video" и ставят битрейт 2000.
Что делать?
Хелп ми!

Очень не хочется переходить на HCenc или CCE, потому что субьективно видео, сделанное Mencoder, даже 2000 кбит, выглядит лучше, чем у них!
Пробовал указывать vbitrate=5000, 4000, 3000 - тот же самый баг, а указываешь vbitrate=2000 - предупреждение не появлется и выходит 2000 как написано! Ну почему он отказывается от битрейтов выше 2000 ???!!!!
Мой avs скрипт выдает честное YV12 прогрессивное видео размером кадра 720x576, fps 25, никаких особенностей!

Проблема нешуточная, выходит, что последние билды Mencoder просто неработоспособны в плане изготовления MPEG2! Или я чего-то не понимаю?.. Более старые билды искать? Или что?

СообщениеДобавлено: Пн дек 17, 2007 2:11 pm
RBF
Klezk
А где ты взял такое значение vrc_buf_size=1835 ?

СообщениеДобавлено: Пн дек 17, 2007 8:53 pm
Klezk
RBF писал(а):Klezk
А где ты взял такое значение vrc_buf_size=1835 ?

Ну как где... В официальной документации на Mencoder! Вот, например: http://www.mplayerhq.hu/DOCS/HTML/en/me ... d-dvd.html написано: "vrc_buf_size: 327 for VCD, 917 for SVCD, and 1835 for DVD"
А что? Что-то не так? Хелп ми!

СообщениеДобавлено: Вт дек 18, 2007 12:34 am
mein
Klezk
Using all of requested bitrate is not necessary for this video with these parameters

А может правда :) . Видео зафильтровано так, что кодер улаживается в 2000кбит.
Только что провёл тест на стандартных настройках у себя: заказал битрэйт 7000, но получил ~4500 .
Потом подкрутил настройки, рекомендуемые для высококачественного dvd(из мануала), и получил уже больше 6-ти тысяч битрэйт.

СообщениеДобавлено: Вт дек 18, 2007 2:20 pm
RBF
Klezk
А что? Что-то не так?
Нет, все так, просто в некоторых прогах в битах указывают.
У тебя в первом проходе не указан vbitrate, попробуй и там его проставить.

СообщениеДобавлено: Вт дек 18, 2007 8:59 pm
Klezk
RBF писал(а):У тебя в первом проходе не указан vbitrate, попробуй и там его проставить.

ПРОБОВАЛ!!!!!! Все абсолютно так же обстоит! НЕ ХОЧЕТ ДЕЛАТЬ
БИТРЕЙТ 6000!!! И даже 4000 не разрешает!!!!

Что же я неправильно делаю ??????????????????????????????

СообщениеДобавлено: Ср дек 19, 2007 12:19 pm
RBF
Klezk
Спокойствие, только спокойствие :)
Я пробовал с приведенными тобой настройками, ~4500 как и у mein получилось легко.
Попробуй ffmpeg (тоже консольный) там этот же кодек mpeg2 (собственно mencoder оттуда его и берет).

СообщениеДобавлено: Пт дек 21, 2007 12:10 am
Klezk
RBF писал(а):Klezk
Спокойствие, только спокойствие :)
Я пробовал с приведенными тобой настройками, ~4500 как и у mein получилось легко.
Попробуй ffmpeg (тоже консольный) там этот же кодек mpeg2 (собственно mencoder оттуда его и берет).

Ой, слушай, дай плиз линк на конкретно тот билд Менкодера, которым ты пробовал!
Сообщение "Using all of requested bitrate is not necessary for this video with these parameters" выводит????????
И если будет время, попробуй тем, что я юзал, то есть 1.0rc2-4.2.1, скачанным с офсайта...
Потому что непонятно, чем вызвана проблема... Неужели же характером видеоматериала?! Но я с разными пробовал, в том числе DVD9 источником - все одинаково: ругается и битрейт уменьшает намного :( :( :(

На ffmpeg хорошо бы хелп по соответствию ключей командной строки его и менкодеровских...

Итоги

СообщениеДобавлено: Вс янв 06, 2008 6:22 am
Klezk
После длительных проб и исследований сообщаю:

Появление данного гадкого сообщения о битрейте действительно зависит от характера видеоматериала!
Если в начале фильма идут какие-нибудь сложные сцены, например, с обилием мелких летающих предметов, то гадкое сообщение не выводится и битрейт хороший.
Если же в начале фильма пустой экран и титры на нем, то менкодер считает, что столько битрейта не надо.
Интеллект, блин, искусственный :(
Билд тестил Sherpya-SVN-r25513-4.2.2


Писал об этой проблеме на форум doom9.org
http://forum.doom9.org/showthread.php?t=133004
мне там привели командную строку, с которой все должно получиться.
Действительно, сообщение не выводится! НО! Там же, извините, в строке присутствует vqscale=3 !!! Фиксированный квантизер! А я писал про двухпроходное кодирование с переменным, естественно, квантизером!!!
Хотел написать ответ на forum.doom9.org, но он стал недоступен! У меня недоступен. У кого-нибудь доступен? Чего с ним случилось???

Про скорость кодирования.
С экстремальными по качеству параметрами

mencoder kino.avs -o kino.m2v -of rawvideo -ovc lavc -lavcopts vcodec=mpeg2video:aspect=4/3:dc=10:vrc_buf_size=1835:keyint=12:vmax_b_frames=2:mv0:qprd:mbd=2:me_range=128:preme=2:bidir_refine=4:vbitrate=6000:vrc_maxrate=9000:dia=3:predia=3:vfdct=6:precmp=6:cmp=6:subcmp=6:vpass=1:vb_strategy=2

скорость кодирования около 1 кадра в секунду. Это значит, что полуторачасовой фильм кодируется трое суток! Это почти столько же, сколько x264 требует с хорошими параметрами! Процессор - двуядерный Атлон64 X2 4000+. Плохо. Буду переходить на CCE !!!

СообщениеДобавлено: Вс янв 06, 2008 7:23 pm
Виталя
У меня доступен. Только идет как-то медленно.
Тебе там отписали:
Quote:
Originally Posted by Divet
Excuse me! This is a constant quantizer encoding!!!
It's not an encoding with variable quantizer by 2 passes!!!

The first pass can be a constant quantizer or VBR... it doesn't matter...
but you have to specify one or the other. You didn't
Quote:
mencoder -of mpeg -mpegopts format=dvd -ovc lavc -lavcopts vcodec=mpeg2video:vpass=1:vrc_buf_size=1835:vrc_maxrate=9000 film.avs -o NUL -nosound

the second pass I wrote...

Code:
vcodec=mpeg2video:vpass=2:vbitrate=6000:vrc_maxrate=9000...is a VBR pass... so the final encoding will be VBR


Edit: If you are going to use
Quote:
precmp=6:cmp=6:subcmp=6

you should try
Quote:
precmp=262:cmp=262:subcmp=262

because it also use chroma... but
Quote:
precmp=258:cmp=258:subcmp=258 which is the same as precmp=2:cmp=2:subcmp=2 without chroma

is visibly the same'ish but much faster
__________________
I know the pieces fit
cuz I watched them fall away.

--------------------------------------------------------------------------------
Last edited by Fishman0919 : Today at 05:41.

Re: Mencoder - кодирование в MPEG2 (БАГ!!!)

СообщениеДобавлено: Вс июл 27, 2008 5:57 pm
vinvideo
Уважаемые опытные пользователи, помогите пожалуйста: может кто знает в какой проге можно получить на выходе MPEG-2 задав вручную битрейт на уровне 700…600…500… ??? Желательно именно проф.кодировщик, хотя можно и программу авторинга с возможностью задать низкий битрейт (хотя я так понимаю при этом получим менее качественную перекодировку..).
Сам в разных целях использую Canopus ProCoder 3.0, но к сожалению в любых раскладах он не дает для MPEG-2 битрейт менее чем 900 (типа ограничение по стандарту).
Сразу поясню зачем нужен такой низкий битрейт: для учебных Лекций ! при этом качество видео приемлимо(точнее оно по барабану), а звук прекрасно слышно вплоть до 64К !!!
Для скептиков: уже есть несколько образцов MPEG2 с битрейтом 500 (к сожалению созданными через миллион перекодировок) прекрасно хранящиеся в компактном виде на винте и записанными как SVCD на CD-R (!!!!!!) (писалось VCDEasy ).
Так что ежли кто пробовал (CCE, TMPGenc, Scenarist, Ligos, Adobe, MainConceptPVR)- поделитесь плз, ГДЕ можно ручками выставить низкий битрейт?

Re: Mencoder - кодирование в MPEG2 (БАГ!!!)

СообщениеДобавлено: Вс июл 27, 2008 11:32 pm
zelenin
а зачем мпег-2? можно тот же vcd записать мпегом-1. Битрейт по умолчанию 1150.

Re: Mencoder - кодирование в MPEG2 (БАГ!!!)

СообщениеДобавлено: Пт авг 01, 2008 5:53 pm
vinvideo
zelenin писал(а):а зачем мпег-2? можно тот же vcd записать мпегом-1. Битрейт по умолчанию 1150.

то-то и оно...что с 1150 на обыденную CD-R болванку влезает 1ч20мин, а в mpeg2 c битрейтом 500-600 влезает почти 3 часа лекций! с терпимым качеством! а это я-бы сказал "две большие разницы".....
так что вопрос открытый: ежли кто пробовал (CCE, TMPGenc, Scenarist, Ligos, Adobe, MainConceptPVR)- поделитесь плз, ГДЕ можно ручками выставить реально низкий битрейт?