1
ok, j'ai quelque chose comme ceci:comment envoyer un message EOS au bus
self.pipeline = gst.Pipeline()
self.tee = gst.element_factory_make
self.source = gst.element_factory_make('subdevsrc')
self.source.set_property('viewfinder-mode', 1)
self.source.set_property('camera-device', 1)
self.capsfilter = gst.element_factory_make('capsfilter')
caps = 'video/x-raw-yuv, width=640, height=480'
self.capsfilter.set_property('caps', gst.caps_from_string(caps))
self.tee = gst.element_factory_make('tee')
self.queue1 = gst.element_factory_make('queue')
self.queue2 = gst.element_factory_make('queue')
self.encoder = gst.element_factory_make('dsphdmp4venc')
self.muxer = gst.element_factory_make('mp4mux')
self.imagesink = gst.element_factory_make('xvimagesink')
self.filesink = gst.element_factory_make('filesink')
self.filesink.set_property('location', '/dev/null')
self.pipeline.add(self.source, self.capsfilter, self.tee, self.queue1, self.queue2, self.encoder, self.muxer, self.imagesink, self.filesink)
gst.element_link_many(self.source, self.capsfilter, self.tee, self.queue1, self.imagesink)
gst.element_link_many(self.tee, self.queue2, self.encoder, self.muxer, self.filesink)
self.bus = self.pipeline.get_bus()
Je veux arrêter (EOS) le flux dans l'état prêt, changer l'emplacement et ainsi .. aide?
self.bus.emit ('eos') me donne TypeError:: Nom du signal inconnu: eos
donc je dois appelez gst_element_send_event() et envoyez gst_event_new_eos() mais où est cette méthode gst_element_send_event? – manson54
alors j'ai appelé self.pipeline.send_event (gst.event_new_eos()) et j'ai eu output_loop: l'eos d'urgence a été déclenché. mais je dois changer l'emplacement sans haleine pour aller à l'état nul – manson54
Je ne sais pas exactement ce que vous voulez faire. Si vous voulez changer l'état du pipeline, 'gst_element_set_state (pipeline, GST_STATE_READY); Si vous voulez envoyer un message eos au bus, utilisez 'gst_message_new_eos()' pour le créer. –