Hdmi capture usb linux

Как нам врут: устройство Onten US302 для захвата видео с HDMI-порта

Коротко об важном:

— Устройство не USB 3.0, а USB 2.0

— Максимальное разрешение/частота кадров записи несжатого видео – 480p @ 30 fps

— Максимальное разрешение/частота кадров записи сжатого видео – 1080p @ 30 fps

— Кодек аппаратного сжатия — MJPG, максимальный битрейт – 100 мбит

— Максимальное входное разрешение изображения – 4K @ 30fps

— Средняя «цена по палате» — $8-9

Такие устройства, как обозреваемое, нужны крайне малочисленней аудитории пользователей ПК, так что и обзоров, и информаций по ним в интернете очень мало, и(или) они очень поверхностные и с минимумом полезной информации. Я решил, в пределах своих возможностей, эту проблему исправить и написать обзор, в котором постарался ответить на те вопросы, ответы на которые не были даны в других обзорах этого устройства.

Итак, перед нами устройство захвата видео с HDMI порта. Кому оно нужно?

— Консольным и мобильным геймерам – для записи видео с прохождением игр, соревновании и так далее.

— Обычным пользователям ПК – писать видео с экрана ПК можно и прямо в ПК, но это – дополнительная трата ресурсов видеокарты и процессора, что в свою очередь, может вызвать падение частоты кадров и дискомфорт в играх. А с применением этого устройства, можно захватывать видео с помощью второго, маломощного ПК или ноутбука.

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

— Обозревателям материнок, фотоаппаратов, ТВ приставок, ресиверов и других устройств с видеовыходом – с помощью таких устройств, можно захватывать картинки и видео с экранов БИОСа, меню фотоаппаратов и других, «системных» экранов, запись с которых, стандартными средствами невозможна.

Изображение с BIOS материнской платы Biostar H310 MHG и изображение с меню фотоаппарата Sony ILCA77M2, захваченные с помощью обозреваемого устройства.

У меня есть фотоаппарат Sony SLT A77mk2 (ILCA-77M2), который поддерживает выдачу на HDMI выход несжатого видео с разрешением 1080p @ 60 fps. Именно под него я и покупал это устройство захвата – стоит оно порядка $8, а в отличие от таких же, но на USB 2.0, у которых частота захвата видео только 30 кадров в секунду, тут обещают, что можно записывать и 60 кадров в секунду. Также, наличие интерфейса USB 3.0, подразумевает возможность захвата несжатого видео в полном разрешении, на максимальной частоте кадров. К сожалению, реальность оказалась суровой – у устройства нет интерфейса USB 3.0, только USB 2.0, максимальное качество, при котором можно захватывать несжатое видео – это 720p @ 30 fps а режима 60fps нет вообще – то есть такой режим номинально есть, но в реальности он те же самые 30fps, но с дублированием кадров. Я решил, в меру своих возможностей, разобраться с этой проблемой, и через друзей в Китае вышел на производителя, мол, а чего вы врёте, товарищи Китайцы? На что производитель ответил – а ты где в мануале продукта читал про упоминание USB 3.0 или поддержки 60fps? И действительно, там ничего такого не указано – интерфейс везде указан USB 2.0, а про HDMI написано, что поддерживается входная частота кадров до 60 герц, но нигде не написано, что захват идёт с такой частотой. Так что с этой стороны наезд не прошёл – продавец встал в позу зря обиженного и заявил, что мол это недобросовестные продавцы продвигают продукт как USB 3.0, а они сами – ни сном и не духом. На мой вопрос, если проблема только с продавцами, то откуда у устройства USB 3.0 джек? Тоже продавцы поставили? Ответ так и не был получен…

Читайте также:  Почему не выключается монитор после выключения компьютера windows 10

Про комплект поставки, коробочку и прочее – многого говорить не буду, так как это никому не нужно и не интересно. Всё просто и банально. Девайс сам небольшой, при работе сильно не греется, и даже имеет настоящий USB 3.0 коннектор.

Для этого подключаем его к ПК, где он определяется как USB3. 0 Capture – Китайцы не смогли правильно даже маркировку подделать – пробел поставили не в том месте. Смотрим VID/PID – Это VID_534D&PID_2109 – Вполне известный MacroSilicon HDMI Capture device, который заявлен производителем как USB 2.0, а не как USB 3.0. Для оценки видеовозможностей, запускаем утилиту AMCAP, чтоб посмотреть на Capture pin/capture filter. Как можем убедится, в случае с MJPG всё довольно неплохо, но вот с несжатым видео – всё очень печально.

Может возникнуть вопрос, а что такого плохого в сжатии, тем более битрейт неплохой получается, почти 100 мбит? А дело в том, что сжатие в любом случае, портит качество, а кодек MJPG – это очень «плохой» в плане эффективности, кодек, это по сути своей, просто набор .JPG картинок, собранных в один видеофайл. Такой кодек имел актуальность в конце 90х и начале 00х, многие, наверное, помнят такие карты видеозахвата как Miro Video DC10, DC30 и так далее – там тоже был кодек MJPG, но и исходный сигнал там имел качественные показатели, весьма далёкие от того, что обеспечивает HDMI. Говоря грубо, 100 мбит MJPG, это по качеству как 10 мбит H.264, с таким качеством видео сжимают нормальные видеорегистраторы (но не профессиональные устройства захвата и записи видео), так что для захвата видео с игр или статичных картинок экрана этот кодек подходит вполне, а вот для качественного захвата видео с несжатого источника – практически не подходит.

Это всё лирика, а теперь – практика. Задача – узнать, как реальные характеристики устройства, так и загрузку ЦП при разных сценариях использования.

Тестовой стенд был собран из двух ПК – В качестве «Основного», к которому подключалось это устройство захвата, выступил компьютер следующей конфигурации: Процессор — i3-9100F, материнская плата Biostar H310 MHG, Оперативная память 16GB DDR4, 512GB NVME SSD, 2GB AMD Radeon RX550. В качестве же источника сигнала выступал планшет Microsoft Surface Pro 5, к которому, через HDMI выход на фирменном доке, подключалось это устройство захвата. Разрешение на HDMI выходе ставилось 1920 на 1080, при частоте обновления 60 кадров в секунду. Режим цветности – RGB, 24 Bit. В качестве программного обеспечения для захвата видео использовались утилиты Amcap, iUvcr, OBS Studio.

Для начала, проверяем заявленную частоту кадров. Для этого, на компьютере-источнике открывается специальный тестовой видеоролик, и включается запись. В записанном видео, стрелка часов должна менять положение в каждом кадре (при режиме 60 кадров в секунду). Если этого не происходит, значит идёт либо пропуск, либо дублирование кадров. И конечно же, Китайские друзья нас опять «прокатили» — хотя и частоту кадров можно выставить на 60fps при разрешении 1920х1080, захват реально идёт с частотой в 30 кадров в секунду – кадры просто дублируются. Частота в 60 кадров в секунду поддерживается только для разрешения 720p.

Во вторую очередь, стараемся узнать, на что способен встроенный кодек MJPG, каков его максимальный битрейт, так как никаких настроек качества для него не предусмотрено. Так как кодек MJPG «не умеет» межкадровую компрессию, то для него и статичная картинка достаточна. В графическом редакторе генерирую плохо сжимаемую картинку из разноцветных пикселей, с разрешением в 1920х1080 и вывожу её на полный экран, без масштабирования.

Битрейт получился около 100мбит. Неплохо. Но тесты на этом не закончены, следующим тестом идёт проверка загрузки ЦП при разных режимах захвата.

Для проверки загрузки ЦП при разных режимах, захват вёлся в разные кодеки и с разными разрешениями. Для исключения влияния дисковой подсистемы, захват осуществлялся на NVME SSD. На источнике воспроизводился видеоролик Costa Rica in 4K60fps HDR, в разрешении 1080р @ 60 fps. Изначально, планировал свести данные по разным приложениям и режимам в таблицу, но они оказались настолько похожими, что смысла в таблице нет. Загрузка процессора не превышает 15% при максимальном разрешении и битрейте (1080p/30fps), и падает до 5% при разрешении 480p/30 fps. Также, она не зависит от выбранного кодека, YUV2/MJPG. При стриминге в OBS Studio, с разрешением 1080p/30fps и битрейтом 5мбит (кодек H.264), загрузка процессора не превышала 17%. Из всего этого можно сделать вывод что современным процессорам, такая «нагрузка», в принципе, и не заметна вообще. Специально накидал на видео в OBS Studio 10 разных фильтров и эффектов – загрузка процессора поднималась моментами до 25%, но не более.

Читайте также:  Что такое zfs при установке linux

Кадр из захваченного видео — 1080p, 30fps, MJPG

С фрагментом захваченного видео можно ознакомится по ссылке: https://gofile.io/d/z8tbf9

Был опробован захват с источника с разрешением 4К. Технически да, захватывать можно, но понижение разрешения идёт с сильными артефактами, как можно убедится по картинке, так что про захват с разрешения 4К лучше забыть.

С разрешением 1080p и ниже проблем нет – всё захватывается в хорошем качестве, но только в том случае, когда входное разрешение соответствует записываемому. Т.е. если скажем вам нужна запись в разрешении 720р, то и на источнике следует выставить такое же разрешение, иначе, будут заметные артефакты ресемплинга.

