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

Делимся опытом. Задаем вопросы и отвечаем на них. Обсуждаем статьи и новости.

Модератор: Модераторы Обсерватории

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

Сообщение Klezk » Вс дек 16, 2007 4:25 pm

Недавно передо мной встала задача наделать 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! Или я чего-то не понимаю?.. Более старые билды искать? Или что?
Klezk
Юнга
 
Сообщения: 13
Зарегистрирован: Пт авг 25, 2006 8:31 pm

Сообщение RBF » Пн дек 17, 2007 2:11 pm

Klezk
А где ты взял такое значение vrc_buf_size=1835 ?
RBF
Капитан-Лейтенант
Капитан-Лейтенант
 
Сообщения: 1355
Зарегистрирован: Пт дек 19, 2003 2:42 pm

Сообщение Klezk » Пн дек 17, 2007 8:53 pm

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"
А что? Что-то не так? Хелп ми!
Klezk
Юнга
 
Сообщения: 13
Зарегистрирован: Пт авг 25, 2006 8:31 pm

Сообщение mein » Вт дек 18, 2007 12:34 am

Klezk
Using all of requested bitrate is not necessary for this video with these parameters

А может правда :) . Видео зафильтровано так, что кодер улаживается в 2000кбит.
Только что провёл тест на стандартных настройках у себя: заказал битрэйт 7000, но получил ~4500 .
Потом подкрутил настройки, рекомендуемые для высококачественного dvd(из мануала), и получил уже больше 6-ти тысяч битрэйт.
mein
Старшина 2ой статьи
Старшина 2ой статьи
 
Сообщения: 165
Зарегистрирован: Пн мар 15, 2004 8:35 pm
Откуда: Кишинёв

Сообщение RBF » Вт дек 18, 2007 2:20 pm

Klezk
А что? Что-то не так?
Нет, все так, просто в некоторых прогах в битах указывают.
У тебя в первом проходе не указан vbitrate, попробуй и там его проставить.
RBF
Капитан-Лейтенант
Капитан-Лейтенант
 
Сообщения: 1355
Зарегистрирован: Пт дек 19, 2003 2:42 pm

Сообщение Klezk » Вт дек 18, 2007 8:59 pm

RBF писал(а):У тебя в первом проходе не указан vbitrate, попробуй и там его проставить.

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

Что же я неправильно делаю ??????????????????????????????
Klezk
Юнга
 
Сообщения: 13
Зарегистрирован: Пт авг 25, 2006 8:31 pm

Сообщение RBF » Ср дек 19, 2007 12:19 pm

Klezk
Спокойствие, только спокойствие :)
Я пробовал с приведенными тобой настройками, ~4500 как и у mein получилось легко.
Попробуй ffmpeg (тоже консольный) там этот же кодек mpeg2 (собственно mencoder оттуда его и берет).
RBF
Капитан-Лейтенант
Капитан-Лейтенант
 
Сообщения: 1355
Зарегистрирован: Пт дек 19, 2003 2:42 pm

Сообщение Klezk » Пт дек 21, 2007 12:10 am

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 хорошо бы хелп по соответствию ключей командной строки его и менкодеровских...
Klezk
Юнга
 
Сообщения: 13
Зарегистрирован: Пт авг 25, 2006 8:31 pm

Итоги

Сообщение Klezk » Вс янв 06, 2008 6:22 am

После длительных проб и исследований сообщаю:

Появление данного гадкого сообщения о битрейте действительно зависит от характера видеоматериала!
Если в начале фильма идут какие-нибудь сложные сцены, например, с обилием мелких летающих предметов, то гадкое сообщение не выводится и битрейт хороший.
Если же в начале фильма пустой экран и титры на нем, то менкодер считает, что столько битрейта не надо.
Интеллект, блин, искусственный :(
Билд тестил 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 !!!
Klezk
Юнга
 
Сообщения: 13
Зарегистрирован: Пт авг 25, 2006 8:31 pm

Сообщение Виталя » Вс янв 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.
Per anus ad astra.
Виталя
Капитан 3го ранга
Капитан 3го ранга
 
Сообщения: 1713
Зарегистрирован: Пт июл 23, 2004 4:02 am
Откуда: Россия, Тольятти

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

Сообщение vinvideo » Вс июл 27, 2008 5:57 pm

Уважаемые опытные пользователи, помогите пожалуйста: может кто знает в какой проге можно получить на выходе 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)- поделитесь плз, ГДЕ можно ручками выставить низкий битрейт?
vinvideo
Юнга
 
Сообщения: 4
Зарегистрирован: Пн июл 21, 2008 7:35 pm
Откуда: новосибирск

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

Сообщение zelenin » Вс июл 27, 2008 11:32 pm

а зачем мпег-2? можно тот же vcd записать мпегом-1. Битрейт по умолчанию 1150.
zelenin
Матрос
Матрос
 
Сообщения: 34
Зарегистрирован: Сб июн 09, 2007 5:19 pm

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

Сообщение vinvideo » Пт авг 01, 2008 5:53 pm

zelenin писал(а):а зачем мпег-2? можно тот же vcd записать мпегом-1. Битрейт по умолчанию 1150.

то-то и оно...что с 1150 на обыденную CD-R болванку влезает 1ч20мин, а в mpeg2 c битрейтом 500-600 влезает почти 3 часа лекций! с терпимым качеством! а это я-бы сказал "две большие разницы".....
так что вопрос открытый: ежли кто пробовал (CCE, TMPGenc, Scenarist, Ligos, Adobe, MainConceptPVR)- поделитесь плз, ГДЕ можно ручками выставить реально низкий битрейт?
vinvideo
Юнга
 
Сообщения: 4
Зарегистрирован: Пн июл 21, 2008 7:35 pm
Откуда: новосибирск


Вернуться в Софт: описание работы с пакетами, кодеками. Вопросы и ответы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 19