2016-06-09 9 views
2

Ich habe nicht viel Erfahrung mit gstreamer, und ich konnte nicht etwas online finden, um es herauszufinden.Stream Android Kamera als H264 mpeg-Ts über UDP mit GStreamer

Ich benutze this open-source, um eine Android-App zu streamen Kamera als H264 mpegts über UDP zu entwickeln.

Ich bin mit der Pipeline stecken geblieben, wo ich zwei funktionierende Pipelines habe, die ich einfach nicht zusammenführen kann, um zusammen zu arbeiten. Die ursprüngliche Open-Source-Pipeline:

"ahcsrc ! queue ! glimagesink name=vsink sync=false" 

(wenn ahcsrc steht für Android-Hardware-Kamera-src)

Und meine Tests Pipeline:

"videotestsrc ! decodebin ! x264enc bframes=2 ! mpegtsmux ! udpsink host=192.168.102.74 port=1234" 

Beide arbeitet völlig in Ordnung.

Mein Ziel ist es meine Test-Pipeline zu nehmen, und schalten Sie den videotestsrc zum ahcsrc wie in:

"ahcsrc ! decodebin ! x264enc bframes=2 ! mpegtsmux ! udpsink host=192.168.102.74 port=1234" 

Leider gibt es kein Glück. Würde wirklich jede Art von Hilfe zu schätzen wissen!

Edit: Ich habe versucht, überall Protokolle hinzuzufügen, und dann sah es keine Fehler, außer dass jedes Modul seinen Status von PAUSED zu PLAYING außer dem udpsink geändert.

Ich fügte hinzu "udpsink async = false", die es zum SPIELEN gemacht, noch kein Paket gesendet und keine merklichen Fehler. Vielleicht bekommt die Senke keine Daten?

Edit2: Nachdem alles versucht, ich gefunden habe, könnte es denke, es könnte ein Problem mit dem ahcsrc sein, da diese Pipeline:

ahcsrc ! video/x-raw-yuv, framerate=25/1, width=640, height=360 ! videoconvert..... 

Ergebnis mit

Could not link ahcsrc0 to videoconvert0

Schließlich ist es Teil ist von den gst-plugins-bad. Jede Bestätigung wäre großartig.

Antwort

0

Was meinst du kein Glück? irgendein Fehler?

Die Ausgabe von ahcsrc scheint raw yuv zu sein - vielleicht ist es nicht notwendig, decodebin zu verwenden, nur videoconvert.

Sie können Warteschlange nach src für eine bessere Leistung, nicht sicher hinzufügen, wenn es funktioniert, aber das ist es:

ahcsrc ! queue ! videoconvert ! x264enc bframes=2 ! mpegtsmux ! udpsink host=192.168.102.74 port=1234 

Bitte fügen Sie einige Protokolle mit Ihrer App mit env Variable GST_LAUNCH=4 ./your-app laufen und fügen Sie sie irgendwo.

+0

Versucht, Ihre Pipeline zu betreiben. Ich habe diesen Fehler erhalten: gst_video_overlay_set_window_handle: Assertion 'GST_IS_VIDEO_OVERLAY (Überlagerung)' fehlgeschlagen – Weknin

+0

meine Pipe wurde nicht getestet .. also vielleicht ist etwas nicht in Ordnung .. aber warum würde irgendeines meiner Pipe-Element diesen Fehler erzeugen - das sieht so aus, als ob Sie verwenden einige Video-Senken - oder? bitte fügen Sie weitere Logs mit dieser Pipe hinzu - idealerweise in Ihrer Frage (andere Leute werden bemerken, wenn Sie Ihre Frage aktualisieren) .. Sie können Pastebin verwenden und wichtige Teile kopieren – nayana

Verwandte Themen