Как кодировать видео?

В данный момент идет активная разработка энкодера, но он все ещё находится в состоянии «бета»-версии. Работает медленно и не очень эффективно. Релизы новых версий выходят очень часто.

Что требуется?

Выберите один из методов:

  1. Скачайте исходники из официального репозитория и скомпилируйте энкодер x265.exe под свою систему.
  2. Скачайте одну из последних сборок x265.exe с нашего сайта.
  3. Используйте программу кодирования с графической оболочкой (см. конец страницы).

Использование энкодера x265 из командной строки

Энкодер берет на вход файлы в формате YUV или Y4M. Размер картинки (ширина и высота), а также частота кадров (FPS) должны быть заданы. Кодирование запускается с командной строки, по аналогии с x264. Кодировать можно с постоянным битрейтом (флаг —bitrate) или с постоянным качеством (флаг —crf). Пример для постоянного битрейта:

x265.exe input.yuv --input-res 1920x1080 --fps 50 --bitrate 14000 --input-depth 8 -o output.x265

Пример для постоянного качества:

x265.exe input.yuv --input-res 1920x1080 --fps 50 --crf 17 --input-depth 8 -o output.x265

На выходе будет файл в сыром формате x265: output.x265 Разработчики подготовили набор параметров для соотношений время/качество кодирования. Эти параметры задаются с помощью флага —preset. Полный список (от самого быстрого до самого медленного): ultrafast, faster, fast, medium, slow, veryslow, placebo. По умолчанию используется пресет ‘medium’. Пример для установки пресета:

x265.exe input.yuv --input-res 1920x1080 --fps 50 --crf 17 --input-depth 8 --preset veryslow -o output.x265

Для тонкой настройки кодирования существует огромное множество различных флагов, которые можно настраивать под свои потребности. Например, строчка с дополнительными параметрами обеспечивающая более высокое качество, может выглядеть так:

x265.exe input.y4m --q 17 --merange 64 --frames all --ref 4 --max-merge 3 --rect --hash 2 --me 3 --b 6 --b-adapt 1 --rd 2 --rc-lookahead 60 --input-depth 16 --tu-inter-depth=3 --tu-intra-depth=3 --no-tskip --no-tskip-fast --wpp --subme 2 --s 32 --F 6 --o video.hevc

Подробности можно посмотреть в документации здесь (PDF на английском).

Графические оболочки для легкого кодирования

Baka Encoder

