Χαμηλή καθυστέρηση UDP Player SDK για Windows x64

Χαμηλή καθυστέρηση UDP H.264/H.265 Player SDK για Windows x64 – Προσαρμοσμένη λύση UDP Demux για εφαρμογές Python/Qt

UDP stream player setting for wireless video transmitter and receiver
Ρύθμιση αναπαραγωγής ροής UDP για ασύρματο πομπό και δέκτη βίντεο

Πολλοί προγραμματιστές που χρησιμοποιούν πλακέτες κωδικοποιητών HDMI/CVBS/UVC σε IP αντιμετωπίζουν τελικά την ίδια πρόκληση:

Η καθυστέρηση RTSP είναι πολύ υψηλή.

Για επαγγελματικές εφαρμογές σε πραγματικό χρόνο όπως π.χ:

  • Μετάδοση βίντεο με drone
  • Ρομποτική
  • Βιομηχανική παρακολούθηση
  • Συστήματα FPV
  • Επεξεργασία όρασης AI
  • Μετάδοση χαμηλής καθυστέρησης
  • Συστήματα ασφαλείας
  • Ιατρική απεικόνιση
  • Προσαρμοσμένοι τοίχοι βίντεο

ακόμη και η καθυστέρηση 100 ms μπορεί να είναι ήδη πάρα πολύ.

Πρόσφατα, ένας από τους πελάτες μας επικοινώνησε μαζί μας με μια πολύ επαγγελματική απαίτηση:

«Αναπτύσσουμε το δικό μας λογισμικό αναπαραγωγής χαμηλής καθυστέρησης για την πλακέτα κωδικοποιητή σας. Η καθυστέρηση RTSP είναι πολύ υψηλή. Θέλουμε να λάβουμε απευθείας την προσαρμοσμένη ροή UDP και να δημιουργήσουμε τον δικό μας αποκωδικοποιητή/αγωγό προβολής."

Αυτό είναι ακριβώς όπου το SPlayer SDK και η προσαρμοσμένη λύση demux UDP γίνονται σημαντικά.


Γιατί το FFmpeg ή το VLC δεν μπορούν να παίξουν τη ροή UDP

Μια κοινή ερώτηση είναι:

«Γιατί το ffplay udp://xxx δεν λειτουργεί?»

Ο λόγος είναι απλός:

Ο κωδικοποιητής ΔΕΝ χρησιμοποιεί τυπικό MPEG-TS ή τυπικό RTP μέσω UDP.

Αντί, η συσκευή χρησιμοποιεί ένα ιδιόκτητο/ιδιωτικό πρωτόκολλο μεταφοράς UDP βελτιστοποιημένο για μετάδοση εξαιρετικά χαμηλής καθυστέρησης.

Τα πακέτα UDP ενδέχεται να περιέχουν:

  • Ιδιωτικές κεφαλίδες
  • Ευρετήριο πλαισίου
  • Χρονική σήμανση
  • Κατακερματισμένα πακέτα βίντεο
  • Ηχητικά δεδομένα
  • Σειριακά/UART δεδομένα

Εξαιτίας αυτού, στάνταρ παίκτες όπως:

  • VLC
  • ffplay
  • Γελοιογράφος

δεν μπορεί να αποκωδικοποιήσει απευθείας τη ροή.

Απαιτείται ένα ειδικό επίπεδο demux.


SPlayer SDK Architecture

Το SDK του SPlayer για 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 ms
Τυπικό RTP/UDP80~ 150 ms
Προσαρμοσμένο πρωτόκολλο UDP20~ 80 ms

Ένας πελάτης ανέφερε:

  • Τρέχουσα καθυστέρηση: ~ 100 ms
  • Στόχος καθυστέρησης: ~ 60 ms

Αυτό είναι ρεαλιστικό με:

  • προσαρμοσμένο λογισμικό αναπαραγωγής
  • βελτιστοποιημένη αποθήκευση στην προσωρινή μνήμη
  • άμεσο UDP demux
  • επιταχυνόμενη αποκωδικοποίηση υλικού

Μπορούμε να φτιάξουμε έναν παίκτη στην Python?

Ναί.

Αυτή είναι μια άλλη κοινή ερώτηση.

ρώτησε ο πελάτης:

«Πώς μπορούμε να εφαρμόσουμε το πρόγραμμα αναπαραγωγής βίντεο στην Python?»

Το σημαντικό σημείο είναι:

Η Python ΔΕΝ είναι υπεύθυνη για την ανάλυση του ίδιου του ιδιόκτητου πρωτοκόλλου UDP.

Αντί, η αρχιτεκτονική συνήθως μοιάζει με αυτό:

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

