Reddit - трекери - Довідковий посібник для доброго початку x264
Взято з форумів tehconnection

x264 - жорстка коханка. Незважаючи на те, що він в основному використовується для стиснення фільмів, він чомусь дуже оптимізований для аніме-щупальцевого порно. На додачу до цього, немає вбудованого інтерфейсу для початківців, і, схоже, наявна документація існує лише для того, щоб вона могла насміхатись і принижувати пересічну людину. Ну не бійтеся! Незважаючи на те, що я нічого не кодував для сайту, мабуть, більше року, я тут, щоб провести вас через значущі параметри (більшості) x264, щоб ви могли краще кодувати. І як бонус, написання цього дозволить персоналу не понизити мене до класу користувачів, де проживають решта ваших брудних свиней. Отже, без зайвих слів.
Це безпроблемний параметр, який не вимагає тестування, але критично важливий для отримання максимально високої якості, не порушуючи відтворення автономного пристрою (Popcorn Hour, WDTV Live, Roku). Взято безпосередньо з посібника з кодування HD:
Після того, як ви обрізали своє джерело в AvsPmod або будь-якому іншому редакторі скриптів, який ви використовуєте, візьміть рівняння 8388608/(ширина після обрізання x висота після обрізання), ввівши ширину та висоту вашого джерела в те, що, як я сподіваюся, є достатньо очевидним заповнювачами. Візьміть результат і округніть його до найближчого цілого числа. Це номер, який ви повинні використовувати для налаштування --ref.
B-кадри мають достатній контроль над стисливістю (розміром) вашого кодування. Більше фреймів = довший час кодування, але також менший розмір файлу. Але ви не можете точно примусити більше bframes в кодування, якщо x264 вирішить, що вони йому не потрібні. ну, не без використання b-упередження та катастрофічно порушуючих ситуацій. У будь-якому випадку, ідеальну кількість b-кадрів, необхідних для кодування, можна визначити в одному тестовому кодуванні. І під "одиночним" я маю на увазі, що вам потрібно буде скористатися avisynth-фільтром SelectRangeEvery (), щоб захопити кілька тисяч кадрів для тестування за допомогою --bframes 16. x264 виплюне файл журналу, коли кодування тесту буде виконано. Десь у цьому журналі буде рядок, який виглядає так:
x264 [інфо]: послідовні B-кадри: 0,5% 1,1% 3,6% 24,0% 14,4% 43,3% 4,0% 3,4% 1,1% 1,4% 0,5% 0,9% 0,3% 0,3% 0,2% 0,9% 0,1%
Перераховано 17 значень. Кожен із них представляє певну кількість b-кадрів, від 0 до 16. Кожне значення показує відсоток від загальної кількості кадрів, які змогли використати цю кількість послідовних b-кадрів. З цих цифр я зазвичай вибираю найбільший ≥ 1,0%, але робив винятки для значень 0,9%.
Незалежно від того, чи ви вирішите кодувати crf або двопрохідний, цей параметр матиме найбільш значний вплив на загальну якість вашого кодування. З 2-прохідним ви вибираєте бітрейт. За допомогою crf ви вибираєте рівень якості у вигляді чисельного коефіцієнта. Бітрейт/якість буде змінюватися в залежності від того, що ви кодуєте, але в середньому буде дорівнювати вашому введеному для цього значення.
CRF та 2-х прохідні використовують абсолютно однаковий алгоритм, і тому буквально немає переваг у використанні одного над іншим. Якщо кодування crf 20 дає вам середній бітрейт 6000 кбіт/с, 2-прохідне кодування @ 6000 кбіт/с дасть точно таку ж якість. Крім того, журнал першого проходу 2-прохідного кодування дасть вам еквівалентний коефіцієнт швидкості, який можна використовувати для кодування crf.
Знову ж таки, жоден із методів НЕ має переваг. Багато людей віддають перевагу двопрохідності, оскільки не до кінця розуміють, як використовувати наступний параметр, який я перейду. Інші будуть виконувати тестові кодування як з CRF, так і з двома проходами, щоб досягти ідеальної якості. Моїми уподобаннями є CRF, але лише тому, що я вважаю, що бітрейт/розмір файлу повинні бути неактуальними, а якість зображення ніколи не повинна загрожувати. Знову ж таки, все, що я коли-небудь кодував, приблизно 400 Гб.
Розумний бітрейт для 2-pass/crf буде залежати від джерела та деяких інших налаштувань. Я не можу сказати багато про бітрейт, але CRF майже завжди повинен бути між 16 і 23.
Поки crf та 2-прохідні впливають на загальну якість кодування, qcomp впливає на те, як застосовуються crf та 2-прохідні. Поряд із crf/2-pass це найважливіший параметр x264 для підвищення якості остаточного кодування. qcomp завжди буде числом від 0,0 до 1,0. При 0.0 ваш номер CRF або двопрохідний бітрейт дадуть постійний бітрейт протягом усього кодування. На рівні 1.0, дисперсія бітрейту коду повністю не обмежена, і тому вона буде хитатися, як дошкільник із залежністю від тріщин.
За замовчуванням - 0,6, але для дії в реальному часі слід встановити 0,7 або 0,75 для джерел із великою кількістю зерна/шуму. Для низькоякісних джерел із невеликим вмістом зерна або без нього, неякісною анімацією чи темними фільмами без великої кількості зерна ви можете спробувати приблизно 0,55 або 0,5. По суті, життєздатний діапазон qcomp для будь-якого джерела буде (приблизно) 0,45 - 0,75.
Це налаштування, де тестування кількох значень однозначно варто.
Поділіться посиланням
ME (оцінка руху) та MERange (діапазон оцінки руху) допомагають x264 прогнозувати рух по кадрах та стискати на вищому рівні якості на основі інформації, яку ці два параметри дозволяють йому збирати. Чим вища якість алгоритму оцінки руху і чим вищий діапазон оцінки руху, тим вища якість виходить. АЛЕ це також означає збільшення часу кодування. Також, як очікувалося, ви почнете спостерігати зменшення віддачі щодо якості, коли збільшуєте ці два параметри.
Однак для наших цілей ці два параметри просто прості. Якщо ваш комп’ютер має старіший/повільніший процесор, використовуйте --me umh --merange 24. Вони були визначені найкращим компромісом між якістю та часом кодування, і umh дуже здатний дати таку якість, до якої ви повинні прагнути . Однак для тих, хто має швидше апаратне забезпечення, яке хоче трохи більше якості: --me tesa --merange 16 - останнє слово тут.