Статьи 

Paper

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

Четверг, 01 Ноябрь 2012

Представляем вашему вниманию программу Baka Encoder, которая лёгким движением мышки кодирует экспортированные из редактора клипы в компактный mp4.

Программа поддерживает: Windows 7, Windows 8/8.1, Windows 10

Кодирует: Uncompressed RGBA, RGB, RGB48, YUY2, YV12 / Avisynth скрипты / HuffYUV / Lagarith без NullFrames / UT Video / Uncompressed PCM audio / MJPG

Преимущества

  • Не требует установки
  • Интуитивный интерфейс
  • Толковая очередь заданий
  • Полная поддержка юникода
  • Кодирование можно поставить на паузу
  • Можно закидывать сразу несколько роликов или папок
  • Нет hardcoded настроек - профили кодирования можно весьма свободно изменять (см. файлик «Baka Encoder.config.xml» в корне)
  • Мелкие интерфейсные плюшки: отображение прогресса в панели задач, нормальное перетаскивание файликов, DPI awareness и прочее
  • Для кодирования видео не требуются никакие дополнительные программы. Ависинт нужен только для обработки скриптов, других зависимостей нет
  • Есть возможность кодирования 10-битного видео
  • При необходимости осуществляет корректное преобразование RGB-YCbCr
  • Предотвращает апсемплинг
  • Есть 64-битная версия
  • Имеются Английская, Китайская, Немецкая, Польская, Португальская (Бразильская), Русская, Эстонская и Японская. Английская включается автоматически на нерусскоязычных операционных системах)

Примечания

  • Многоканальное аудио иногда кодируется некорректно.
  • При итоговом сабсемплинге 4:2:0 ширина и высота входного (и выходного) видео должны быть кратны 2 пикселям.
  • При итоговом сабсемплинге 4:2:2 ширина входного (и выходного) видео должны быть кратны 2 пикселям.
  • Вообще используйте стандартные размеры.
  • Одновременно может быть запущен только один экземпляр приложения.
  • Чтобы загрузить настройки из определенного файла перетащите его на Baka Encoder.exe.
  • Хотя Baka Encoder это прежде всего инструмент с графическим интерфейсом, параметры командной строки он тоже обрабатывает
    "Baka Encoder.exe" "path_to_config_file" "path_to_input_file_1" ... "path_to_input_file_n"
  • Некоторые антивирусные продукты ошибочно классифицируют Baka Encoder как вредоносное програмное обеспечение. Это скорее всего вызвано извлечением запакованных инструментов и библиотек, так как подобное поведение необычно. (Предположительно исправлено с версии 1.1.0)
  • Временные файлы хранятся в папке "TEMP Baka Encoder" в корне диска где находится файл для кодирования, например, если вы кодируете файл
    "C:/My Documents/my amv.avi"
    то будет использоваться папка
    "C:/TEMP Baka Encoder/"
    Эта папка создается в начале кодирования и автоматически удаляется со всем содержимым по его окончании.
  • Системное меню (вызывается левым кликом по маленькой иконке в левом верхнем углу окна приложения или правым кликом по заголовку окна или его превью в панели задач) содержит дополнительные пункты "Поверх всех окон", "Вести лог", "Донейт" и "О программе".
Скачать Baka Encoder 32-битная версия Скачать Baka Encoder 64-битная версия Скачать Baka Encoder Смешанная 32-64-битная версия
(с использованием 32-битного AviSynth и 64-битными x264 и x265)

Форум поддержки

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

Официальная страничка программы с дополнительной информацией

Описание конфигурационного файла


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

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


Bill Ein   User profile
  21.11.2012 19:29
Проще говоря сиквенс нервно курит в сторонке в сравнении с привычным как раз таки большинству анкпрессед, лосслесс и пустышками. И никто кроме Pit3ds им не пользуется.
batareiko   User profile
  21.11.2012 13:26
Default Avatar
Вообще-то анкомпрессед - это по сути пачка bmp, записанная друг за другом и имеющая общий заголовок. И что быстрее - читать каждый кадр по отдельности, постоянно обращаясь к файловой системе, или кадры из одного файла - это еще вопрос.
Добавлять поддержку работы с сиквенсами напрямую я вряд ли буду. Во-первых для этого придется прикручивать хитрый диалог с выбором диапазона изображений, целевого fps и аудио дорожки (кстати что-то подобное уже где-то было), и я не уверен что это будет быстрее, чем написать пару слов в скрипте вручную, во-вторых поддержка юникода станет неполной, так как ImageSource в ависинте его не поддерживает.
Bill Ein   User profile
  21.11.2012 12:57
Pit3ds написал(а):
Ну это скорее по моим соображениям. Не буду врать. Но по сути проге не приходится открывать весь файл что-бы загрузить видео фрагмент, а достаточно выбрать нужные кадры которые он уже знает какие. Не надо зализать в видео контейнер так сказать, что-бы там уже всё перебрать и найти нужное. И думается мне, что поиск нужного кадра будет происходить быстрее когда у тебя в памяти сразу каждый фрагмент лежит перед тобой, в отличии от целого контейнера, где все файлы лежат в неком контейнере при открытии которого ему надо понять сначала, что это за приблуда такая и каким кодеком обрабатывать. Обрабатывать поток видео из контейнера и находить нужный кадр. Вообщем я не могу точно описать в чём преимущества и работа с секвенциями, но по моим наблюдениям и моей логике оно должно быть на лицо.


Вес у БМП довольно не хилый, возможно даже больше, чем вес анкомпресса, обрабатывать их наверняка тоже не самая лёгкая задача и без прередера что-либо делать с этим будет весьма проблематично, а вот с лосслесс и пустышками можно вообще обойтись без пререндера, особенно если дело касается исключительно монтажа. Ну, а уже во время монтажа файл дробиться достаточно мелко, чтобы это не вызывало каких-то явных проблем при отключении электричества во время пререндера.
Поэтому твои аргументы пока можно считать как минимум сомнительными.
На крайний случай для удобства монтажа можно вообще сделать пустышку с понижением разрешения до 640х360 и загнать пререндер, а по окончанию монтажа подменить пустышку с понижением разрешения на пустышку с оригинальным HD или Full HD разрешением, после чего создать в проекте новый ряд с соответствуещим разрешением, куда тупо скопипастить начальный ряд низкого разрешения. Хитрость очень актуальная для работы на маломощных тачках.
Что ещё хорошо в пустышках, так то, что они не занимают как такового места на жестяке. А вот сиквенсы из БМП сожрут его не мало.
Pit3ds написал(а):
Пруфлик не дам ибо нету. Ну сам я именно так работаю.


А в предыдущем посте говорил, что все так делают.
Pit3ds   User profile
  21.11.2012 08:56
[quote="Bill Ein"]
На чём основано это утверждение?
Пруфлинки бы. [/quote]
Ну это скорее по моим соображениям. Не буду врать. Но по сути проге не приходится открывать весь файл что-бы загрузить видео фрагмент, а достаточно выбрать нужные кадры которые он уже знает какие. Не надо зализать в видео контейнер так сказать, что-бы там уже всё перебрать и найти нужное. И думается мне, что поиск нужного кадра будет происходить быстрее когда у тебя в памяти сразу каждый фрагмент лежит перед тобой, в отличии от целого контейнера, где все файлы лежат в неком контейнере при открытии которого ему надо понять сначала, что это за приблуда такая и каким кодеком обрабатывать. Обрабатывать поток видео из контейнера и находить нужный кадр. Вообщем я не могу точно описать в чём преимущества и работа с секвенциями, но по моим наблюдениям и моей логике оно должно быть на лицо.
[quote="Bill Ein"
Пруфлинки бы [/quote]
Пруфлик не дам ибо нету. Ну сам я именно так работаю. Занимаюсь 3д графикой и тут без вариантов только секвенция.)
Bill Ein   User profile
  21.11.2012 00:20
