SDK UDP Player з нізкай затрымкай для Windows x64

SDK прайгравальніка UDP H.264/H.265 з нізкай затрымкай для Windows x64 – карыстальніцкае рашэнне UDP Demux для прыкладанняў Python/Qt

UDP stream player setting for wireless video transmitter and receiver
Налада прайгравальніка патоку UDP для бесправаднога перадатчыка і прымача відэа

Многія распрацоўшчыкі, якія выкарыстоўваюць платы кадавальніка HDMI/CVBS/UVC у IP, у рэшце рэшт сутыкаюцца з той жа праблемай:

Затрымка RTSP занадта вялікая.

Для прафесійных прыкладанняў у рэжыме рэальнага часу, такіх як:

  • Перадача відэа з дрона
  • Робататэтыка
  • Вытворчы маніторынг
  • Сістэмы FPV
  • Апрацоўка бачання AI
  • Трансляцыя з нізкай затрымкай
  • Сістэмы бяспекі
  • Медыцынская візуалізацыя
  • Відэасцены на заказ

нават затрымка ў 100 мс можа быць занадта вялікай.

Нядаўна, адзін з нашых кліентаў звярнуўся да нас з вельмі прафесійным патрабаваннем:

«Мы распрацоўваем уласнае праграмнае забеспячэнне прайгравальніка з нізкай затрымкай для вашай платы кадавальніка. Затрымка RTSP занадта вялікая. Мы хочам атрымліваць карыстальніцкі паток UDP напрамую і ствараць уласны канвеер дэкодэра/дысплея».

Гэта менавіта тое, дзе SPlayer SDK і карыстацкае рашэнне UDP demux становяцца важнымі.


Чаму FFmpeg або VLC не могуць прайграваць паток UDP

Частае пытанне:

«Чаму ffplay udp://ххх не працуе?”

Прычына простая:

Кадавальнік НЕ выкарыстоўвае стандарт MPEG-TS або стандарт RTP праз UDP.

Замест, прылада выкарыстоўвае прапрыетарны/прыватны транспартны пратакол UDP, аптымізаваны для звышнізкай затрымкі перадачы.

UDP-пакеты могуць утрымліваць:

  • Прыватныя загалоўкі
  • Індэкс кадраў
  • Метка часу
  • Фрагментаваныя відэа пакеты
  • Аўдыёдадзеныя
  • Паслядоўныя/UART дадзеныя

З-за гэтага, стандартныя гульцы, такія як:

  • VLC
  • ffplay
  • Gstreamer

не можа непасрэдна дэкадаваць паток.

Патрабуецца спецыяльны ўзровень демультиплексора.


Архітэктура SPlayer SDK

SPlayer SDK для Windows распрацаваны спецыяльна для гэтай мэты.

Тыповая архітэктура:

Encoder
   ↓
Custom UDP protocol
   ↓
SPlayer Demux SDK
   ↓
H.264 / H.265 Elementary Stream
   ↓
Custom Decoder
   ↓
Custom Renderer / Display

Звычайна поўны ўнутраны паток:

demux → decode → display → record

SDK асабліва карысны для распрацоўшчыкаў, якія хочуць:

  • Стварыце ўласнае праграмнае забеспячэнне для прайгравальніка
  • Інтэграцыя ў Python/Qt
  • Выкарыстоўвайце візуалізацыя DirectX/OpenGL
  • Паменшыць буферызацыю
  • Дасягненне звышнізкай затрымкі адлюстравання

RTSP супраць карыстацкай затрымкі UDP

Тыповае параўнанне затрымкі:

ПратаколТыповая затрымка
RTSP150~500 мс
Стандартны RTP/UDP80~150 мс
Карыстальніцкі пратакол UDP20~80 мс

Адзін кліент паведаміў:

  • Бягучая затрымка: ~100 мс
  • Мэтавая затрымка: ~60 мс

Гэта рэалістычна з:

  • Карыстальніцкае праграмнае забеспячэнне прайгравальніка
  • аптымізаваная буферызацыя
  • прамы UDP демультиплексор
  • апаратна паскоранае дэкадаванне

Ці можам мы стварыць плэер на Python?

ды.

Гэта яшчэ адно частае пытанне.

Заказчык спытаў:

«Як мы можам рэалізаваць відэаплэер на Python?”

Важны момант:

Python НЕ нясе адказнасці за аналіз ўласнага пратаколу UDP.

