Abspielen des RTP-Videostreams mit Qt?

8

Ich möchte ein Qt-Widget erstellen, das eingehende RTP-Streams abspielen kann, wobei das Video als H264 kodiert ist und kein Audio enthält.

Mein Grundplan für die Implementierung lautet wie folgt:

  • Erstellen Sie ein Phonon-Objekt MediaSource (Stream-Typ).
  • Verbinden Sie es mit einer QIODevice Unterklasse, die die Daten bereitstellt
  • Besorgen Sie sich die Videodaten mit:
    • Die JRTPLIB Client-Bibliothek
    • Der GStreamer gstrtpbin Plugin. Dieses Plugin kümmert sich darum, die Pakete zu entladen und das Video zu entschlüsseln. Vielleicht verbessert dies die Wahrscheinlichkeit, dass Phonon die Daten erkennt.

Meine Umgebung:

  • Ubuntu 9.10
  • Qt 4.6

Meine Fragen:

  • Ist meine Herangehensweise gut? Vielleicht übersehe ich eine offensichtliche oder einfache Lösung?
  • Dieses Problem tritt derzeit auf: Beim Versuch, den Video-Stream abzuspielen, wechselt der Status des MediaObject zu ErrorState mit errorType FatalError. Kann mir jemand sagen, was ich falsch mache?

Bearbeiten
Eine Lösung, die ich gefunden habe, ist die Verwendung von libVLC in Kombination mit Qt, von dem ich in diesem thread . Hier ist ein Codebeispiel für Interessierte. Ich bin immer noch auf der Suche nach einer Phonon-basierten Lösung.
Idealerweise müsste ich nur eine SDP-Datei bereitstellen, und der Job ist erledigt.

    
StackedCrooked 05.12.2009, 16:22
quelle

2 Antworten

3

Ich konnte es mit der libVLC-Lösung zum Laufen bringen. Ich kann nicht garantieren, dass dies die beste Lösung ist, obwohl ich einfach aufgehört habe, mich darum zu kümmern.

Hier ist ein Link zum libVLC-Beispiel .

    
StackedCrooked 28.07.2010, 19:30
quelle
2

Ich verstehe zumindest, dass Phonon in Windows funktioniert, wenn QT in Ihrem Fall ein Phonon-Backend-Plugin für DirectShow (\ plugins \ phonon_backend \ phonon_ds94.dll) und GStreamer zur Verfügung stellt. Dann würden Sie entweder Ihren eigenen DirectShow-Filter erhalten oder schreiben, der RTP-Streams als Quelle akzeptiert. DirectShow kümmert sich um die Dekodierung und Phonon kümmert sich um das Rendering.

Wenn also das Backend funktioniert, ist der Anwendungscode so einfach wie:

%Vor%

Scheint, dass das Problem darin liegt, dass das GStreamer-Backend RTP als Quelle akzeptiert. Können Sie diese Quelle ohne Probleme im eigenständigen GStreamer wiedergeben?

    
Vicken Simonian 07.12.2009 16:52
quelle

Tags und Links