Как настроить кодек h 264

Обновлено: 05.07.2024

прогресс не стоит на месте. растет мощность CPU, GPU и специализированных процессоров, увеличиваются объемы магнитных и оптических дисков, дешевеют TFT панели. эти факторы и стремление к совершенству медленно, но верно приближает HD видео к простым людям. <br/> <br/>уже сейчас обладатели 19&quot; мониторов могут почувствовать разницу между HD и SD видео. это как раз тот случай, когда лучше один раз увидеть, чем 100 раз услышать. если у вас есть хороший монитор, то безусловно вы сможете найти хотя бы маленький отрывок видео в HD качестве, чтобы заглянуть в будущее домашнего видео. <br/> <br/>техническая справка - основные форматы HD видео: <br/>720p - 1280x720 при 25 кадров <br/>1080i - 1440x1080 при 50 кадров черезстрочно (основной формат HD видеокамер) <br/>1080i (full HD) - 1920x1.

Недорогие RTX 3060 - крипта растет, а видяхи дешевеют

Этот материал написан посетителем сайта, и за него начислено вознаграждение.

прогресс не стоит на месте. растет мощность CPU, GPU и специализированных процессоров, увеличиваются объемы магнитных и оптических дисков, дешевеют TFT панели. эти факторы и стремление к совершенству медленно, но верно приближает HD видео к простым людям.
уже сейчас обладатели 19" мониторов могут почувствовать разницу между HD и SD видео. это как раз тот случай, когда лучше один раз увидеть, чем 100 раз услышать. если у вас есть хороший монитор, то безусловно вы сможете найти хотя бы маленький отрывок видео в HD качестве, чтобы заглянуть в будущее домашнего видео.
техническая справка - основные форматы HD видео:
720p - 1280x720 при 25 кадров
1080i - 1440x1080 при 50 кадров черезстрочно (основной формат HD видеокамер)
1080i (full HD) - 1920x1080 при 50 кадров черезстрочно
1080p (full HD) - 1920x1080 при 25 кадров
характеристики впечатляют. более того, чтобы все это увидеть нужно иметь дорогой широкоформатный монитор или HD телевизор. к примеру, мой 19" монитор за 360 евро полностью готов только к 720p.
чтобы уместить 1.5 часа в таком качестве в разумный объем файла нужны эффективные кодеки. в индустрии используют либо MPEG2 с битрейтами 10-50 Мбит/c, либо MPEG4 AVC (он же MPEG4 Main Profile, он же H264) 5-25 Мбит/c. последний эффективнее MPEG2 и любого MPEG4 ASP вроде DivX, Xvid и т.п. эффективнось сжатия получается через усложнение алгоритма и соответственно значительно возросший объем вычислений, как при кодировании, так и при декодировании.
поговорим подробно о декодировании H264. обычно пишут требования вроде P4 3.6 или P4 2.8 (2 ядра). насколько все это правда? я нашел отрывок видео в качестве 720p 6 Мбит/с из научно-познавательного фильма Microcosmos ( http://rapidshare.com/files/12068082/Microcosmos_HDTV_sample.mkv 41 Мб) и попробовал воспроизвести его на своих домашних компьютерах.
PC1 - AMD A64-3000 AM2 (1800@2400MHz) + nVIDIA 7600GS (GPU 450 MHz)
PC2 - Intel Celeron-M 360 1400 MHz + Intel 855GM (встроенная UMA видеокарта)
видеокарты nVIDIA, начиная с 6xxx и ATI с X1xxx имеют аппаратное ускорение декодирования H264, т.ч. PC1 имеет приемущество
используемый софт:
кодеки:
ffdshow (21.8.2006)
CoreAVC 1.2
Cyberlink из PowerDVD 7.2 (поддержка аппаратного ускорения декодирования H264 видеокартой)
проигрыватели:
BSPlayer
Media Player Classic
PowerDVD 7.2
методика:
клип имеет длительность 53 секунды, будем с помощью task manager измерять время CPU, затраченное проигрывателем на воспроизведение клипа. далее нормируем на 53 секунды и получаем среднюю загрузку CPU.
PC1:
Player\Codec ffdshow CoreAVC Cyberlink
BSPlayer 34 (64%) 25 (47%) 15 (28%)
MPC 35 (66%) 26 (49%) 15 (28%)
PowerDVD 15 (28%)

Причем BSPlayer + Cyberlink сначала дает 27 секунд, но после переключения с Overlay на VMR9 в настройках BSPlayer проблема решается.
PC2:
Player\Codec ffdshow CoreAVC
BSPlayer 50 (94%) 41 (77%)

ffdshow работает на пределе, скорее всего на активных сценах идет пропуск кадров, а CoreAVC проигрывает нормально.
какие же будут выводы?
самый первый и главный, аппаратное ускорение со стороны видеокарты значительно снижает нагрузку на процессор. такой помощи со стороны видеокарты не было со времен появления Overlay. второй вывод, CoreAVC явно лучше ffdshow справляется с декодированием. по крайней мере пока.
любопытно, что в статье на ixbt http://www.ixbt.com/video2/video_dec.shtml автор получает, что декодирование с аппаратным ускорением видеокарты оказывается медленнее, чем чисто программный CoreAVC.
теперь займемся подсчетами. попытаемся оценить какой процессор будет достаточен для проигрывания видео. фиксируем среднюю загрузку CPU на 85%, чтобы был запас на динамичных сценах. тогда простые расчеты с использованием полученных данных показывают, что в случае CoreAVC для 720p достаточно процессора C-M (P-M) около 1300 MHz и A64 той же частоты. используя хорошо известный эмпирический коэффициент 1.4 получаем 1800 MHz для P4. т.е. видео 720p можно запустить на почти любом более-менее современном компьютере.
для 1080p и 1080i full HD нагрузка увеличится в 1.5-2 раза и тогда уже нам потребуется A64 с частотой около 2400 MHz или P4 3400, либо многоядерный процессор. очевидно, что не каждый компьютер готов к 1080p. однако, если использовать ускорение видеокарты, то достаточно будет CPU с частотой 1000 MHz для A64 или P4 1400. правда, востребованность видео такого качества будет под вопросом пока не появятся относительно дешевые 21+" мониторы, способные отображать такое разрешение. а там глядишь и апгрейд

Этот материал написан посетителем сайта, и за него начислено вознаграждение.

Подпишитесь на наш канал в Яндекс.Дзен или telegram-канал @overclockers_news - это удобные способы следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.


Проблема с кодированием видео и его сжатием его из гигабайтов в мегабайты, по-моему, всегда была актуальной. Если более менее профессиональные операторы, монтажники и т.д. уже не одну кошку съели на этой теме, то например любители и те, кто записывают видео с экрана своего монитора, порой долго чешут затылок, прежде чем добиться каких либо серьезных результатов. В итоге куча потерянного времени, никому не нужные гигабайты исходящего трафика для загрузки домашнего видео на ютуб. Конечно, можно использовать в какой-то степени готовые решения в лице одной программы, и сжать видео буквально тремя кликами, но это не наш подход, когда абсолютно все шаги можно контролировать и влиять на них. Покопавшись в поиске, Хабр так и не выдал ничего похожего. Хотя возможно, что просто плохо поискал.

Сразу оговорюсь, что изначально статья не моя. Я наткнулся на неё, лет пять назад, когда встала задача что-то делать с записанными моментами из тогда любимой многими игры Battlefield 2, на популярном отечественном ресурсе мувимейкеров. Постепенно статья допиливалась и публиковалась, то там, то там. Не исключаю, что первоначально статья пришла из-за «бугра» и всего на всего была переведена на наш могучий язык.

Итак, кодек х264 пришел на смену таким монстрам своего времени как DivX и XviD и удачно положил обоих на лопатки. Для того, что бы добиться действительно впечатляющего результата, нам понадобится следующие вещи:
1. MeGUI — этим мы сжимаем само видео. Вернее, сжимает сам кодек, а это только GUI объединивший в себе десятки разных специализированных утилит.
2. Avisynth — фреймсервер. Если вдруг кто не знает, что это такое, то он является посредником между нашим не сжатым видео и кодеком.
3. VLC media player — Тут совсем все просто. Всеядный плеер, умеющий работать с потоковым видео. Достаточно популярный.
4. K-Lite Codec Pack — пакет все возможных кодеков, на все случаи жизни. Нам нужна сборка Mega.

Настоятельно рекомендую обновлять K-Lite Codec Pack, как минимум всегда перед сжатием видео. Это конечно не обязательно, но опыт подсказывает, что если вы столкнетесь с непонятными ошибками/косяками/глюками/etc то в 50%, а то и больше, обновление кодеков избавит вас от лишнего геморроя.
Кстати, MeGUI достаточно быстро и часто обновляется и дополняется. Скриншоты приведенные ниже, могут уже не соответствовать текущей версии, но это не страшно. Как правило, меняется расположение элементов, что то пододвинули вправо, что-то перенесли в другую закладку. Пропажа находится очень быстро, поэтому не пугайтесь.

Поехали. Устанавливаем Avisynth, а затем MeGUI. После того, как MeGUI обновится, идем в папку, где лежит наш опытный образец, и для удобства создаем там файл с расширением *.avs. Открываем блокнотом и пишем заветные строки:

Первая строка, подскажет MeGUI с каким файлом требуется работать. Вторая строка, указывает на используемую систему цветов.

Существует несколько различных способов представление цвета. Например: цветовое пространство YUV и RGB. В YUV цветовом пространстве есть один компонент, который представляет яркость (сигнал яркости) и два других компонента, которые представляют цвет (сигнал цветности). В то время как яркость передается со всеми деталями, некоторые детали в компонентах сигнала цветности могут быть удалены путем понижения разрешения отсчетов (фильтрация или усреднение), что может быть сделано несколькими способами (т.е. есть много форматов для сохранения изображения в цветовом пространстве YUV). YV12 — один из таких форматов (тут сигнал цветности общий для каждого блока пиксел 2x2), который поддерживается AviSynth.

У нас получился скрипт. Идем дальше. Открываем MeGUI и указываем месторасположение скрипта. Если скрипт AviSynth находится в той же папке где и ваше видео, то вторая строка заполнится автоматически.


Открываем настройки кодека, нажатием на кнопку Config, справа от Encoder settings. Ставим галочку, подтверждая, что нам действительно нужны расширенные настройки. Дальше нам остается поставить галочки в соответствии со скриншотами.










Нажимаем на кнопку queue и идем спать, пить кофе и т.д. в зависимости от предпочтений и мощностей ПК.

Хочу оговориться, что данный конфиг подходит для исходного видео 720p. Для 1080p нужно немного под редактировать конфиг:

Вкладка Frame-Type -> Меняем значение Number of Reference Frames с 9 на 4.

Так же можно указать, сколько кодеру можно использовать ядер:

Вкладка Misc -> раздел Other -> Threads и указываем, в сколько потоков сжимать видео. 1 поток на 1 виртуальное или физическое ядро.

Что мы получаем в итоге. Я имел в наличии следующий видео-ролик:

Format: RGB
Codec ID: 0x00000000
Codec ID/Info: Basic Windows bitmap format. 1, 4 and 8 bpp versions are palettised. 16, 24 and 32bpp contain raw RGB samples
Duration: 3mn 42s
Bit rate: 663 Mbps
Width: 1 280 pixels
Height: 720 pixels
Display aspect ratio: 16:9
Frame rate: 29.970 fps
Bit depth: 8 bits
Bits/(Pixel*Frame): 24.000
Stream size: 17.2 GiB (100%)

После ожидания около 15-16 минут, я получил на выходе 184 Мб.

Используя внешние кодеки, можно улучшить качество видео, записываемого в Бандикам. Ознакомьтесь со статьёй, чтобы получить больше информации об использовании внешних кодеков совместно с Bandicam.

Как пользоваться Внешними кодеками (VFW) в Bandicam

Кодеки Bandicam способны выполнять компрессию видео одновременно с записью, и используют намного меньше ЦПУ, физической памяти и ресурсов графического процессора, чем другие кодеки. Тем не менее, если вы хотите получить видео лучшего качества или записывать меньшие по размеру клипы, вы можете попробовать опцию [- Внешний кодек -] в настройках формата видео Bandicam. Все версии программы, начиная с Bandicam 1.8.2, поддерживают сторонние VFW (Video for Windows) совместимые кодеки.



Чтобы использовать внешний кодек, нажмите на кнопку [Настройки] рядом с кнопкой [Шаблоны] под вкладкой Видео, и нажмите на кнопку […] после выбора опции [- Внешний кодек -]. Затем выберите кодек из доступного списка, и нажмите на кнопку Конфигурация.

Сравнение кодеков Bandicam и сторонних кодеков

В представленной ниже таблице можно сравнить размер видеофайлов при записи видео с различными кодеками в Bandicam. Для тестовой записи Bandicam записывал видео с разрешением 1920x1080 на протяжение одной минуты (FPS: 30, Качество: 80).

Кодеки Bandicam

Кодек Размер Качество Описание
HEVC (GPU) 33,5 Мб Лучше Лучше по компрессии, чем кодек H.264
(NVIDIA NVENC, Intel Quick Sync video)
H.264 (GPU) 34,2 Мб Лучше Лучший кодек для продвинутых пользователей
Высокая скорость/Качество/Компрессия
(NVIDIA NVENC, AMD VCE, Intel QSV)
Xvid 52,9 Мб Хорошее Идеально подходит для записи с портативных устройств.
MPEG-1 38,8 Мб Хорошее Достойное качество времени при меньшем потреблении ЦП.
Motion JPEG 420 Мб Нормальное Лучший кодек для последующей обработки видео в профессиональных редакторах.
YV12 5,210 Мб Лучшее Lossless кодек: сжатие без потери данных.
RGB24 10,400 Мб Лучшее Lossless кодек: запись без потери данных.

Сравнение по скорости кодеков:

RGB24 (Самый быстрый) > YV12 > Motion JPEG > Xvid > MPEG-1 (Нормальный)

— Кодеки H.264 для NVIDIA и Intel могут работать быстрее, чем Motion JPEG, на мощных компьютерах.

Внешние кодеки

Кодек Размер Качество Описание
x264 135 Мб Лучше Лучший кодек для мощного компьютера.
Высокое качество, меньший размер файлов. Рекомендуется в большинстве случаев.
Xvid 315 Мб Хорошее Оптимальный кодек для записи видео со смартфонов Samsung Galaxy с поддержкой DivX HD.
Lagarith 1,400 Мб Лучшее Лучший кодек для записи видео для обработки в профессиональных редакторах.
Высокое качество видео, сжатие без потери данных (lossless кодек)

Чтобы использовать внешние кодеки, вам понадобится мощный компьютер, поскольку большинство сторонних кодеков используют намного больше системных ресурсов, чем встроенные кодеки Bandicam.

Чтобы выбрать лучший видеокодек, перейдите по этой ссылке.

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

1. Настройка кодека x264 для записи видео.

x264 — это бесплатная программная библиотека для компрессии видеопотока в формат H.264/MPEG-4 AVC.

По качеству изображения и эффективности сжатия x264 превосходит XviD/DivX.

Если вы используете очень быстрый и мощный компьютер, попробуйте кодек x264: вы получите стабильно высокое качество картинки при небольшом размере файлов.

Загрузить кодек x264 можно здесь. Установите оба компонента: x264vfw и x264vfw64.



Настройки

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

— Если вы планируете изменять готовое видео в редакторах Adobe Premiere или Sony Vegas, введите «--keyint 1» в дополнительное окно командной строки.

— Если вы не видите меню «x264vfw-H.264/MPEG-4 AVC» в Bandicam, переустановите кодеки x264vfw (x86) и x264vfw (x64), затем перезагрузите компьютер.

2. Настройки кодека Xvid для записи видео

Xvid — это кодек с открытым исходным кодом, основанный на формате MPEG-4 ISO. Он используется для компрессии и распаковки цифровых видеозаписей, снижая требуемую пропускную способность видео для передачи через компьютерные сети. Если вы активно пользуетесь плеером DivX или смартфоном Samsung из серии Galaxy, попробуйте этот кодек.

Загрузить бесплатный кодек Xvid можно здесь.

Настройки

  1. В основном окне настроек кодека нажмите на кнопку «more…» возле меню выбора шаблона качества (Quality Preset) и выберите «0 — None» в верхней опции под вкладкой Motion.
  2. Нажмите «Other Options…» и снимите галочку с отметки «Display encoding status».

Чтобы получить больше информации о внешнем кодеке Xvid, посетите эту страницу.

3. Lossless-кодек для записи видео без потери качества Lagarith

Lagarith — это lossless видео кодек, позволяющий записывать видео без потерь качества для редактирования и архивирования. Этот кодек обеспечивает лучшее качество изображения, чем Motion JPEG (MJPEG), при меньшем размере видеозаписей, чем при записи с помощью lossless кодеков Bandicam (YV12, RGB24). Если вы активно пользуетесь программами для профессионального редактирования видео (Pinnacle Studio, Sony Vegas, Adobe Premiere), попробуйте этот кодек.

Используйте режим "YV12", чтобы повысить скорость записи видео без потерь в Bandicam.

**Многопоточная запись (Use Multithreading): если вы используете мощный компьютер, выберите эту опцию. Многопоточность повысит скорость записи видео.

Вы также можете использовать другие сторонние VFW-кодеки, такие как MagicYUV.

В этой статья я предоставлю наиболее оптимальные настройки кодировщика Nvidia NVENC H.264 (new) в OBS для получения наилучшего качества картинки во время проведения трансляции на YouTube.
Настройки для трансляций на Twitch представлены в отдельной статье .
Статья создана на основе огромного количества изученного материала, в том числе научных работ и публикаций, а также сведений полученных при анализе субъективной (визуальной) и объективной оценки качества.

📡 Раздел трансляция

1. Сервис YouTube - RTMPS
2. Cервер Primary YouTube ingest server (Основной сервер).
Вы можете сменить сервер на Backup YouTube ingest server (Резервный), если у вас происходят пропуски кадров и другие сетевые проблемы.
3. Получить ключ потока можно нажав на кнопку " Получить ключ потока ".
Запустится браузер и вас переадресует в Творческую студию/ Прямые Трансляции, где вы и сможете найти Ключ трансляции, либо создать новый.

Для трансляции установите режим Малая задержка .
Это пригодится в дальнейшем, чтобы получить более высокое качество.
Задержка будет составлять в районе 15 секунд .
4. Поставьте галочку Игнорировать рекомендации по настройкам потокового сервиса.

1️⃣ Настройка Видео

Начать стоит именно с раздела Видео, т.к в масштабировании трансляции до 2К разрешения и есть секрет качественной картинки на YouTube.
Об этом я подробно рассказал в отдельной статье по ссылке .
Есть два способа, с помощью которых можно масштабировать трансляцию до 2K, чтобы она обрабатывалась кодеком VP9.

1. Масштабирование до 2K без рескейла в OBS.
С помощью данного способа трансляция будет масштабироваться до 2К разрешения, за счёт транскодирования видео на YouTube.
Этот позволит стримить в нативном разрешении 1920x1080 или ниже, что позволит значительно уменьшить нагрузку на кодировщик.
Подробное видео об этом можно посмотреть по ссылке.

Перейдите в Творческую студии/ Прямые Трансляции и создайте новый ключ трансляции.

- Поставьте галочку " Выбрать частоту кадров и разрешение".
- Укажите разрешение 1440 пкс.
- Поставьте галочку "Включить частоту кадров 60 кадров в секунду". Если вы стримите в 60 к/с, а это галочку не будет стоять, тогда трансляция на YouTube будет работать в 30 к/с.
Теперь трансляция на Youtube будет работать в разрешении до 1440p, в независимости от разрешения, которое указано в OBS.

2. Масштабирование выходного разрешения в OBS.
Прописываем выходное разрешение в разделе видео 2560x1440
Если у вас 2K монитор, то это еще лучше, и OBS не придётся растягивать пиксели, что позволит получить еще более качественную картинку.
Учтите, что увеличение выходного разрешения увеличит нагрузку на кодировщик. Так что, если у вас слабая видеокарта, то, возможно, вам придется снизить настройки кодировщика или частоту кадров видео, если наблюдаются перегрузы кодировщика, либо просто используйте первый способ.

Нагрузку на кодировщик вы можете отследить в диспетчере задач, где Video Encode отображает нагрузка на энкодер Nvenc.

В Фильтре масштабирования выбираем метод ланцоша , что позволит получить более гладкие диагональные линии, уменьшив Алиасинг , и получить более чёткую картинку.

2️⃣ Кодировщик Nvenc (new)

NVENC H.264 (new) - это обновленный и более производительный кодировщик, доступный с ☝️ 23 версии OBS.
Так что обязательно обновите OBS до одной из последних версии.
Главное его отличие от старой версии NVENC H.264 (без new) - это значительное снижение влияния на производительность в играх (до 66%) при кодировании видео, т.к графическому процессору больше не требуется буферизировать кадры в оперативную память, а это стало реализовано внутри самой видеокарты за счёт использования видеопамяти, что гораздо более эффективно.
То, что New доступен только для видеокарт последнего поколения, является не более, чем мифом и заблуждением.

3️⃣ Управление битрейтом

Выбираем CBR (постоянный битрейт).
Данный тип битрейта отлично подходит для трансляций, где необходима постоянная скорость передачи данных, так как при прямой трансляции видеоданные уязвимы к резкому колебанию битрейта.

4️⃣ Битрейт

Разумеется, можно воспользоваться битрейтом, предлагаемым в справке для прямых трансляций . Нас интересует битрейт для 2K разрешения (2560x1440), это 9000-18000 кб/с, но для получения более высокого качества рекомендую использовать битрейт больше.

Оптимальный битрейт для стрима в 2K, на мой взгляд, составляет от 18000 до 30000 кб/с , при условии, что ваш интернет способен поддерживать указанную скорость потоковой передачи данных.

Читайте также: