Статьи 

Paper

Кодирование АМВ с помощью AMVsimple 4.0

Воскресенье, 07 Декабрь 2008

Представляем вашему вниманию новую версию программы для кодирования видео AMVsimple. Программа имеет 3 режима кодирования: создание полной версии и превью версии клипа и создание делюкс версии клипа. В программе есть встроенный Help, доступный по кнопке F1.

Общая информация

AMVsimple (далее утилита) - графический интерфейс к консольным приложениям x264.exe, NeroAacEnc.exe и MP4box.exe разработанный и оптимизированный для простого и качественного кодирования AMV-клипов. Утилита является бесплатной, распространяется "как есть" и предназначена для некоммерческого использования.

Системные требования

Утилита способна корректно работать только под Windows XP, Windows 7 и Windows 8+. Работа под управлением других операционных систем не гарантируется.

Требования к входящим файлам

Утилита принимает на вход файл AVI, скрипты AviSynth, скрипты VapourSynth, секвенции картинок: *.png или *.jpg, звуковые WAV-файлы.
Утилита корректно обрабатывает видеопоток без сжатия (Uncompressed AVI). Также возможна обработка закодированного потока, если в системе есть соответствующий активный VFW-интерфейс, но корректная работа в таком случае не гарантируется.
Утилита корректно обрабатывает аудиопоток без сжатия (Uncompressed PCM). Также возможна обработка закодированного потока, если в системе есть соответствующий активный ACM-интерфейс, но корректная работа в таком случае не гарантируется.
Проще говоря, если AVI-файл открывается в Virtual Dub, то утилита сможет его обработать.

Режимы работы

Превью: экономичный вариант (Рис. 2). Двухпроходное кодирование. Настраиваемые параметры. Диапазоны изменения общего битрейта от 1 до 5 мегабайт в минуту с шагом 0.1 мегабайт. Аудиопрофиль - HE. Опциональное изменение разрешения, в пикселях горизонтали: 320, 480. В случае, если горизонталь входящего файла меньше выбранной, разрешение входящего файла останется без изменений. Закодированный файл будет называться так же, как исходный, с добавлением суффикса "_preview" и с расширением "mp4", и будет находиться в той же директории, что и исходный файл.

Стандартная: стандартный вариант (Рис. 3). Двухпроходное кодирование. Настраиваемые параметры. Диапазоны изменения общего битрейта от 5 до 50 мегабайт в минуту с шагом 1 мегабайт. Аудиопрофиль - LC. Опциональное изменение разрешения, в пикселях горизонтали: 640, 768, 848, 1024, 1280. В случае, если горизонталь входящего файла меньше выбранной, разрешение входящего файла останется без изменений. При активированном режиме нового разрешения также становится доступным режим SD-делюкс, предназначенный для кодирования SD-версий пониженного разрешения алгоритмом делюкс-версии. Закодированный файл будет называться так же, как исходный, с добавлением суффикса "_standard" и с расширением "mp4", и будет находиться в той же директории, что и исходный файл.

Делюкс: альтернативная версия. Однопроходное кодирование с постоянным качеством. Настраиваемые параметры отсутствуют. Диапазоны изменения общего битрейта не ограничены. Аудиопрофиль - LC. Максимальное качество без перерасхода битрейта. Закодированный файл будет называться так же, как исходный, с добавлением суффикса "_deluxe" и с расширением "mp4", и будет находиться в той же директории, что и исходный файл.

Дополнительные возможности

Пришивание внешней m4a: в режиме Делюкс существует возможность муксинга с внешним m4a-файлом без его перекодировки. Для этого надо назвать m4a-файл так же, как и входящий файл, не меняя расширение, и положить его в ту же директорию, где находится входящий файл.
Муксер: вызов муксера кнопка F2 на клавиатуре. В этом окне можно добавить или заменить звуковую дорожку. Сначала добавляем видео файл и аудио файл, затем собираем. После сборки можно кликнуть правой кнопкой по окну, чтобы открыть расположение нового файла.
Поддерживаемые форматы: .mp4 .m4a .aac .h264 .264 .avc .m4v

Режим Debug: т.к. в утилите отсутствует обработчик ошибок, предусмотрен запуск в отладочном режиме. Для этого нужно запустить утилиту с параметром командной строки debug (или запустить файл ./tools/debug_mode.bat). В этом режиме временные файлы программы (Vid.avs, Snd.cmd, Snd.m4a) не будут удаляться, а команды будут вноситься в файл DebugInfo.log. Все файлы будут находиться во временной директории (./AMVSimple/tools/temp) после завершения работы. Рекомендуется применять не более чем с одним из трех режимов работы, иначе временные файлы будут относиться к последнему из пройденных режимов. При достаточном уровне знаний информации, полученной в режиме debug, достаточно для выявления любой проблемы.

 

Секвенция - это набор графических файлов (JPG или PNG формата) из которых требуется получить видеоролик. Для этого выбираем любой файл из секвенции. Далее нажимаем старт. Проверяем первый и последний кадр в секвенции. Выставляем нужный FPS или выбираем его из списка. Также можно добавить звуковой WAV файл. Далее кликаем ОК.

32 битный режим: если есть надобность утвердительно выставить кодировшик x264 в 32 бита то прописываем как в режиме Debug "-32"

 

Что делать, если не работает?

1) Проверить, выполнены ли все требования из соответствующего раздела.
2) Проверить путь к кодируемому файлу и к программе. По неизвестным причинам некоторые CLI-компоненты не принимают сложные пути, в которых присутствуют лишние точки, спец. символы или кириллица в определенных комбинациях. Поместите папку AMVsimple в корень диска, положите кодируемый файл в корень диска и назовите его простым именем (например, 123.avi). Проблема должна решиться.
3) Пользуйтесь режимом Debug, он позволит обнаружить любую проблему.

История изменений

Версия 4.0 (19.11.2013)

  • Обновлен исполняемый файл x264 до последней версии на 01.11.2013 (также помимо 32-битной, добавлена 64-битная версия).
  • Добавлена проверка частоты дискретизации (> 48kHz) и битности (> 16 bit) звука.
  • Если поля автора и название не указано, то в информации о видео их также не будет.
  • Добавлен выбор делюкс звука в пресете "стандарт".
  • Изменена кнопка выключения компьютера на что делать после завершения (добавлены сон и гибернация).
  • Добавлено разрешение 1280 пикселей по горизонтали в пресет "стандарт".
  • Добавлена проверка разрешения для выставление нужной матрицы RGB (BT.709 или BT.601) (теперь отсутствуют изменения цветов в HD-видео при сравнении с оригиналом).
  • Проверка наличия звука в исходном видео. Если звук отсутствует, то пропускается кодировка звука. Ранее это могло приводить к ошибкам работы программы.
  • По окончанию кодирования не требуется перезапуск программы. Можно снова начать кодирование, выбрав нужные настройки.
  • Добавлена проверка битности среды (32-битная или 64-битная система) и выбор соответствующего исполняемого файла x264 для кодировки. Что в общем случае увеличивает скорость кодирования для 64-битных машин.
  • Добавлено графическое отображение прогресса кодировки на панели задач в Windows Vista/7/8/8.1
  • Добавлено кодирование звукового формата WAV (AAC файл на выходе).
  • Добавлен отдельный вызов муксера для сборки MP4 файла из готовых видео и звука. Доступен по кнопке F2.
  • Добавлена поддержка .vpy скриптов (VapourSynth).
  • Добавлена поддержка секвенций *.png и *.jpg
  • Добавлено открытие расположения готового файла правой кнопкой по значкам пресетов и входного файла.
  • Программа более не нуждаеться в AVISynth, установленном в системе, в случае работы с несжатым видео или секвенциями. Программа использует свою встроенную версию.
  • Поправлены расширения входных файлов. Теперь программа корректно принимает и заглавные буквы.
  • Поправлены поля "Автор" и "Название". Программа теперь корректно принимает русский текст и Unicode.
  • Поправлена проблема с кодировкой звука с повышеными правами, что иногда приводило к отсутствию звука в финальном видеофайле.
  • Исправлена проблема с исчезновение кнопок по нажатию Alt на клавиатуре.
