En utilisant Gstreamer pour servir de flux RTSP, exemple de travail demandé
Nous essayons d'obtenir de Gstreamer de travail sur un DM368 Leopardboard*, nous avons réussi à persuader à créer une vidéo test (videotestsrc), la coder, et la déverser dans un fichier.
La pipe qui a fonctionné, c'est:
gst-launch -v videotestsrc num-buffers=100 ! queue ! ffenc_mpeg4 bitrate=800000 ! ffmux_mp4 ! filesink location=video_test.mp4
La prochaine étape consiste à modifier le canal de flux de la testcard sur le réseau, pour être visualisés sur un PC avec VLC en utilisant quelque chose comme rtsp://adresse_ip:port/streamname mais la documentation sur la façon de faire semble assez mince sur le terrain (et souvent dépassé), et les exemples semblent flou le code source de ligne de commande et des moyens de le faire.
Je vais librement admettre que >50% du problème est notre manque de familiarité avec Gstreamer & ses diverses parties, j'ai toujours trouvé que si j'ai un exemple de travail pour commencer à partir de la je peux fourrer avec des bâtons et le reste à partir de là.
J'ai reçu ce jour:
gst-launch -v videotestsrc ! queue ! ffenc_mpeg4 bitrate=800000 ! rtpmp4vpay ! tcpserversink host=<PC_ip> port=5000
Qui semble quelque chose arriver dans VLC (à l'aide de tcp://board_ip:port)- il semble le penser il se passe quelque chose (ne jette pas une erreur), mais ne joue pas/afficher quoi que ce soit. Quand je pause (^C) la tps processus, VLC avis.
Donc, en gros - toute orientation/commentaires serait formidable, un one-liner serait fantastique.
Modifiées afin d'ajouter: Oui je vois le test_video.c exemple, mais c'est la compilation d'un programme spécial pour faire quelque chose qui ressemble, il devrait être possible de simplement appeler à partir de la ligne de commande pour prouver le concept.
* = Linux version 2.6.32-17-ridgerun /CPU: ARM926EJ-S
tps-rtsp-serveur d'essai de lancement exemple, vous pouvez spécifier l'encodage. Le code du serveur est très faible car il utilise la plupart des gstreamer est rtsp mise en œuvre.
Oui, je suis à la recherche à la tps, à l'exemple de code, mais il me semble qu'il devrait y avoir un moyen de l'invocation d'gstreamer à partir de la ligne de commande pour diffuser une vidéo, juste pour prouver que c'est possible, & de travail.
Mais ce plugin (élément) ne le serveur RTSP utiliser? Faut-il utiliser udpsink?
Pourriez-vous juste marquer une réponse comme correcte?
OriginalL'auteur John U | 2012-12-06
Vous devez vous connecter pour publier un commentaire.
Source:
En contradiction avec le protocole RTP, RTSP serveur négocie la connexion entre un RTP-serveur et un client sur demande (Lien). Le tps-rtsp-serveur n'est pas un plugin gstreamer, mais une bibliothèque qui peut être utilisé pour mettre en œuvre votre propre RTSP application. Le cas test suivant a été appliqué sur une Ubuntu 12.04.5 machine:
autoconf automake autopoint libtool
et l'autre manquant essentiel de construire des outilsgit clone git://anongit.freedesktop.org/gstreamer/gst-rtsp-server && cd gst-rtsp-server
git checkout remotes/origin/1.2
./autogen.sh --noconfigure && GST_PLUGINS_GOOD_DIR=$(pkg-config --variable=pluginsdir gstreamer-plugins-bad-1.0) ./configure && make
(Pour une raison quelconque, GST_PLUGINS_GOOD_DIR n'est pas définie par pkg-config, donc nous avons mis explicitement)cd examples && ./test-launch "( videotestsrc ! x264enc ! rtph264pay name=pay0 pt=96 )"
rtsp://HOST_IP:8554/test
Non, pas du tout. Il suffit de remplacer
HOST_IP
avec l'adresse IP ou le nom de domaine de votre PC qui exécute l'applicationtest-launch.c
. Ensuite, exécutez une application comme VLC à partir d'un PC distant et le tour est joué, vous y verrez votre source de test.Le test ci-dessus de lancement fonctionne très bien et je peux le lire sur le lecteur VLC. Maintenant, je veux d'entrée codé un réseau de flux en direct. Comment puis-je changer la source d'entrée?
OriginalL'auteur Tik0
Enfin trouvé un exemple ici:
GStreamer flux rtp pour vlc
Mais il exige la création d'un .Fichier SDP pour VLC et en spécifiant les adresses IP qui n'est pas vraiment la façon dont nous voulons jusqu'à la fin... mais bon c'est un début!
OriginalL'auteur John U
J'ai eu un problème à la fin du processus, quelque chose comme:
J'ai trouvé la solution dans ce post:
https://askubuntu.com/questions/384059/error-compiling-a-package-configure-error-no-gstreamer-1-0-1-0-0
Et il a parfaitement fonctionné!!!
OriginalL'auteur fgfernandez0321