Весело, однако.
Закодил первую серию "Рейлгана", кванты ок, примерно 23 у B-фреймов, но битрейт в эндинге явно не понравился - выше 2000, а там всего лишь довольно не динамичное дело с шумком. Всё это было с CRF18.5. Модифицированная сборка с AQ mode 3 и 4.
Ок, думаю выделить эндинг как зону и запилить с CRF повыше, чисто визуально оценить обрезаю эндинг, беру CRF21. На выходе получаю "B-квант"...НИЖЕ 23!
WIN?
И я пока не совсем понимаю как пользоваться --zones в скрипте на нескольких зонах. Думаю, просто использовать "/"
Ограничения:
Количество референсных кадров никогда не должно превышать значения, которое было установлено первоначально.
Scenecut не может быть включен и выключен.
Merange не может превысить то значение, которое первоначально было определено для --me esa/tesa.
Subme нельзя изменить, если изначально было выбран 0.
Вы не можете установить esa или tesa для --me, если --me было изначально установлено как dia, hex, или umh.
Пример: 0,1000,b=2/1001,2000,q=20,me=3,b-bias=-1000
Примечание: значения b, которые больше/меньше стандартного на 100%, скорее всего приведут к полному искажению видео.
В консоли: --zones
|
Итак, дабы немного повысить качество и уложиться в хороший размер, думаю немного схитрить.
Выделил жирным 2 спорных момента.
ЭТО ВЫЗОВ! ;D
Если я не могу повысить эти значения в конкретной зоне, то почему бы мне их не занизить на остальных участках?
Занятие весьма интересное, времени на это у меня достаточно.
Задача - найти границы нужных зон (OP+ED), визуально перед этим отдельно их закодировав и оценить примерные значения CRF, прописать всё это в скрипте. Пить чаёк и ждать результата. Для сравнения - закодировать 1 серию по-дефолту в CRF18.
Не по-дефолту
--crf 18.0 --preset medium --tune animation --level 3.1 --ref 8 --aq-mode 4 --aq-strength 1.0 --deblock -1:-1 --merange 32 --bframes 11 --b-adapt 2 --trellis 2 --no-fast-pskip --qpmin 10 --qpmax 40 --psy-rd 0.60:1.00 --qcomp 0.65 --vbv-maxrate 17500 --vbv-bufsize 14000 --partitions all --subme 11 --me tesa --rc-lookahead 80 --zones=0,3427,subme=10,me=umh/3428,5586,crf=21/5587,33830,subme=10,me=umh/33831,35988,crf=21/35989,36256,subme=10,me=umh --extra:
|
Было бы здорово, если бы такое можно было бы провернуть со звуком. Например 192kbps на OP и ED, а на остальную болтовню - 96kbps.
Итак, получил ERROR
x264 [error]: invalid zone: start=35989 end=0
|
Видимо 0 за конец не катит, хотя в
Trim срабатывало...
Исправил на номер последнего кадра (36256), как откодится по-дефолту, попрёт это нечто.
Итак, дефолтный проход прошёл, получил на выходе
Общее время кодирования: 23 min 12 sec
Файл получился на: 205.55 mb
|
Мой подправленый скрипт x264 сожрал, жду.
Итак, выход
Общее время кодирования: 25 min 55 sec
Файл получился на: 184.62 mb
|
И тут назревает вопрос, а понял ли x264 моё me=umh?
Ведь должно быть целое число, ибо
Пробуем с целым числом. Попиваем газировочку,
курим жуём печеньки.
Получаем
x264 [error]: invalid zone param: me = 3
|
А значит, всё было верно.
Возникает вопрос - а стоило ли оно того?
Экономия - 10% (конкретно от этой серии), точнее 20 Мб. Ибо разницы никакой не будет, разве что OP\ED сменится во второй половине сериала (а там, возможно, можно и побольше отхапать). Теперь примерно посчитаем:
Серий у нас аж 24, итого 20*24=480Мб. Думайте сами.
И экспериментируйте на здоровье, не бойтесь