Подводим выводы – это хорошее, стабильно работающее USB 2.0 устройство захвата, с битрейтом до 100мбит и разрешением до 1080p @ 30fps. Все заявления про USB 3.0 и 60 fps @ 1080p – вранье. Можно взять такое же устройство, но маркированное как USB 2.0, но на пару долларов дешевле. И хотя я решения поставленной задачи (запись несжатого FullHD видео) не добился, устройству применение всё-таки нашёл: Использую, для подключения фотоаппарата к компьютеру в качестве качественной веб-камеры – когда важная встреча и(или) нужен широкий угол, который обычные вебкамеры не обеспечивают.

Источник

Rullz Mini USB HDMI Video Capture Card / Еще один мини-обзор

Где то месяц назад я в комментах увидел отсылку на самую дешевую карту захвата и найдя её на али решил заказать. Пока она пришла и я разбирался что эта за фигня и зачем она мне, случилась акция и мини обзор на неё. Решил написать мини-обзор немного дополняющий, но всё еще не полный. И выложить нарезку записанного для возможности оценить какество захвата.

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

//Рассматриваю usb2 версию, версия usb3 появилась позднее, иначе бы взял её.

Желтый конверт

По поводу стерео, см UPD3.

Самое забавное, что у HD Webcam C525 такие же vid:pid, из-за чего я не мог понять что за фигня творится в dmesg и lsusb, в котором свисток не отображался, пока я не выключил веб-камеру. Ииии в этот момент я понял почему Windows Camera могла писать с вебки, а не с rullz.
Да, увы, alsa тоже говорит моно, один канал.

Захваченное видео

Больше фоточек

Кошка

UPD:
Касательно HDCP, я знаю про панель управления, там заявляется поддержка hdcp. НО мне не ясно заявляется или поддерживается.

Monitor
Model name… MACROSILICON
Manufacturer… HJW
Plug and Play ID… HJW1836
Serial number… 190909
Manufacture date… 2019, ISO week 37
Filter driver… None
— EDID revision… 1.3
Input signal type… Digital
Color bit depth… Undefined
Display type… Monochrome/grayscale
Screen size… 530 x 290 mm (23,8 in)
Power management… Active off/sleep
Extension blocs… 1 (CEA/CTA-EXT)
— DDC/CI… Not supported

Color characteristics
Default color space… Non-sRGB
Display gamma… 2,20
Red chromaticity… Rx 0,640 — Ry 0,330
Green chromaticity… Gx 0,300 — Gy 0,600
Blue chromaticity… Bx 0,150 — By 0,060
White point (default)… Wx 0,313 — Wy 0,329
Additional descriptors… None

Timing characteristics
Range limits… Not available
GTF standard… Not supported
Additional descriptors… None
Preferred timing… Yes
Native/preferred timing… 1280x720p at 60Hz (16:9)
Modeline… «1280×720» 74,250 1280 1390 1430 1650 720 725 730 750 +hsync +vsync
Detailed timing #1… 1280x768p at 60Hz (16:9)
Modeline… «1280×768» 79,500 1280 1344 1472 1664 768 771 778 798 -hsync +vsync

Читайте также:  Windows server команды консоли

Standard timings supported
640 x 480p at 60Hz — IBM VGA
800 x 600p at 60Hz — VESA
1024 x 768p at 60Hz — VESA
1024 x 768p at 70Hz — VESA
1024 x 768p at 75Hz — VESA
1280 x 1024p at 75Hz — VESA
1280 x 800p at 60Hz — VESA STD
1280 x 960p at 60Hz — VESA STD
1280 x 1024p at 60Hz — VESA STD
1400 x 1050p at 60Hz — VESA STD
1440 x 900p at 60Hz — VESA STD
1600 x 1200p at 60Hz — VESA STD
1680 x 1050p at 60Hz — VESA STD

EIA/CEA/CTA-861 Information
Revision number… 3
IT underscan… Supported
Basic audio… Supported
YCbCr 4:4:4… Supported
YCbCr 4:2:2… Supported
Native formats… 1
Detailed timing #1… 1360x768p at 60Hz (16:9)
Modeline… «1360×768» 85,500 1360 1424 1536 1792 768 771 777 795 +hsync +vsync
Detailed timing #2… 1366x768p at 60Hz (16:9)
Modeline… «1366×768» 85,500 1366 1436 1579 1792 768 771 774 798 +hsync +vsync
Detailed timing #3… 720x480p at 60Hz (16:9)
Modeline… «720×480» 27,000 720 736 798 858 480 489 495 525 -hsync -vsync

