Software x264 что это
Software x264 что это
x264 is a free software library and application for encoding video streams into the H.264/MPEG-4 AVC compression format, and is released under the terms of the GNU GPL.
Features Overview
Getting x264
Source
The latest x264 source code is available through git repository:
Application binaries
Official builds for Windows, Linux, and MacOSX are available from here.
Encoder features
Awards
24% better encoding than second place.
2005 December 26 — x264 won Doom9’s 2005 codec shoot-out, passing Ateme by a hair.
2005 December 12 — x264 tied for 1st place (with Ateme) in the second annual MSU MPEG-4 AVC/ H.264 codecs comparison.
Support
For support information and to ask questions, you have the following possibilities:
Please report any bugs on the Issue tracker.
Licensing
In addition to being free to use under the GNU GPL, x264 is also available under a commercial license. Contact x264licensing@videolan.org for more details.
Software using x264
If you use x264 in another project, let us know!
Legal | Report Trademark Abuse
VideoLAN, VLC, VLC media player and x264 are trademarks internationally registered by the VideoLAN non-profit organization.
VideoLAN software is licensed under various open-source licenses: use and distribution are defined by each software license.
Design by Made By Argon. Some icons are licensed under the CC BY-SA 3.0+.
The VLC cone icon was designed by Richard Гiestad. Icons for VLMC, DVBlast and x264 designed by Roman Khramov.
OBS Studio. Настройка X264, ключи кодирования
Внимание — это предварительный обзор, для проверки всех функций требуется время, если вы нашли ошибку или недочёт в тексте не спешите писать гневные комментарии, а сообщите автору сайта о найденной ошибке через комментарии либо выделите слово и нажмите Ctrl + Enter
Ключи кодирования для OBS Studio пишутся в «Настройки» вкладка «Вывод», кодировщик «x264» поле «Настройки x264 (разделённые пробелом)», либо «H.264/AVC Nvidia NVENC» поле «FFmpeg».
Presets
profile
(Force the limits of an H.264 profile)
Учитывайте особенности имеющегося оборудования, отметить степень совместимости. Со значениями High и ниже способны работать мощные модели процессоров.
preset
(Use a preset to select encoding settings)
(Tune the settings for a particular type of source or situation)
Настройка параметров, оптимизирующих работу с конкретным видео образцом.
slow-firstpass
(Enable slow first pass)
Параметр включает «медленный» первый проход.
Frame-type options
I, keyint
(Maximum GOP size)
i, min-keyint
(Minimum GOP size)
Минимальный интервал между ключевыми/IDR кадрами.
no-scenecut
(Disable adaptive I-frame decision)
Полное отключение адаптивных I-кадров.
scenecut
(How aggressively to insert extra I-frames)
Данный параметр позволяет определять частоту использования дополнительных I кадров. Х264 создает для всех кадров метрику для определения того, как кадр отличается от впереди стоящего. Когда выведенное значение ниже установленного для scenecut, то I кадр располагается энкодером в данном месте. Если значение превышает установленное для scenecut, в этом месте располагается ключевой кадр. Данная функция отражается на качестве, увеличивая его в лучшую сторону, но при злоупотреблении сменой неминуема трата битрейта.
intra-refresh
(Use Periodic Intra Refresh instead of IDR frames)
Не допускается применение IDR кадров. Проверено
b, bframes
(Number of B-frames between I and P)
Опция определяет количество B кадров, расположенных между кадрами I и P. Эти кадры включают в себя закодированные изменения впереди и следом идущих за ними кадров. Обладают большой степенью сжатия, но при этом теряют в качестве. B-кадры идентичны Р-кадрам, однако они могут использовать предсказание движения от последующих кадров, что способствует существенному улучшению степени сжатия.
b-adapt
(Adaptive B-frame decision method)
Данная опция направлена на работу с B кадрами, регулируя их месторасположение и количество (автоматически убирает лишние).
b-bias
(Influences how often B-frames are used)
Данная опция позволяет контролировать количество B кадров, призванных заместить Р кадры.
b-pyramid
(Keep some B-frames as references)
Повышение эффективности применения нескольких B-кадров, из- за их возможности ссылаться на другие кадры, тем самым увеличивая эффективность использования 2-х и более кадров.
open-gop
(Use recovery points to close GOPs)
no-cabac
(Disable CABAC)
r, ref
(Number of reference frames)
Опция определяет количество референсных кадров. Указывает количество предыдущих кадров, готовых к связи с B и P кадрами.
no-deblock
(Disable loop filter)
Отключение фильтра подавления блочности.
f, deblock
(Loop filter parameters)
Сила деблокинга рассчитывается для каждого макроблока, учитывая его квантизер и близко расположенных макроблоков. Задачей Альфы является определение приграничного квадрата, что похоже на порог. Бета позволяет убедится в однородности изображения, что позволяет разграничить детали от блочности. В случае, когда блок является однородным, бета незначительно изменяет силу.
slices
(Number of slices per frame)
Определяем на сколько частей разбивается кадр.
slice-max-size
(Limit the size of each slice in bytes)
Задаем максимальное размер slice в байтах.
slice-max-mbs
(Limit the size of each slice in macroblocks)
Задаем максимальный размер slice в макроблоках.
(Enable interlaced mode (top field first)
(Enable interlaced mode (bottom field first)
constrained-intra
(Enable constrained intra prediction)
Ограниченное временное предсказание. Для base layer необходимо активизировать ограниченное временное предсказание.
pulldown
(Use soft pulldown to change frame rate)
Допустимо применение следующих готовых пресетов: none, 22, 32, 64, double, triple, euro.
fake-interlaced
(Flag stream as interlaced but encode progressive)
frame-packing
(For stereoscopic videos define frame arrangement)
Если у транслируется 3D видео. Информирование о типе видеоряда 3D, которое бывает следующим:
Software x264 что это
Далее пойдет речь о настройке OBS Studio, поэтому скачайте именно эту версию с официального сайта (нажмите на кнопку «Download OBS Studio и затем выберите вашу операционную систему) и убедитесь в том, что вы скачали полную версию (в имени установщика должно быть это словосочетание OBS-Studio-20.1.3-Full-Installer). OBS Studio поддерживает Windows, Mac OSX и Linux.
Кроме того, для изменения размеров источников в окне превью вы должны кликнуть на название источника и появится его красный индикатор-граница. Просто переместите одну из сторон этой «границы» и вы измените размер источника. По данному принципу вы можете избежать программного масштабирования, просто настроив источники под разрешение 1280х720.
Основные кнопки управления сценами и источниками:
— добавить сцену или источник
— удалить сцену или источник
— переместить сцену выше по списку/перевести источник на первый план
— переместить сцену ниже по списку/перевести источник на задний план
— открыть настройки выбранного источника
Перед началом трансляции необходимо проверить основные настройки программы, которые отвечают за сервер трансляции, качество трансляции, горячие клавиши и многое другое.
Для того чтобы попасть в меню настроек, необходимо в главном окне нажать на кнопку «Settings».
Примечание: лучше всего использовать английскую локализацию программы. Это поможет избежать недочетов, так как эту локализацию поддерживают сами разработчики.
Вкладка «General»
В данной вкладке вы можете настроить язык, который будет использовать программа, тему главного окна (по умолчанию или темная) и общие настройки для трансляций и источников. Не буду описывать каждую опцию, но, возможно, вам понадобится опция «Automatically record when streaming», означающая автоматическую локальную запись при старте стрима.
Вкладка «Stream»
Во вкладке «Stream» вы должны будете настроить ссылки на вашу трансляцию на одном из предлагаемых стрим-провайдеров или на своем собственном сервере.
Custom Streaming Server иногда можно использовать также, если вы знаете RTMP-ссылку сервера и Stream Key и если данные настройки (особенно RTMP-ссылка) постоянно меняются у стрим-провайдера, либо в стандартных настройках OBS Studio нет желаемой для вас RTMP-ссылки на сервер.
Вкладка «Output»
В данной вкладке вы можете изменить настройки кодирования для вашей трансляции и локальной записи. Разберем ее более подробно.
Меню Simple предлагаем нам следующие настройки.
Меню Advanced открывает расширенные настройки трансляции.
Во вкладке «Streaming» находятся основные настройки кодировщика.
Профили
Стандарт определяет комплекты возможностей, которые называются профили, ориентированные на конкретные классы приложений.
Baseline Profile (Базовый профиль)
Применяется в недорогих продуктах, требующих дополнительной устойчивости к потерям. Используется для видеоконференций и в мобильных продуктах. Включает все возможности Constrained Baseline Profile и, дополнительно, возможности для большей устойчивости к потерям при передаче. С появлением Constrained Baseline Profile отошёл на второй план, т. к. все потоки Constrained Baseline Profile соответствуют Baseline Profile, и оба этих профиля имеют общий код идентификатора.
Рассчитан на применение в недорогих продуктах. Включает набор возможностей, общих для профилей Baseline, Main, и High профилей.
Применяется для цифрового телевидения стандартной четкости в трансляциях, использующих сжатие MPEG-4 в соответствии со стандартом DVB.
Предназначен для потокового видео, имеет относительно высокую степень сжатия и дополнительные возможности для повышения устойчивости к потере данных.
Является основным для цифрового вещания и видео на оптических носителях, особенно для телевидения высокой четкости. Используется для Blu-Ray видеодисков и DVB HDTV вещания.
Дополнительно поддерживает 10-битовую глубину кодирования изображения.
В основном нацелен на профессиональное использование при работе с чересстрочным видеопотоком. Поддерживает дополнительный вариант кодирования цветности.
Базируясь на Hi422P, включает ещё один вариант кодирования цветности и работу с 14-битной глубиной кодирования.
Stereo High Profile
Этот профиль рассчитан на стереоскопическое 3D видео (два изображения).
Этот профиль поддерживает два или несколько изображений (каналов) в потоке с использованием как межкадрового, так и межканального сжатия, но не поддерживает некоторые возможности MVC.
Согласно определению стандарта, «уровень» является определенным набором ограничений, указывающих степень требуемой производительности декодера для профиля. Например, поддержка уровня в профиле будет указывать максимальное разрешение изображения, частоту кадров и битрейт так, что декодер можно будет использовать. Декодер, который соответствует данному уровню, обязан декодировать все потоки битов, которые кодируются для этого уровня и для всех более низких уровней.
Доступные пресеты:
ultrafast (ультра-быстрый):
Рекомендации: Выбирайте пресет, в соответствии с вашими потребностями в скорости кодирования, качестве.
Выбираем нужную оптимизацию, которая установит оптимальные настройки для выбранного вами типа видео.
Сейчас у меня AMD Ryzen 7 1700x вместе с ASUS GTX 960 Turbo и я спокойно могу стримить игры в 1080р c 60fps при кодировщике «Software (x264)» и пресете «faster».
Вкладка «Audio»
В данной вкладке вы можете настроить аудио-устройства для стрима. Кроме того, можно сделать настройки для функций push-to-mute (включение и выключение) и push-to-talk (функция «нажми и говори») для микрофона или устройства для аудио-выхода. Настройки «Push-to-mute delay» и «Push-to-talk delay» определяют задержку для использования функций в миллисекундах.
Вкладка «Video»
Во вкладке «Video» вы можете настроить разрешение для вашего стрима. По стандарту соотношение сторон у разрешения вашего стрима должно быть в 16:9, то есть это 1280х720, 1600х900, 1920х1080 и так далее. Если у вас монитор имеет соотношение сторон в 16:10, то игру вы должны запускать с соотношением сторон 16:9 (запускать игру нужно в окне), чтобы на стриме не было черных полос. Это несколько неудобно, поэтому готовьтесь к приобретению нового монитора 16:9.
Вкладка «Hotkeys»
В данной вкладке вы можете настроить горячие клавиши для основных элементов управления, опций Push-to-mute, Push-to-talk, а также горячие клавиши для каждой сцены и источника.
Вкладка «Advanced»
Остальные настройки без особой надобности лучше не трогать. Менять их необходимо только в том случае, если вы на 100% уверены, что они означают и какие изменения произойдут у вас на стриме.
Общий принцип настройки программы
Новичков по началу должен смутить не совсем интуитивно-понятный интерфейс программы. Поэтому разберем общий принцип настройки программы и запуска трансляции. Для начала вы должны зайти в опции программы (кнопка «Settings»), настроить основные параметры OBS Studio, такие, которые указаны во вкладках «Stream», «Output», «Audio» и «Video». После этого вам необходимо создать сцену и добавить на нее источники в главном окне с помощь клавиш управления:
— добавить сцену или источник
— удалить сцену или источник
— переместить сцену выше по списку/перевести источник на первый план
— переместить сцену ниже по списку/перевести источник на задний план
— открыть настройки выбранного источника
Источник «Image»
С помощью данного источника вы можете добавить изображение в ваш стрим. Нажмите на «Browser», выберите изображение, готово.
«Image Slide Show» добавляет в ваш стрим слайд-шоу из изображений. Вы можете изменить эффект перехода от изображения к изображению с помощью списка «Transition», а также изменить скорость перехода и смены изображений.
Данный источник предназначен для захвата всего рабочего стола. При захвате будет видно все, что у вас находится на рабочем столе, все открытые окна, программы и меню.
Источник «Window Capture» захватывает непосредственно окно, которое вы выберите в настройках. Причем, захват будет производится только одного окна, то есть при переключении окон на стриме будет отображено только то, которое вы выбрали.
Данный источник захватывает непосредственно саму игру, поэтому другие окна, кроме самой игры, на стриме отображены не будут. Вы можете с помощью этого источника захватывать игру, развернутую в полный экран, а также в окне (для этого достаточно выбрать из списка «Mode» опцию «Capture Specific Window»). Кроме того, некоторые анти-читы не позволяют захватить непосредственно игру, поэтому вам нужно будет активировать параметр «Use anti-cheat compatibilty hook».
Данные источники предназначены для захвата различных плат захвата видео и аудио. Расписывать их настройку не буду, так как многое зависит от конкретного устройства.
В 32-битной версии OBS Studio вы можете воспользоваться плагином «VLC Video Source», которые поможет вам воспроизвести видео из заданного списка.
Главной особенностью OBS Studio является режим студии. В этом режиме вы можете поэтапно вводить изменения в превью-режиме для конкретной сцены, а затем выводить их в прямой эфир. Для активации режима студии необходимо в области с меню управления стартом/остановкой трансляции нажать на кнопку «Studio Mode» и превью-область OBS преобразиться в следующее:
Теперь вы можете произвести необходимые изменения для текущей сцены или поменять сцену, а затем, чтобы данные изменения вступили в силу в прямом эфире (во время того, как вы редактируете сцену, зритель не будет видеть этого, а будет видеть только то, что показано в правой части окна превью), нажать на кнопку «Transition». Стоит отметить, что как и в обычном режиме, так и в режиме студии работают кастомные эффекты переходов, о которых вы можете прочитать здесь.
* Недоступно для использования в Windows
Вместо заключения и полезные ссылки
x264 или как кодировать видео
Проблема с кодированием видео и его сжатием его из гигабайтов в мегабайты, по-моему, всегда была актуальной. Если более менее профессиональные операторы, монтажники и т.д. уже не одну кошку съели на этой теме, то например любители и те, кто записывают видео с экрана своего монитора, порой долго чешут затылок, прежде чем добиться каких либо серьезных результатов. В итоге куча потерянного времени, никому не нужные гигабайты исходящего трафика для загрузки домашнего видео на ютуб. Конечно, можно использовать в какой-то степени готовые решения в лице одной программы, и сжать видео буквально тремя кликами, но это не наш подход, когда абсолютно все шаги можно контролировать и влиять на них. Покопавшись в поиске, Хабр так и не выдал ничего похожего. Хотя возможно, что просто плохо поискал.
Сразу оговорюсь, что изначально статья не моя. Я наткнулся на неё, лет пять назад, когда встала задача что-то делать с записанными моментами из тогда любимой многими игры 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 — один из таких форматов (тут сигнал цветности общий для каждого блока пиксел 2×2), который поддерживается AviSynth.
У нас получился скрипт. Идем дальше. Открываем MeGUI и указываем месторасположение скрипта. Если скрипт AviSynth находится в той же папке где и ваше видео, то вторая строка заполнится автоматически.
Открываем настройки кодека, нажатием на кнопку Config, справа от Encoder settings. Ставим галочку, подтверждая, что нам действительно нужны расширенные настройки. Дальше нам остается поставить галочки в соответствии со скриншотами.
Нажимаем на кнопку queue и идем спать, пить кофе и т.д. в зависимости от предпочтений и мощностей ПК.
Хочу оговориться, что данный конфиг подходит для исходного видео 720p. Для 1080p нужно немного под редактировать конфиг:
Так же можно указать, сколько кодеру можно использовать ядер:
Что мы получаем в итоге. Я имел в наличии следующий видео-ролик:
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 Мб.
Если Хабру интересны подобные статьи на тематику сжатия видео, то я продолжу и поделюсь своим опытом. Если хотите меня поправить и указать на ошибку, то с радостью отвечу на всю критику и замечания.