Замест, архітэктура звычайна выглядае так:

Python/Qt UI
      ↓
ctypes / cffi / pybind11
      ↓
SPlayer SDK DLL
      ↓
H264/H265 elementary stream
      ↓
FFmpeg / PyAV decode
      ↓
OpenGL / DirectX rendering

Python вельмі добра працуе для:

  • карыстацкі інтэрфейс
  • логіка кіравання
  • Апрацоўка ІІ
  • шматканальнае кіраванне
  • кантроль сеткі

у той час як DLL SDK апрацоўвае демультиплексор UDP у рэальным часе.


Што звычайна патрабуецца распрацоўшчыкам ад SDK

Прафесійныя кліенты звычайна пытаюцца:

1. Падтрымка Windows x64

Сучаснае праграмнае забеспячэнне патрабуе:

  • DLL для windows x64
  • x64 LIB
  • Дэманстрацыя x64

Многія старыя SDK падтрымліваюць толькі Win32/x86, чаго ўжо не хапае.


2. H.264 / Вывад элементарнага патоку H.265

Самая важная асаблівасць:

SDK павінен выставіць:

  • неапрацаваны H264/H265 WAVE
  • пазнакі часу
  • аўдыё кадры
  • паслядоўныя/UART дадзеныя

Гэта дазваляе інтэграцыю з:

  • Ffmpeg
  • PyAV
  • Дэкодэр NVIDIA
  • Intel QuickSync
  • карыстальніцкія канвееры GPU

3. API зваротнага выкліку

Тыповыя API ўключаюць:

on_video_frame(...)
on_audio_frame(...)
on_serial_data(...)

Гэта важна для прыкладанняў з нізкай затрымкай.


4. Сумяшчальнасць кампілятара

Распрацоўшчыкі звычайна пытаюцца:

  • Версія Visual Studio?
  • Час выканання MSVC?
  • падтрымка x64?
  • статычны або дынамічны час выканання?
  • DLL або зыходны код?

Гэтыя дэталі важныя для інтэграцыі ў прафесійнае праграмнае забеспячэнне.


Тыповыя выпадкі выкарыстання

SDK звычайна выкарыстоўваецца для:

  • Наземныя станцыі беспілотнікаў/беспілотнікаў
  • Назіранне ў рэжыме рэальнага часу
  • Прамысловыя камеры
  • Медыцынскія сістэмы
  • Жывая пастаноўка
  • AI відэааналітыка
  • Гранічныя вылічэнні
  • Відэарэлейныя сістэмы
  • Карыстальніцкае праграмнае забеспячэнне NVR

Спампаваць SPlayer SDK

Наш інжынер прадаставіў пакет SDK для ацэнкі і другаснай распрацоўкі:

Спасылка для загрузкі SDK:

https://drive.google.com/file/d/1ifdJtE50YKH3S9JaAV0LCTKZcZgUtN_b/view?usp=drive_link

SDK прызначаны для распрацоўшчыкаў, якія маюць патрэбу:

  • прыём UDP з нізкай затрымкай
  • распрацоўка плэера на заказ
  • H264/H265 демультиплексор
  • Інтэграцыя Windows x64
  • Інтэграцыя Python/Qt
  • распрацоўка другаснага праграмнага забеспячэння

Заключныя нататкі

Калі ваш праект патрабуе:

  • меншая затрымка, чым RTSP
  • апрацоўка відэа на заказ
  • прапрыетарны транспарт UDP
  • Распрацоўка прайгравальніка Python/Qt
  • Інтэграцыя Windows x64 SDK

тады выкарыстанне спецыяльнага UDP demux SDK з'яўляецца правільным падыходам.

Традыцыйнае прайграванне VLC або ffmpeg можа не працаваць з прапрыетарнымі пратаколамі UDP з нізкай затрымкай.

Прафесійныя сістэмы з нізкай затрымкай звычайна патрабуюць:

  • карыстацкі демультиплексор
  • аптымізаваная буферызацыя
  • прамы канвеер дэкодэра
  • GPU паскораны рэндэрынг

Для распрацоўшчыкаў, якія ствараюць відэасістэмы новага пакалення ў рэальным часе, гэтая архітэктура забяспечвае значна лепшую прадукцыйнасць затрымкі, чым стандартныя працоўныя працэсы RTSP.

задаваць пытанне

← Назад

Ваша паведамленне адпраўлена