Η Python λειτουργεί πολύ καλά για:

  • UI
  • λογική ελέγχου
  • Επεξεργασία AI
  • πολυκαναλική διαχείριση
  • έλεγχος δικτύου

ενώ το SDK DLL χειρίζεται το UDP demux σε πραγματικό χρόνο.


Τι χρειάζονται συνήθως οι προγραμματιστές από το SDK

Οι επαγγελματίες πελάτες συνήθως ρωτούν:

1. Υποστήριξη Windows x64

Το σύγχρονο λογισμικό απαιτεί:

  • Windows x64 DLL
  • x64 LIB
  • x64 επίδειξη

Πολλά παλαιότερα SDK υποστηρίζουν μόνο Win32/x86, που δεν είναι πια αρκετό.


2. H.264 / H.265 Έξοδος στοιχειώδους ροής

Το πιο σημαντικό χαρακτηριστικό:

Το SDK θα πρέπει να αποκαλύψει:

  • ακατέργαστο H264/H265 WAVE
  • χρονικές σημάνσεις
  • καρέ ήχου
  • σειριακά/δεδομένα UART

Αυτό επιτρέπει την ενσωμάτωση με:

  • Ffmpeg
  • PyAV
  • Αποκωδικοποιητής NVIDIA
  • Intel QuickSync
  • προσαρμοσμένες σωληνώσεις GPU

3. Callback API

Τα τυπικά API περιλαμβάνουν:

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

Αυτό είναι απαραίτητο για εφαρμογές χαμηλής καθυστέρησης.


4. Συμβατότητα μεταγλωττιστή

Οι προγραμματιστές συνήθως ρωτούν:

  • Έκδοση Visual Studio?
  • Χρόνος εκτέλεσης MSVC?
  • υποστήριξη x64?
  • στατικό ή δυναμικό χρόνο εκτέλεσης?
  • DLL ή πηγαίος κώδικας?

Αυτές οι λεπτομέρειες έχουν σημασία για την ενσωμάτωση σε επαγγελματικό λογισμικό.


Τυπικές περιπτώσεις χρήσης

Το SDK χρησιμοποιείται συνήθως για:

  • Επίγειοι σταθμοί UAV/Drone
  • Παρακολούθηση σε πραγματικό χρόνο
  • Βιομηχανικές κάμερες
  • Ιατρικά συστήματα
  • Ζωντανή παραγωγή
  • Αναλύσεις βίντεο AI
  • Υπολογισμός ακμών
  • Συστήματα αναμετάδοσης βίντεο
  • Προσαρμοσμένο λογισμικό NVR

Λήψη SDK του SPlayer

Ο μηχανικός μας έχει παράσχει το πακέτο SDK για αξιολόγηση και δευτερογενή ανάπτυξη:

Σύνδεσμος λήψης SDK:

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

Το SDK προορίζεται για προγραμματιστές που χρειάζονται:

  • λήψη UDP χαμηλής καθυστέρησης
  • προσαρμοσμένη ανάπτυξη παίκτη
  • H264/H265 demux
  • Ενσωμάτωση Windows x64
  • Ενσωμάτωση Python/Qt
  • δευτερεύουσα ανάπτυξη λογισμικού

Τελικές Σημειώσεις

Εάν το έργο σας απαιτεί:

  • χαμηλότερη καθυστέρηση από το RTSP
  • προσαρμοσμένη επεξεργασία βίντεο
  • αποκλειστική μεταφορά UDP
  • Ανάπτυξη παίκτη Python/Qt
  • Ενσωμάτωση Windows x64 SDK

Στη συνέχεια, η χρήση ενός αποκλειστικού UDP demux SDK είναι η σωστή προσέγγιση.

Η παραδοσιακή αναπαραγωγή VLC ή ffmpeg ενδέχεται να μην λειτουργεί με ιδιόκτητα πρωτόκολλα UDP χαμηλής καθυστέρησης.

Τα επαγγελματικά συστήματα χαμηλής καθυστέρησης συνήθως απαιτούν:

  • προσαρμοσμένο demux
  • βελτιστοποιημένη αποθήκευση στην προσωρινή μνήμη
  • άμεσος αγωγός αποκωδικοποιητή
  • Επιταχυνόμενη απόδοση GPU

Για προγραμματιστές που κατασκευάζουν συστήματα βίντεο σε πραγματικό χρόνο επόμενης γενιάς, Αυτή η αρχιτεκτονική παρέχει πολύ καλύτερη απόδοση καθυστέρησης από τις τυπικές ροές εργασίας RTSP.

Κάνε μια ερώτηση

← Πίσω

Το μήνυμά σας έχει σταλεί