2016-06-09 3 views
2

Je n'ai pas beaucoup d'expérience avec gstreamer, et je ne pouvais pas trouver quelque chose en ligne pour le comprendre. J'utilise this open-source pour développer une application Android pour diffuser des vidéos en tant que MPEG H264 sur UDP. Je suis coincé avec le pipeline, où j'ai deux pipelines de travail que je ne peux pas fusionner pour travailler ensemble. Le pipeline de opensource d'origine:Stream caméra Android comme H264 MPEG-ts sur UDP en utilisant GStreamer

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

(quand ahcsrc signifie android-matériel caméra src)

Et mon pipeline tests:

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

deux fonctionne parfaitement bien.

Mon but est de prendre mon pipeline de test, et passer le videotestsrc au ahcsrc comme dans:

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

Malheureusement pas de chance là-bas. J'apprécierais vraiment toute sorte d'aide!

Modifier: J'ai essayé d'ajouter des journaux partout, puis vu qu'il n'y a pas d'erreurs, sauf que chaque module a changé son statut de PAUSE à PLAYING à l'exception de l'udpsink.

J'ai ajouté à cela "udpsink async = false" qui l'a fait devenir JOUER, mais aucun paquet envoyé et aucune erreur perceptible. Peut-être que le récepteur ne reçoit aucune donnée?

Edit2: Après avoir essayé tout ce que je pouvais trouver, il pense qu'il est peut-être un problème avec le ahcsrc, comme ce pipeline:

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

résultat avec

Could not link ahcsrc0 to videoconvert0

Après tout, il fait partie de la gst-plugins-bad. Toute confirmation serait géniale.

Répondre

0

Que voulez-vous dire sans chance? une erreur?

La sortie de ahcsrc semble être raw yuv - peut-être il n'y a pas besoin d'utiliser décodeur, juste vidéoconvertir.

Vous pouvez ajouter la file d'attente après src pour une meilleure performance, pas sûr que cela fonctionnera, mais est-il:

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

S'il vous plaît ajouter quelques journaux à l'exécution de votre application avec la variable d'env GST_LAUNCH=4 ./your-app et les coller quelque part.

+0

J'ai essayé de faire fonctionner votre pipeline. J'ai reçu cette erreur: gst_video_overlay_set_window_handle: assertion 'GST_IS_VIDEO_OVERLAY (overlay)' a échoué – Weknin

+0

mon tuyau n'a pas été testé .. alors peut-être qu'il y a quelque chose qui ne va pas .. mais pourquoi un élément de mon pipe produirait cette erreur - cela ressemble à quelques puits vidéo - et vous? s'il vous plaît ajouter un peu plus de journaux avec ce tuyau - idéalement dans votre question (d'autres personnes remarqueront lorsque vous mettez à jour votre question) .. vous pouvez utiliser pastebin et copier des parties importantes – nayana