CE video identifiers (VICs) — timing/formats supported
720 x 480p at 60Hz — EDTV (4:3, 8:9)
720 x 576p at 50Hz — EDTV (4:3, 16:15)
1280 x 720p at 50Hz — HDTV (16:9, 1:1)
1280 x 720p at 60Hz — HDTV (16:9, 1:1) [Native]
1920 x 1080p at 50Hz — HDTV (16:9, 1:1)
1920 x 1080p at 60Hz — HDTV (16:9, 1:1)
720 x 480p at 60Hz — EDTV (16:9, 32:27)
720 x 576p at 50Hz — EDTV (16:9, 64:45)
720 x 480i at 60Hz — Doublescan (4:3, 8:9)
720 x 576i at 50Hz — Doublescan (4:3, 16:15)
720 x 480i at 60Hz — Doublescan (16:9, 32:27)
720 x 576i at 50Hz — Doublescan (16:9, 64:45)
1920 x 1080i at 60Hz — HDTV (16:9, 1:1)
1920 x 1080i at 50Hz — HDTV (16:9, 1:1)
1920 x 1080i at 50Hz — HDTV (16:9, 1:1)
1920 x 1080i at 50Hz — HDTV (16:9, 1:1)
1920 x 1080i at 50Hz — HDTV (16:9, 1:1)
1920 x 1080i at 50Hz — HDTV (16:9, 1:1)
NB: NTSC refresh rate = (Hz*1000)/1001

CE audio data (formats supported)
LPCM 2-channel, 16/20/24 bit depths at 32/44/48/88/96/176/192 kHz

CE speaker allocation data
Channel configuration… 2.0
Front left/right… Yes
Front LFE… No
Front center… No
Rear left/right… No
Rear center… No
Front left/right center… No
Rear left/right center… No
Rear LFE… No

CE vendor specific data (VSDB)
IEEE registration number. 0x000C03
CEC physical address… 1.0.0.0
Supports AI (ACP, ISRC)… No
Supports 48bpp… No
Supports 36bpp… No
Supports 30bpp… No
Supports YCbCr 4:4:4… No
Supports dual-link DVI… No
Maximum TMDS clock… 300MHz
Audio/video latency (p)… n/a
Audio/video latency (i)… n/a
HDMI video capabilities… Yes
EDID screen size… No additional info
3D formats supported… Not supported
Data payload… 030C001000003C20008001020304

YCbCr 4:2:0 video data
Data payload… 0E61606566

Report information
Date generated… 22.07.2020
Software revision… 2.91.0.1043
Data source… Real-time 0x3100
Operating system… 10.0.18363.2

Raw data
00,FF,FF,FF,FF,FF,FF,00,21,57,36,18,BD,E9,02,00,25,1D,01,03,80,35,1D,78,22,EE,91,A3,54,4C,99,26,
0F,50,54,21,0F,00,81,00,81,40,81,80,90,40,95,00,01,01,A9,40,B3,00,01,1D,00,72,51,D0,1E,20,6E,28,
55,00,0F,48,42,00,00,1E,0E,1F,00,80,51,00,1E,30,40,80,37,00,0F,48,42,00,00,1C,00,00,00,10,00,00,
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,FC,00,4D,41,43,52,4F,53,49,4C,49,43,4F,4E,0A,01,19,
02,03,34,F1,52,02,11,13,84,1F,10,03,12,06,15,07,16,05,14,5E,5F,63,64,23,09,7F,07,83,01,00,00,6E,
03,0C,00,10,00,00,3C,20,00,80,01,02,03,04,E5,0E,61,60,65,66,66,21,50,B0,51,00,1B,30,40,70,36,00,
0F,48,42,00,00,1E,66,21,56,AA,51,00,1E,30,46,8F,33,00,0F,48,42,00,00,1E,8C,0A,D0,8A,20,E0,2D,10,
10,3E,96,00,10,09,00,00,00,18,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,B2

UPD2:
В самом начале видео слева видно вертикальную полосу, похоже это проблема не захвата, а сплиттера hdmi. Как стало видно позднее, он такое на «нестандартных» разрешениях иногда выдаёт.

UPD3:
В ОС Linux, ubuntu 20.04 на i5-7500 получилось следующее:
Командой
v4l2-ctl —list-devices
определить какое видео устройство создается картой захвата.
Далее:

Откуда следует
Захват при этом без тормозов, процессор нагружается в пике на 10%, и самое главное СТЕРЕО звук, проверял захватом стерео теста…
Посредством управления опциями ffmpeg можно сохранять не только в mjpeg avi, но и включить кодер, но это уже сами 🙂
Увы 60fps так прихватить не получилось, причем по 60fps тесту, вообще частота кадров какая то странная, как будто плавающая и в районе 24.

Источник

Оцените статью