2013-02-26 2 views
0

J'utilise gstreamer-java pour envoyer des données via UDP via un AppSink personnalisé. Voici comment il est efficace configuration:Envoyer la vidéo de manière synchrone à AppSink

fileSrc ! streamTee ! displayQueue ! tsdemux ! demuxQueue ! (mpeg2dec || h264dec) ! videosink

et

streamTee ! sendQueue ! udpSink

Je voudrais envoyer les données d'une manière qui simule un flux en direct. Je suppose que le seul moyen de faire cela est de synchroniser l'envoi avec la lecture via le videoSink. C'est, envoyer à la vitesse de lecture 1.0x. Cependant, la définition de la propriété sync d'udpSink ne semble pas changer quoi que ce soit. J'ai vérifié que les paquets sont envoyés aussi vite que possible à cause de sendQueue.

Dois-je ajouter le streamTee entre d'autres éléments? Y a-t-il quelque chose d'évident qui me manque?

+0

Déplacement du streamTee après que le displayQueue semble avoir résolu ce problème. – Nick

Répondre

1

En déplaçant le streamTee à après le displayQueue semble avoir résolu ce problème. La propriété de synchronisation ne semble rien faire.

Les paquets UDP semblent être envoyés un peu en avance sur la vidéo affichée de videoSink, mais ils sont toujours en avance de .5-1.0s à la fin de n'importe quelle vidéo de n'importe quelle longueur. Donc, il semble que c'est assez synchronisé.

Questions connexes