59 комментария на “Как кодировать видео?

  1. Помогите пожалуйста! Выходит ошибка!!!( Опишите подробно все действия от А до Я и с пояснениями, т.к. я новичёк. буду очень признателен!!!Пишите на емайл.Очень прошу!

    • Скорее всего выводит ошибку, что нет фаликов типа msvcp120.dll или msvcr120.dll. Что бы всё работало надо для начала скачать Microsoft Visual C++ Redistributable Package. Другими словами, делай так:
      1) Смотришь битность системы — если есть на диске C: папка «Program Files (x86)» — значит у тебя 64, а если только одна «Program Files» — значит 32.
      2) Просто скачиваешь здесь http://softreview.ucoz.ru/load/10-1-0-196 версии 2013 (64 или 32-bit в соответствии с тем что выяснилось в пункте 1. ) и устанавливаешь.
      3) Качаешь саму прогу здесь http://x265.ru/ в разделе «Сборки x265 под Windows». Опять таки — выбор 64 или 32 делать надо в соответствии с пунктом 1
      4) Пользоваться, благодарить авторов, и т.д. и т.п.

  2. У меня на XP даже X32 версии 0.7 пишут «x265.exe не является приложением win32»,
    что я делаю не так. Вышеуказанный пакет стоит.

  3. Сборщикам нужно было при компиляции Platform Toolset v120_xp указывать, а не просто v120 . По-умолчнию VS2013 не собирает для XP.

          • при закидывании видео в программу, в «статусе» пищется :ошибка.
            x265.ru/wp-content/uploads/2015/01/Baka-Encoder1.png
            В «статусе» вместо: ожидание, готово, обработка. Отображается надпись: ошибка.

          • А видео в каком формате? На вход принимаются не все форматы. В описании программы об этом написано.

          • открывал через программу, она видит тока формат .avi.
            как перевести видео дорожку в формате YUV или Y4M?

          • — не принимает формат: YUV или Y4M. Можете скинуть не большой отрезок видео для теста.
            — Почему в программе при нажатии на «добавить файл»: выбирая все поддерживаемые форматы — отображается только: .avi и .avs, (YUV и Y4M — не видит)?
            Можете скинуть не большой отрезок видео для теста.

          • формат: YUY2, YV12 без сжатия, HuffYUV — тоже не видит.

  4. Кодировать в x265 сразу из многих форматов (а не только из «.yuv») можно программами Handbrake или Avidemux. Но в них свои версии x265 встроены.
    Тем, кому нравится работать с командной строкой и кто не боится читать документацию, могу посоветовать установить AviSynth (позволяет писать .avs скрипты для открытия входного файла и его предварительной обработки) и avs4x265.exe позволяющую x265 работать с файлами .avs. И/или можно установить MeGUI в настройках которой нужно включить поддержку x265. После перезапуска она предложит скачать необходимые компоненты. После загрузки компонентов у неё в подкаталоге …\tools\x265\ будут avs4x265.exe и x265.exe (у меня была версия программы 1.8 которую можно заменить на одну из скачанных отсюда версий (2+). Также в MeGUI есть кнопка «One-Click» помогающая обойтись без ручного написания скриптов.
    Пример содержимого файла-скрипта 1.avs с отрезанием черных полей в верхней и нижней части кадра и с приведением размера к 960×540 пикселей:
    DirectShowSource(«C:\1\1.avi»)
    Crop(0,120,-0,-120)
    LanczosResize(960,540)
    Пример содержимого файла 1.bat для быстрого кодирования с пяти тысячного кадра по шести тысячный (при использовании ключа —ssim в конце кодирования можно будет увидеть объективную оценку качества кодирования в метрике SSIM (чем больше — тем лучше качество перекодирования)):
    «C:\1\avs4x265.exe» —x265-binary «C:\1\x265.exe» —preset ultrafast —tune ssim —seek 5000 —frames 1000 —ssim —output «C:\1\1 ultrafast.hevc» «C:\1\1.avs»

    • avi — это не формат, а контейнер, и да, другие контейнеры пока не поддерживаются, хотя в планах есть добавление поддержки mkv.
      Поддерживаемые форматы явно перечислены на странице программы:
      PCM аудио без сжатия, RGBA, RGB, RGB48, YUY2, YV12 без сжатия, HuffYUV, Lagarith (без null frames), UT Video, MJPG, Avisynth скрипты.

  5. Хочу спросить на рутрекере писали что количество B кадров выше 3 снижает детализацию, это правда? Какое число B кадров лучше для советских мультфильмов? время кодирования значения не имеет.

    И ещё CUTree в x.265 это аналог MB-Tree x.264 или что-то новое и какое соответствие CRF между этими кодеками?

    • Б нужно или 8 или 9 или 10. Смотря какой лог. Ниже — снижает детализацию. Что в иксе, что в хевке.
      Кутри аналог дерева (MB-Tree) из икса, чуть измененное, на анимации юзать строго противопоказано, оно экономит на статике в угоду динамике, а в анимации куча статики. Црф я использую такие же, как и на иксе, иногда чуть сильнее. 15-17 диапазон для анимации.

      • А можно полную командную строку? А то перекодировал ролик ~4Mbps
        720p вроде как перебор по битрейту

        • И какой вообще типичный битрейт Мультфильма/Фильма?

          P.S. А по поводу дерева я кажется где-то читал что в X.265 оно работает на оборот по сравнению с X.264 (Или же про AQ ,но сильно сомневаюсь что про AQ)

          • cu-tree я отключал при кодировании
            малодинамичной анимации, но результат мне не понравился: всё сильно размазалось и битрейт увеличился. Вообщем, проверяйте сами на маленьких отрезках.
            Насчёт командной строки:
            В x264 есть —tune animation — для аниме и мультипликации:
            —ref (удваивает —ref если оно больше 1) —deblock 1:1 —psy-rd 0.4: —aq-strength 0.6 —bframes (стандартный —bframes + 2)

            Видел настройки BVzCoder Tuned Anime 720p, действительно помогающие для анимаций:
            —preset slower —tune psnr —crf 25 —limit-tu 0 —bframes 3 —ref 3 —rc-lookahead 60 —merange 60 —aq-mode 1 —aq-strength 0.6 —psy-rd 0.52 —psy-rdoq 0.00 —rd 6 —vbv-maxrate 1500 —vbv-bufsize 1500
            Я составил для себя примерно такие параметры:
            —keyint 1000 -F 1 —qcomp 0.80 —bframes 10 —ref 6 —deblock=1:1 —aq-mode 1 —aq-strength 0.6 —psy-rd 0.52 —psy-rdoq 0.00 —rd 6 —vbv-maxrate 1500 —vbv-bufsize 1500
            crf зависит от разрешения и исходника, не могу сказать универсальную величину.
            Кто-то ещё ставит «—keyint -1» — бесконечный GOP, но не рекомендую, так как перемотка будет очень медленной.
            Для плёночных (старых) мультиков следует добавлять —rc-lookahead 100
            При понижении разрешения использую строку в FFmpeg «-sws_flags lanczos+accurate_rnd» для резкости, но в случаи с плёночными мультиками она не нужна.

        • >~4Mbps
          720p вроде как перебор по битрейту
          Нет, если вам жалко битрейта, вам не жалко деталей в темных сценах, которых не будет из за недостатка битрейта.
          >А можно полную командную строку?

          avs2yuv64 -nstdr NCED3.avs -o — | x265-10bit-x64-v2.4-icc —ref 4 —bframes 9 —bframe-bias 0 —b-pyramid —b-adapt 2 —aq-mode 3 —qg-size 16 —no-rskip —aq-strength 0.85 —ctu 32 —deblock 1:-1 —min-cu-size 8 —max-tu-size 32 —tu-intra-depth 2 —tu-inter-depth 2 —rdpenalty 0 —me 2 —no-rect —no-amp —no-fast-intra —no-tskip-fast —no-tskip —max-merge 3 —temporal-mvp —no-strong-intra-smoothing —no-constrained-intra —no-open-gop —no-cutree —no-sao —no-sao-non-deblock —no-temporal-layers —wpp —subme 4 —qblur 0 —cplxblur 0 —crf-min 12 —crf-max 16 —crf 15 —qcomp 0.72 —b-pyramid —merange 48 —limit-refs 2 —keyint 240 —signhide —no-rd-refine —weightp —weightb —rd 4 —psy-rd 2 —rdoq-level 2 —limit-modes —psy-rdoq 2 —sar 1:1 —info —colorprim bt709 —transfer bt709 —colormatrix bt709 —output «NCED3.hevc» —csv-log-level 2 —csv «NCED3.txt» —y4m —

          • >cu-tree я отключал при кодировании
            малодинамичной анимации, но результат мне не понравился: всё сильно размазалось и битрейт увеличился. Вообщем, проверяйте сами на маленьких отрезках.
            Оно как и в x264 (хоть и работает чуть по другому) работает только во вред. Пока есть хоть какой то шум в исходнике, его нельзя использовать. На 10 бит ухдбд 4к можно будет попробовать, так как там не будет зерна и шума, который добавляют для предотвращения бандинга в 8 битных бд.

          • Странные у вас параметры:
            1.B-Adapt 2 не рекомендуется для анимации даёт артефакты.
            2. Разница между параметрами деблока не должна превышать 1(2??)

            По крайней мере я читал такие рекомендации для X.264.

          • И да будет ли выше качество если использовать
            —subme 7 —max-merge 5 —rd 6

  6. Hi, thanks for the software
    I’ve downloaded your latest build from your site, I’m using win10 and it always crashes when I launch the .exe
    Can you help me? just mail me.

    Thank You!

  7. >1.B-Adapt 2 не рекомендуется для анимации даёт артефакты.
    Это и
    >2. Разница между параметрами деблока не должна превышать 1(2??)
    это устаревшая инфа для старых версий x264.
    B-Adapt на максимум (2) когда б фрэймс значения высокие.
    Деблок оно на 1 давит не сильно блоки, на -1 порог позволяет не путать на большинстве аниме детали с блоками. На высоких битрейтах такие настройки оптимальны, высоких это более 2-3 мегабит.
    >И да будет ли выше качество если использовать
    —subme 7 —max-merge 5 —rd 6
    Качество будет чуть чуть лучше, а вот скорость много медленнее.

    • Только сейчас обратил внимание у вас первый —deblock 1:-1 а, потом —no-sao-non-deblock как я понял второй отменяет первый и да я обрабатываю советский мультфильм и на одну серию налагается шумок какие в этом случае будут параметры?

      Извините если достал, но за ту комстроку спасибо возможно пригодится.

      • sao-deblock это адаптивный деблок, фишка hevc, очень любит мазать, а первое — деблок перенесенный из x264.
        Для зернистого сорца советую x264, hevc еще не может в такое, пытается экономить на битрейте и мажет шум.
        Если у вас стабильно все видео есть зерно (не зернистое изображение оно испортит), то можно вот так сделать в x264:
        —crf 17 —force-cfr —no-fast-pskip —no-mbtree —aq-mode 1 —aq-strength 0.6 —qcomp 0.9 —qpmax 50 —deblock -2:-2 —me umh —b-adapt 2 -b 12 -r 12 -w —mixed-refs —trellis 2 —b-pyramid normal —lookahead-threads 4 —direct spatial -A all -m 10 —merange 32 —psy-rd 1.2:0.0

        • Я нашёл на rutracker пресет и модифицировал его:
          —crf 23.5 —fps 29970/1000 —level-idc 5 —high-tier —vbv-bufsize 50000 —vbv-maxrate 50000 —qpstep 1 —preset placebo —ref 6 —aq-mode 3 —aq-strength 0.6 —aq-motion —limit-refs 3 —no-cutree —no-sao —no-deblock —merange 25 —max-merge 5 —ctu 32 —amp —b-intra —bframes 4 —b-adapt 2 —psy-rd 2.00 —psy-rdoq 3.00 —rdoq-level 2 —ipratio 1.10 —pbratio 1.00 —subme 7 —slow-firstpass —rc-lookahead 60 —lookahead-slices 0 —no-rskip —no-early-skip —no-fast-intra —no-strong-intra-smoothing

          для зерна использовать: —psy-rd 2.0 —psy-rdoq 3.0

          Оба для фильмов.

          закодировал им(первый вариант) вступительный ролик к игре Lost Planet(720p) и как на меня видео стало даже чётче чем в оригинале, может если что то подкрутить сгодится и здесь?

          • Ах да, битрейт 4135.76 kb/s, Avg QP:25.24

          • Для зернистого сорца советую x264, hevc еще не может в такое, пытается экономить на битрейте и мажет шум.
            На свой страх и риск короче, —psy-rd 2.0 в дефолте такое.
            —psy-rdoq 3.0 можно и выше, но это визуальное качество,если рассматривать скриншоты, то все одно будут небольшие косяки) Разве что 2.5 билд сейчас тестирую, оно уделывает икс по детализации фона на аниме с небольшим уровнем шума. Так что пробуйте, крутите, но 4135.76 kb/s, Avg QP:25.24 как то слишком сильно сжало, —crf 23.5 оч много для анимации. от 15 до 18 как на x264 такие значения в среднем.

  8. Вроде разобрался, но на засыпку ещё вопрос —rect —amp качество улучшат и какими ещё ключами можно улучшить качество?

    P.S. Спасибо за помощь.

    • На 2.4+14 —rect —amp немного улучшают качество не ключевых кадров, но на моём двухядерном процессоре увеличивают время кодирования вдвое.

      … но 4135.76 kb/s, Avg QP:25.24 как то слишком сильно сжало, —crf 23.5 оч много для анимации. от 15 до 18 как на x264 такие значения в среднем.

      Не лишнего ли битрейта будет? 4 499 Kbps это битрейт CG рендеренного мультфильма с горой динамики и спецэффектов в 1080p HEVC:
      http://hevc-club.ucoz.net/load/multfilmy_hevc/poslednjaja_fantazija_7_deti_prishestvija_final_fantasy_vii_advent_children_complete_2009_bdrip_1080p_hevc/2-1-0-602
      Он практически не отличим от x264 на ~10 000 Kbps, и качество там очень высокое. Аниме на anidl.org в 720p жмут до ~450 Kbps CRF 25 HEVC и ~900 Kbps CRF 24 в x264, качество достаточно хорошее, во всяком случае на их фоне кажется, что CRF~17 и более 4 000 kb/s не стоят разницы в качестве.

      • >Не лишнего ли битрейта будет? 4 499 Kbps это битрейт CG рендеренного мультфильма с горой динамики и спецэффектов в 1080p HEVC…
        Ну нет, то не рип, а пережатка, в которой качество на самом плачевном уровне, посмотрите хотя бы на скриншоты и увидите, что в темных местах изображение аж рассыпается на блоки от недостатка битрейта, а сами текстуры превратились в «лед» — шума нет вообще, так как нет битрейта. Убиты текстуры если по простому.
        Ставь crf 40, чо уж, разницы то нет.
        >Аниме на anidl.org в 720p жмут до ~450 Kbps CRF 25 HEVC и ~900 Kbps CRF 24 в x264, качество достаточно хорошее, во всяком случае на их фоне кажется, что CRF~17 и более 4 000 kb/s не стоят разницы в качестве.
        На этом можно закончить разговор)

        • Я не видел оригинала, но как на меня текстуры какие-то пластиковые даже лица, хотя помню в каком-то ролике(SD) детализация на лице была,с учётом разрешения(смотрел в своё время на 17′), выше.Какие-то «блочноподобные» артефакты заметить сложнее,но тоже есть.а вообще читал где-то что для X.264 (для X.265 делите на 2)
          720p 3-6mb/s
          1080p 8-15mb/s
          по скачанным рипам пришёл к выводу что для мультфильмов можно уменьшать ещё примерно вдвое, почему и написал что ~4mb/s должно было хватить 0.75-1.5mb/s 3 предел, судя по скринам кодек ещё неготов к «минимальным»для стандарта битрейтам.

          • почему и написал что ~4mb/s перебор, должно было хватить 0.75-1.5mb/s 3 предел,но судя по скринам по ссылке кодек ещё неготов к «минимальным» для стандарта битрейтам.

            P.S. Поправил ошибки если что.

          • Вообще где-то читал что 2X преимущество HEVC(стандарта) получается на плавных градиентах,а на высокодетализированном видео будет меньше.

  9. Про качество:
    —me можете в максимум крутнуть, но это + 10% качества и — 100% скорости)
    Настройки скинутые мной подобраны мной же для аниме\мультфильмов, сильнее не надо, только их крутить (чаще всего просто крф подбирать) или, если есть мощный, очень мощный пк, то можно все тупо в максимум поставить и пофиг на скорость.

  10. x265.exe input.y4m —q 17 —merange 64 —frames all —ref 4 —max-merge 3 —rect —hash 2 —me 3 —b 6 —b-adapt 1 —rd 2 —rc-lookahead 60 —input-depth 16 —tu-inter-depth=3 —tu-intra-depth=3 —no-tskip —no-tskip-fast —wpp —subme 2 —s 32 —F 6 —o video.hevc

    где в этих настройках указывается какой выбран пресет (fast, medium и т.д.)?

  11. Народ, кто вообще какой пресет выбирает и в каких случаях меняете? (т.е. faster, fast, medium, slow, veryslow, placebo)

  12. Друзья, у вас очень важная ошибка в описании

    «Разработчики подготовили набор параметров для соотношений время/качество кодирования.»

    Тогда как в официальной документации речь идет о СТЕПЕНИ СЖАТИЯ
    Presets:
    -p/—preset Trade off performance for compression efficiency. Default medium

    Исходя из вашего описания и исходя из того что термин «кодирование» вы никак не раскрываете, можно подумать что эта настройка имеет отношение к качеству видео, но это не так. Уже видел на хабре целую статьищу где чувак решил что это вдруг пресеты качества и на основе этого делает тесты.

  13. В режиме -QP и -CRF это действительно объём, но о каком объёме может идти речь в режиме —bitrate?Для него это качество!

  14. Сергей, а никто и не утверждает что это объем. В официальной документации это степень сжатия.
    Чтобы было понятнее что это такое, обратите внимание на этот же параметр в архиваторах, 7z каком нибудь. Качество там всегда 100% (сжатие без потерь), но степень сжатия может быть разная. В одном случае вообще не сжато практически, в другом случае архиватор пытается сжать максимально, затратив на это кучу времени. А что касается объема, он в случае максимального сжатия может быть почти такой же как и при среднем, пару процентов выиграете.
    Для этого же этот параметр и в кодеке — если есть у вас вагон времени и/или вычислительной мощности, вы можете потратить это сделав ролик на несколько процентов меньше, чем при среднем параметре. На качество видео это не влияет никак. В том числе, с параметром —bitrate.

  15. Скажите пожалуйста,как настроить XviD4PSP 8 при кодировании в X265 ?
    Дело в том,что видео получается немного замыленным в сравнении с исходником,как это можно исправить?

Добавить комментарий

Войти (Login): 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*