[+/-] Лог изменений старых версий

Скачать программу

AMVSimpleGUI 4.0 в ZIP-архиве (~3.4 Мб)

[+/-] Старые версии программы


(с) Aggressor &
KG7x


Прочитана: 207664 раза
Распечатать

Комментарии (321)
Вы не авторизованы! Комментарии могут оставлять только зарегистрированные и авторизованные пользователи!


hybrid   User profile
  24.01.2009 13:49
Default Avatar
Turbo, напиши мне в асю я задам пару вопросов 448683000
Turbo   User profile  Video channel
  24.01.2009 13:27
Default Avatar
Читай здесь что помимо программы нужно:
Кодирование АМВ с помощью AMVSimpleGUI 1.4
hybrid   User profile
  24.01.2009 12:58
Default Avatar
Народ че то не врубился,расскажите дураку в чем проблема скачал эту прогу установил но она только сделала ini файл из несжатого avi или нужно дополнительные какие то проги?
Aggressor   User profile  Video channel
  29.12.2008 21:18
Turbo, зато этим же исключается возможность цветопотери от неправильного конвертирования в другое цветовое пространство, что обычно и делают lossless-кодеки. К тому же рендерить из редактора во что-то другое, кроме несжатого, чревато проблемами похуже, чем недостаток места на диске )
Turbo   User profile  Video channel
  28.12.2008 22:52
Default Avatar
Использование только Uncompressed это не такой уж и плюс. Тем самым убивается возможность кодировать Lossless без перегона в Uncompressed. При проблемах с местом на диске это может быть критично.
DragonAsh   User profile
  10.12.2008 23:24
Аггрессор спс... буду юзать с удовольствием... т.к. из-за того что я плавненько перешёл на HD контент хотелось бы чёнить помощнее =) А... Энди тоже благодарность хЪ
-=[Hikari]=-   User profile
  10.12.2008 01:45
Aggressor, как будет время - обязательно сделаю. А пока что - 1:0 в твою пользу %)
Aggressor   User profile  Video channel
  10.12.2008 01:19
CHebur, технически счетчик добавить можно, но смысла в нем я не вижу. Вот если бы от него скорость кодирования увеличивалась- другое дело )

-=[Hikari]=-, а я утверждаю, что ты неправ, что crf не задает лимит битрейта, и вообще более эффективного алгоритма кодирования не существует. А если ты готов тратить свое и мое время, вовлекая меня в бессмысленные дискусии и ставя под сомнение эффективность выбранного метода, то предложи свой метод, который будет давать лучшие результаты. Вплоть до командной строки первого и второго проходов. С приложенным файлом статистики и ссылкой на трэд Дум-9, где даются теоретические объяснения процесса. Если сделаешь, и если результаты будут такими же универсальными и при этом размер файлов будет меньше- обещаю серьезно отнестись к вопросу и к следующей версии профинтить 2й проход. А до тех пор твои высказывания о втором проходе официально объявляю ересью, и дальнейшие голословные утверждения по вопросу игнорирую.
-=[Hikari]=-   User profile
  10.12.2008 00:35
Aggressor, у нас есть лимит битрейта, и мы его гоняем между статикой и динамикой

в однопроходном режиме тоже есть лимит битрейта.
В том числе и у тебя, вот:
--crf 20
И гоняется он куда менее эффективно, чем в 2-pass.
Конечно, лимит битрейта здесь задаётся не прямо, а косвенно, через указание nominal QP. Но он всё равно есть, куда ж без него.

Ладно, забили...

Lusi_7, У меня видео не кодировалось, когда стоял AviSynth 2.55, но и тогда файл создавался. Попробуй во время работы программы куда-нибудь скопировать файлы "Full.avs" и "Snd.avs" из той папки, в которую она установлена. Потом попробуй открыть их разными видеоплеерами. Какие результаты? Если не воспроизводятся, переустанови AviSynth (лучше скачать последнюю версию), кодеки, плеер(ы), Windows на худой конец ]:->

[update]
CHebur, могли вы добавить счетчик, сколько осталось времени до окончания кодирования
ага, а также всё остальное, что идёт от x264 в stdout - количество кадров, скорость обработки в фпс, текущий битрейт.
Было бы отлично, а то одинокий прогресс бар уж очень одинокий
CHebur   User profile
  09.12.2008 22:46