Pit3ds написал(а):
1. Пожалуй самый элементарный и важный плюс работы с последовательностью кадров- В любое время можно прекратить рендерить и через время продолжить с того места где остановился просто с указыванием с какого кадра рендерить(выводить). Вырубили свет во время рендера в вегасе- не беда.


Убедил
Pit3ds написал(а):
2. Второй плюс это никаких проблем в воспроизведением видео в любых редакторах(ну с видео без сжатия тоже нет фактический).


Пустышки без явных извращений в скрипте и лосслесс avi летают быстрее анкомпрессед .avi, да и "последовательности" скорее всего тоже.
Pit3ds написал(а):
3. Любая прога будет охотнее и быстрее работать именно с последовательностью кадров.


На чём основано это утверждение?
Pit3ds написал(а):
4. В 3д графике да и вообще во многих областях графики все уже давно работают именно так и все отлично понимают плюсы данного подхода. Пора и тут что-то менять)


Пруфлинки бы
Pit3ds   User profile
  20.11.2012 18:02
1. Пожалуй самый элементарный и важный плюс работы с последовательностью кадров- В любое время можно прекратить рендерить и через время продолжить с того места где остановился просто с указыванием с какого кадра рендерить(выводить). Вырубили свет во время рендера в вегасе- не беда.
2. Второй плюс это никаких проблем в воспроизведением видео в любых редакторах(ну с видео без сжатия тоже нет фактический).
3. Любая прога будет охотнее и быстрее работать именно с последовательностью кадров.
4. В 3д графике да и вообще во многих областях графики все уже давно работают именно так и все отлично понимают плюсы данного подхода. Пора и тут что-то менять)
Зы если я в чём-то не прав или хотите поспорить, я буду только рад)
Pit3ds   User profile
  20.11.2012 17:32
Bill Ein написал(а):

Если я тебя правильно понимаю, то ты каким-то образом хочешь полностью обойти пункт 4)? А в энкодер то пихать что? Файл проекта? Или я тебя вообще не понял?


Удобнее же работать с последовательностью кадров, чем с анкомпрессед. 1. Берём исходник и переводим его в последовательность кадров(а ещё круче если не весь исходник, а только заданный промежуток). Выводить можно в тот-же bmp или что-нибудь по легче. 2. Пихаем секвенцию в вегас например с указанием правильного фпс и легко уже режем и тд. Так же из вегаса экспоротим в секвенцию. Что-бы весь пайплайн проходил через секвенции кадров. Звук разумеется отдельной дорогой выводим. В проге на конечном этапе выводим из вегаса секвенцию и отдельно звук и уже в проге этой склеиваем и кодируем в мп4.
VirtualTT написал(а):
Я так понял что речь шла об image sequence, то бишь когда каждый кадр хранится отдельно. Обрабатывается без проблем через скрипт с использованием ImageSource().


Да руками можно сделать всё что угодно, а я уже хочу готовую фичу для работай с секвенциями.
Если подобные скрипты есть в свободном доступе, то тем более почему-бы их не запихнуть в стандартный пакет программы?
Bill Ein   User profile
  19.11.2012 18:02
VirtualTT, ОМФГ, а какой в этом бреде смысл? А если каждый кадр отдельно, то как ещё иначе эту последовательность запихнуть в энкодер без скрипта?
batareiko   User profile
  19.11.2012 17:18
Default Avatar
Я так понял что речь шла об image sequence, то бишь когда каждый кадр хранится отдельно. Обрабатывается без проблем через скрипт с использованием ImageSource().
Bill Ein   User profile
  19.11.2012 15:06
Pit3ds написал(а):
Нет. Скармливаешь ей секвенцию и на выходе получаешь мп4. Или наоборот даёшь ей мп4 и на выходе сиквенция.
В приоритете первый пункт.


Т.к. мне абсолютно неизвестен твой уровень познаний, то давай кое-что проясним.

Обычный процесс:

1) Берём исходник

2)а) пихаем в редактор как есть или
б) переводим в анкомпрессед или лосслесс ави и пихаем в редактор или
в) создаём ави пустышку и пихаем в редактор

