AnilibriaEncoder
Утилита для обработки видео по стандартам Анилибрии.
Настройка
Важно. Перед запуском нужно убедиться, что в системе установлен Python 3. Если он не установлен, идём на сайт https://www.python.org/ и скачиваем версию для своей системы. Во время установки не забудьте выбрать "Add Python 3.x to PATH", чтобы избежать проблем с запуском.
После установки Python устанавливаем зависимости. Для этого можно запустить файл setup.bat или setup.ps1. Всё, что он делает - это выполняет команду:
pip install -r requirements.txt
Далее идём настраивать под себя.
В системе должен присутствовать ffmpeg - https://ffmpeg.org/
И MKVToolNix - https://mkvtoolnix.download/downloads.html
Если их нет, то устанавливаем.
После установки открываем блокнотом (в идеале Notepad++ или что-то подобное) файл config.py и задаём параметры:
suffix = ''
fromdir = r'E:\2019\Kenja no Mago - AniLibria.TV [WEBRip 1080p]\\'
todir = r'D:\2019\Kenja no Mago - AniLibria.TV [WEBRip 1080p HEVC]\\'
tmp_dir = r'C:\temp\\'
ffmpeg = r'C:\Program Files\ffmpeg\bin\ffmpeg.exe'
mkvpropedit = r'C:\Program Files\MKVToolNix\mkvpropedit.exe'
mkvmerge = r'C:\Program Files\MKVToolNix\mkvmerge.exe'
Здесь представлены примеры путей.
В переменную "suffix" вставляем свой ник, он будет использоваться для отображения перекодированных дорожек видео.
В переменную "fromdir" вносим путь, откуда мы будем забирать файлы для кодирования. В переменную "todir" вносим путь, куда сложить готовые файлы. В переменную "tmp_dir" вносим путь до папки, в которую будет складываться временный материал, который после завершения будет удалён, если всё было выполнено корректно.
Внимание в системах Windows все пути до папок должны быть экранированы (\\) на конце.
Далее настраиваем пути до исполняемых файлов:
ffmpeg - путь до ffmpeg.exe
mkvpropedit - путь до mkvpropedit.exe (в MKVToolNix)
mkvmerge - путь до mkvmerge.exe (в MKVToolNix)
Режимы работы
Теперь коротко о режимах работы. За них отвечают 5 переменны: need_encode, need_fix, create_opus, prepare, need_merge.
need_encode - Необходимо перекодирование видео. Если значение True - видео будет перекодировано в формат HEVC для раздач на Анилибрии. Если False, то этап кодирования будет пропущен.
need_fix - Требуется исправление дорожек (убрать задержку, вставить корректные названия для дорожек и прочее)
create_opus - при кодировании видео произойдёт ещё и конвертация аудио в opus 144k. Если дорожка в формате аудио 5.1, то она будет ужата до 2.0.
prepare - Если значение True - будет подготовлен файл без звука для дальнейшего слияния с готовым релизом с x264-видео. Если False - просто перекодирует видео. Параметр игнорируется, если need_encode = False.
need_merge - Если True - будет произведено слияние перекодированного HEVC без звука с оригинальным файлом от технарей (где есть русская дорожка и субтитры). На выходе мы получим нормальный HEVC для заливки. Полезно для онгоингов. Важно, чтобы исходный файл лежал в подпапке source в папке с временными файлами. Если False, то просто исправит дорожки в перекодированном файле.
Запуск программы
Самый простой способ - после настройки запустить файл run.bat или run.ps1. Можно просто запустить app.py, если ассоциация с файлами py установлена на интерпретатор.
В целом же запуск сводится к выполнению такой команды:
python app.py
Примеры использования:
Сделать старый релиз в HEVC. Параметры:
need_encode = True
need_fix = True
create_opus = False
prepare = False
need_merge = False
После чего запустить программу.
Подготовить из исходников HEVC чтобы дальше соединить с готовым релизом от технаря:
need_encode = True
need_fix = False
create_opus = False
prepare = True
need_merge = False
После кодирования, когда будет готов релиз, в папку из переменной temp подложить файл от технаря (из релиза) и переименовать файлы так, чтобы у них было одинаковое название (взять за основы файл из релиза). Затем выставить параметры:
need_encode = False
need_fix = False
create_opus = False
prepare = False
need_merge = True
И снова запустить выполнение. Далее из папки todir забрать готовый материал.
Перекодировать релиз BD-Rip в HEVC кодеком opus
need_encode = True
need_fix = True
create_opus = True
prepare = False
need_merge = False