Спасибо за прогу! Работает отлично!
Aggressor, могли вы добавить счетчик, сколько осталось времени до окончания кодирования.
ximik   User profile
  09.12.2008 14:39
спс, Aggressor=)))
Бармалино   User profile
  09.12.2008 12:24
Hikari
Скажи, ПРИ ЧЁМ ЗДЕСЬ ТЕОРЕТИЧЕСКАЯ ВОЗМОЖНОСТЬ СОЗДАНИЯ ПСЕВДО-ДВУХПРОХОДНОЙ ТЕХНОЛОГИИ КОДИРОВАНИЯ?!!! Речь идёт о том, какой из современных методов кодирования применять, а не о том, что можно разработать и какую кривую технологию кодирования можно изобрести.

Ты сам ответил:

P.S. пожалуйста, не пиши больше такую ерунду

Если ты не понял, речь шла о теоретической оценке возможностей как существующих программ, так и тех что могут появиться в ближайшее время. К примеру, если ты ещё до первых релизов примерно не мог представить, какая "рульная" штука будет виста, то и говорить с тобой на эти темы как бы и не о чем. Считай свои сливы.
Aggressor   User profile  Video channel
  08.12.2008 22:52
Lusi_7, посмотри заглавный пост- только сегодня устранил проблему с кириллицей. Вообще я думаю, что проблемы где-то у тебя, а не с программой, т.к. 1) никто больше на это не жаловался и 2) я тестировал со всевозможными путями, какими мог придумать.
Lusi_7   User profile
  08.12.2008 22:04
Короче, это глюк. Я попробовала ещё раз, специально создала маленький несжатый видео файл (из аниме) и тоже выдаёт ГОТОВО но файла нет нигде. Попробовала тоже самое в СТАРОЙ версии 1.3 - и всё нормально, сохранил в той же папке. Несжатый файл находится в папке "Мои документы". Программа стоит в C:Program Files.
Lusi_7   User profile
  08.12.2008 21:19
