2010-04-24 6 views
2

Je crée une application de streaming, en utilisant GStreamer avec TCP pipeline, et j'ai mis en œuvre start, pause et stop.Python et Gstreamer

mais le problème est, que je ne peux pas chercher, j'ai essayé de changer la valeur de lecture du côté serveur, puis j'ai essayé du côté client, et enfin essayé de changer la valeur sur les deux en même temps, mais dans tous les cas ça ne marche pas. et j'ai même essayé d'interrompre la lecture puis de continuer mais rien ne se passe. Je rencontre ce problème avec la recherche et le volume. Toute aide s'il vous plaît, j'ai cherché partout mais je ne pouvais pas trouver quelque chose qui a fonctionné.

c'est le code que j'utilise pour rechercher

self.pipeline.seek_simple(gst.FORMAT_TIME, gst.SEEK_FLAG_FLUSH, time)

+1

J'aimerais répondre à votre question, mais il manque vraiment beaucoup d'informations. Montrez-nous un exemple complet que nous pourrions exécuter. –

+0

Avez-vous créé votre propre élément src à partir de basesrc? Veuillez fournir plus d'informations sur votre élément et le pipeline. – tilljoel

Répondre

0

Peut-être que cela pourrait faire l'affaire si vous ne trouvez pas encore:

A la recherche de Gstreamer est fait avec la recherche () et méthodes seek_simple(). Pour être en mesure de vous chercher, vous devrez également dire à Gstreamer quel genre de recherche il devrait faire. Dans l'exemple suivant, nous utiliserons une constante de format gst.FORMAT_TIME qui, comme vous pouvez le deviner, recherche un temps. : D Nous utiliserons également les méthodes query_duration() et query_position() pour obtenir la longueur du fichier et la durée de lecture du fichier. Gstreamer utilise des nanosecondes par défaut, donc vous devez vous adapter à cela.

Voici un exemple: Seeking with GStreamer

0

Peut-être que vous avez oublié d'avoir le bus d'écoute pour rechercher des événements. Essayez de mettre cela après la configuration de votre pipeline:

self.bus = self.pipeline.get_bus() 
self.bus.add_signal_watch() 

Si cela ne fonctionne pas, alors s'il vous plaît poster plus de code.

Questions connexes