3) режем, месим, синхрим, эффектим

4) рендерим/экспортируем полученную последовательность (сиквенс) из редактора в анкомпрессед или лосслесс ави

5) пихаем полученный файл в энкодер и кодируем в h264/aac *.mp4

Если я тебя правильно понимаю, то ты каким-то образом хочешь полностью обойти пункт 4)? А в энкодер то пихать что? Файл проекта? Или я тебя вообще не понял?
Pit3ds   User profile
  19.11.2012 03:58
VirtualTT написал(а):
Pit3ds, а что мешает сделать для нее скрипт?


Мешает лень изучать и возиться.
Bill Ein написал(а):
Pit3ds, ты хочешь, чтобы энкодер встраивался как плагин в любой редактор что ли или что?


Нет. Скармливаешь ей секвенцию и на выходе получаешь мп4. Или наоборот даёшь ей мп4 и на выходе сиквенция.
В приоритете первый пункт.
batareiko   User profile
  15.11.2012 18:51
Default Avatar
Pit3ds, а что мешает сделать для нее скрипт?
Bill Ein   User profile
  15.11.2012 05:39
Pit3ds, ты хочешь, чтобы энкодер встраивался как плагин в любой редактор что ли или что?
Pit3ds   User profile
  15.11.2012 00:15
Опять с секвенциями не умеет работать)
Bjakua   User profile
  08.11.2012 17:34
Качнул, юзаю.
HikikomoryHTS   User profile
  07.11.2012 08:35
норм че кодер=)
Bill Ein   User profile
  06.11.2012 21:55
InShaDoW написал(а):
Format Factory Лудче незнаю


AMV Encoder - теперь знаешь
Tesc   User profile
  06.11.2012 21:11
InShaDoW ,лучше бы ты русский лучше знал
InShaDoW   User profile
  07.11.2012 18:35
Format Factory Лудчше незнаю
Bill Ein   User profile
  06.11.2012 14:22
Aine написал(а):
З.Ы: Неужели я наконец забуду про продукты winnydows-a


http://petromi.com/get/3b71753777.png
trampler   User profile
  06.11.2012 13:05
Хороший гуи, юзаю иногда (когда получатели с кривыми декодерами жалуются на морковный красный в rec.709).
Ryner   User profile
  06.11.2012 11:04
обрадовали, забрал
Aine   User profile  Video channel
  06.11.2012 11:04
Bill Ein,

Спасибо, вечером буду тестировать.
З.Ы: Неужели я наконец забуду про продукты winnydows-a
Bill Ein   User profile
  06.11.2012 10:58
Aine,

video pass_count="1" max_width="480" max_height="270" resize_method="spline"

cmd=" --crf 20 --preset placebo --psy-rd 0.00:0.00 --deblock 1:1 --ref 2 --vbv-bufsize 25000 --vbv-maxrate 20000 --log-level none --quiet"
Disengager   User profile
  06.11.2012 10:05
Good.
batareiko   User profile
  06.11.2012 10:16
Default Avatar
Всем пожалуйста
Aine написал(а):
В PSP формат случайно не кодирует?

Случайно нет, но сделать соответствующий пресет поглядев в поисковике подходящие параметры для x264 (или поэкспериментировав с ним самому) вполне возможно.
13 no Tenshi   User profile
  06.11.2012 08:06
Спасибо, забрал, потестил на Восьмёре и Севене, вроде нормально всё
Bill Ein   User profile
  06.11.2012 07:57
MIBIHA, тогда
Bill Ein написал(а):
сразу можешь и мой конфиг заценить
http://www.sendspace.com/file/g6hs0w

MIBIHA   User profile
  06.11.2012 07:39
Bill Ein, лол) да я думаю единицы полезут в этот конфиг) для меня лично это пока что китайская грамота - для нас придумали кнопочки)
Bill Ein   User profile
  06.11.2012 08:53
Если кто-то хочет настроить сам:

ref - ограничивает использование оперативной памяти во время энкода, важно знать при кодировании Full HD, т.к. на максимальных значениях при недостатке оперативы может случиться краш x264. В т.ч. ref 3 и ref 4 обеспечивают наилучшую совместимость с онлайн-плеером, что из них лучше - пока вопрос. Однако, на низких значениях повышается время кодирования и вес файла.

level - определённое кол-во блоков, рассчитывающееся от разрешения и фпс. Правильно подобранный level ускоряет кодирование. Наилучшая совместимость с онлайн-плеером достигается при level 4.1 и меньше. При кодировании по CRF правильный level определяется автоматически.

--vbv-bufsize 50000 --vbv-maxrate 62500 - ограничение для наилучшей совместимости с онлайн-плеером

--colormatrix bt709 --colorprim bt709 - требуется для кодирования HD и Full HD в 10бит для адекватного отображения цветов. Не поддерживается онлайн-плеером, равно как 10бит.

psy-rd - служит для наилучшего сохранения мелких деталей, градиентов, дебанда и шума, но при высоких CRF или недостатке битрейта повышает вес в холостую и несёт артефакты. Ниже будет приведена таблица рекомендуемых мною ориентировочных настроек psy-rd по отношению к CRF, от которых вы уже можете танцевать подбирая нужное значение на глаз.

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

CRF - кодирование по методу выдержки определённого уровня качества в каждом кадре. Хоть и однопроходное, но более мудрое, экономное и быстрое, чем трёхпроходное кодирование. Можно варьировать не только по целым значением, т.е. можно выставить, например, crf 16.5 или crf 15.7.


Ориентировочная таблица настроек для CRF:
Unwatchable (несмотрибельное качество)
--crf 24 --psy-rd 0.00:0.00 --deblock 3:3
--crf 23 --psy-rd 0.00:0.00 --deblock 3:2
--crf 22 --psy-rd 0.00:0.00 --deblock 2:2
Poorly (плохое)
--crf 21 --psy-rd 0.00:0.00 --deblock 2:1
--crf 20 --psy-rd 0.00:0.00 --deblock 1:1
Average (среднее)
--crf 19 --psy-rd 0.20:0.00 --deblock 1:0
--crf 18 --psy-rd 0.40:0.00 --deblock 0:0
Normal (обычное)
--crf 17 --psy-rd 0.60:0.00 --deblock 0:-1
--crf 16 --psy-rd 0.80:0.00 --deblock -1:-1
HQ (отличное)
--crf 15 --psy-rd 0.90:0.00 --deblock -1:-2
--crf 14 --psy-rd 1.00:0.00 --deblock -2:-2
Noise (наилучшее сохранение шума)
--crf 13 --psy-rd 1.10:0.10 --deblock -2:-3
--crf 12 --psy-rd 1.20:0.25 --deblock -3:-3


Для 10бит CRF в таблице сдвигается на 1 вниз, т.е. HQ пресеты для HD и Full HD будут выглядеть так:
--crf 16 --psy-rd 0.90:0.00 --deblock -1:-2 --colormatrix bt709 --colorprim bt709
--crf 15 --psy-rd 1.00:0.00 --deblock -2:-2 --colormatrix bt709 --colorprim bt709


С остальным экспериментально уже можете разобраться сами.
P.S.
1) Для "standart" версии используйте CRF 18-16
2) Для "SD deluxe" версии используйте CRF 16-14
3) Для "HD/Full HD deluxe" версии 10бит используйте CRF 17-15
4) Не выкручивайте аудио, т.к. 320 кбпс в mp3 = 150-190 кбпс в AAC, напрасное увеличение битрейта качество не улучшит, а вес увеличит.
5) Не бойтесь экспериментировать, т.к. идеальных универсальных настроек для наилучшего кодирования абсолютно любого видео нет, но и не перегибайте палку. Я крайне не рекомендую использовать CRF больше 18, т.к. это отрицательно скажется на качестве, равно как и не рекомендую использовать CRF меньше 14, т.к. такое высокое качество для кодирования 99,99% клипов просто не требуется.


 Интересное на CreaSpace