У меня тока один вопрос: Куда ОН сохраняет готовый файл? Я найти не могу((( В той же папке нету(
Aggressor   User profile  Video channel
  08.12.2008 20:52
-=[Hikari]=-, ты сам ответил на свой вопрос своей же цитатой: На основании данных, собранных в первом проходе, кодек делает второй проход, оптимально распределяя битрейт между сценами.
Т.е. у нас есть лимит битрейта, и мы его гоняем между статикой и динамикой, чтобы и там, и там была не сильно заметна лажа. А что делает один проход? Он не пытается забрать битрейт в одном месте и добавить за счет этого в другом, он просто дает его ровно столько, сколько нужно, чтобы выйти на заданный результат по качеству. По этой же причине увеличение количества б-фреймов не даст существенного результата- разница в 100 килобайт на 40-мегабайтном файле не в счет )
Ну и вот еще:
http://forum.doom9.org/archive/index.php/t-124766.html

Кстати, проблемы с кириллицей пофиксил, и Турбо уже выложил новую версию.
-=[Hikari]=-   User profile
  08.12.2008 17:52
Бармалино,
Так как ты, скорее всего, читал топ по диагонали, я поясню: наша с Агрессором дискуссия началась с того, что я сказал, что применять в его программе двухпроходное кодирование было бы лучше, чем однопроходное. На что он ответил, что оно, в общем-то, и не нужно, а я возразил, что двухпроходное кодирование даёт лучший результат. На это он обозвал меня нупом и предложил покурить матчасть, а я стал защищаться и приводить свои доводы в пользу 2-pass mode, попутно комментируя результаты работы его программы.

Скажи, ПРИ ЧЁМ ЗДЕСЬ ТЕОРЕТИЧЕСКАЯ ВОЗМОЖНОСТЬ СОЗДАНИЯ ПСЕВДО-ДВУХПРОХОДНОЙ ТЕХНОЛОГИИ КОДИРОВАНИЯ?!!! Речь идёт о том, какой из современных методов кодирования применять, а не о том, что можно разработать и какую кривую технологию кодирования можно изобрести.

P.S. пожалуйста, не пиши больше такую ерунду
P.P.S. примеры в студию!
не имеет принципиального значения сколько решений: одно или несколько - задача решаема и нам этого знания достаточно
слив засчитан
Бармалино   User profile
  08.12.2008 17:34
разрабатывай на здоровье

А мне надо? Пусть на видеолане разрабатывают, если посчитают полезным. Я их версиями как-то больше пользуюсь.

Можно, но не нужно. Для повторного прохода есть соответствующий режим. И вообще, будьте добры, примеры в студию! Это какой же кодек так работает?

Я показал что у задачи имеется как минимум одно решение. А поскольку писать кодек будем не мы, не имеет принципиального значения сколько решений: одно или несколько - задача решаема и нам этого знания достаточно. "Хотите знать больше? Читайте исходники." (с) Только где к неровской продукции её будешь искать? Просматривал исходники старого rmvb, интересное зрелище, в малых дозах, рекомендую)
-=[Hikari]=-   User profile
  08.12.2008 16:48
Итак, получен результат работы программы.
Исходник: Running Man 720p@60, сделан resize до 432p и framerate conversion на 30 fps.
General
File size : 45.1 MiB
PlayTime : 2mn 45s
Video
Bit rate : 2073 Kbps
Bits/(Pixel*Frame): 0.208
BitRate_Max : 7641920 (жесть! если честно, не ожидал такого от однопроходного кодирования)
Audio
AAC LC VBR ~212 kbps

На видео видны разве что градиенты на полутонах, а так - никаких нареканий. Да и градиенты эти были и в самом исходнике, только меньше. При кодировании видео, которое было срипано с нормального DVD, качество должно получиться отличное.

Итог: ну, я писал уже. Если б можно было, поставил бы "5".

P.S. А 2-pass всё равно рулит :-P

P.P.S. Сейчас попробую ещё в 60 фпс сделать на таком же разрешении. Интересно, как изменится размер


Бармалино, Нет никаких запретов разработать алгоритм в котором часть функций двух проходов выполнится за один
гыгыгыгыгыгыгыгы
разрабатывай на здоровье

сразу после прохода 50 кадров, их можно пройти ещё раз, вторым проходом
Можно, но не нужно. Для повторного прохода есть соответствующий режим. И вообще, будьте добры, примеры в студию! Это какой же кодек так работает? Просвети меня, тёмного и жестоко наколотого ^___^
X264? Nero AVC? XviD? DivX? VP7? Экзотику не предлагать, только распространённые кодеки.
Бармалино   User profile
  08.12.2008 12:37
Hikari, тебя жестоко накололи. Нет никаких запретов разработать алгоритм в котором часть функций двух проходов выполнится за один, и назовётся всё это однопроходным кодированием

Ни в каком кодеке 1-pass mode не работает лучше, чем 2-pass по причине того, что дальность предсказания битрейта в 1-pass - отсилы полсотни кадров

А больше и не сильно и надо, сразу после прохода 50 кадров, их можно пройти ещё раз, вторым проходом. Но формально это будет считаться одним проходом. При этом не получится точно подсчитать финальный битрейт, но это не всегда и необходимо.
-=[Hikari]=-   User profile
  08.12.2008 05:23
Aggressor, зачем вообще нужен 2й проход
эммм..... ну дык....

при первом проходе кодек анализирует материал, его динамичность, количество движущихся макроблоков; для каждого кадра определяется его тип (I, P, B), предполагаемый quantizer, количество макроблоков, предсказанных из других кадров, количество битов, необходимых для его кодирования и другие параметры. На основании данных, собранных в первом проходе, кодек делает второй проход, оптимально распределяя битрейт между сценами. Такой метод позволяет не тратить лишние биты там, где это не нужно (статичные сцены), и направить их на динамичные участки видео.

Ни в каком кодеке 1-pass mode не работает лучше, чем 2-pass по причине того, что дальность предсказания битрейта в 1-pass - отсилы полсотни кадров, а в 2-pass - весь клип/фильм. Кроме того, есть такая штука как задержка реакции кодека на изменение динамичности сцены, т.е. если в пределах N кадров динамика повышается, то с N+1-го повышается и битрейт, а сами N кадров остаются закодированными с низким битрейтом. То же самое и наоборот, при падении динамики. А всё потому, что однопроходный режим оптимизируется для real-time кодирования, а для обработки готового материала рекомендуется только 2-pass/multipass.

При всём моём к тебе уважении (а оно сильно выросло после "Starfire" и статьи "Нарезка"), быть может, это ты неправильно понимаешь суть двухпроходного кодирования?
В любом случае, напиши, пожалуйста, как его понимаешь ты. Мне так, для себя интересно

Да, и я ж не говорю, что прога отстой. H264, пусть даже 1-проходный - он ведь в разы лучше даже 2-проходного XviD'a. А для.. кхм... новичков в самый раз подойдёт (т.к. там две кнопки всего)

(update)
для работы нужен AviSynth не ниже 2.5.7, верно?
надо указать где-нибудь, а то жалобы могут полезть "кривая прога" и т.п. Вообще, я думаю, нужно поставить пользователя в известность, что необходим AviSynth, и где его можно скачать. Ведь если человек не умеет пользоваться VirtualDub'ом, вряд ли он сам поймёт, как работает эта прога.

ну а теперь по самому процессу кодирования.
--ref 16 --mixed-refs --no-fast-pskip --b-pyramid --weightb
--me umh --8x8dct --no-psnr --no-ssim и т.д.

no comments, просто "+1"

--analyse all --trellis 2 --subme 9 --b-adapt 2
респект!

--bframes 3: маловато будет! 5-8 можно ставить смело. В комплексе с "--mixed-refs --b-pyramid --weightb" даст небольшое уменьшение размера при той же скорости кодирования

В общем, качество видео обещает быть хорошим. Если б можно было оценивать статьи, поставил бы "5", даже не дожидаясь результатов кодирования (а это ещё часов 5 :'((( )

P.S. А 2-pass всё равно рулит :-P
FreY   User profile
  08.12.2008 02:39
Aggressor, поклон тебе до земли.
Aggressor   User profile  Video channel
  08.12.2008 01:40
-=[Hikari]=-, лучше матчасть поизучай, в плане "зачем вообще нужен 2й проход". Потому что ты неправильно понимаешь суть многопроходного кодирования.
-=[Hikari]=-   User profile
  08.12.2008 00:54
так-с, прогу скачал, щас мучать буду

судя по описанию - мощный инструмент по спасению нупов от перенапряжения межушного нервного узла
ну, оно и к лучшему, наверное - по крайней мере, их не будет вводить в ступор кодирование того, что они нарезали в редакторе, и они не будут совать это в MovieMaker или ещё куда...

Aggressor, два прохода лучше, когда есть ограничения по битрейту
ИМХО, два прохода в любом случае лучше, так как качество выше, и размер меньше.
Сейчас буду подтверждать свое ИМХО экспериментально, отпишусь по результатам
Aggressor   User profile  Video channel
  08.12.2008 00:51
CHebur, сенкс, поправлю в следующей версии. А пока сойдет за фичу )
CHebur   User profile
  08.12.2008 00:12
Обнаружил глюк
Если программу установить в папку с русским названием, то она не работает!
Lirinis   User profile  Video channel
  07.12.2008 21:08
De29v101L, интересно а у пендосов аналоги существуют?
Да, у них есть ZarxGUI. Он есть настолько давно, что проигрывает уже по всем статьям. :-)
Turbo   User profile  Video channel
  07.12.2008 19:36
Default Avatar
ARACAN, ini-файл там появится, надо только разок что-нибудь закодировать.
Vakaseemer   User profile
  07.12.2008 19:17
Наконец-то, наконец-то придумана кнопка "сделать красиво"!
Так, начало положено, надеюсь, в будущем подобные кнопки появятся и в больших программах вроде Фотошопа и 3D-редакторов :)
Lusi_7   User profile
  07.12.2008 19:13
Спасибо) Как раз готовится несжатый исходник) Воспользуюсь новой версией)) !!!


 Случайная цитата