python GstRtspServer-Как я могу получить список фабрики, который я добавил к точке монтирования? - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь настроить RTSP-сервер с помощью GST, я мог бы добавить фабрику к точкам монтирования, как это

import gi

gi.require_version('Gst', '1.0')
gi.require_version('GstRtspServer', '1.0')
from gi.repository import Gst, GstRtspServer, GObject

loop = GObject.MainLoop()
GObject.threads_init()
Gst.init(None)

class MyFactory(GstRtspServer.RTSPMediaFactory):
    def __init__(self,desc_str):
        GstRtspServer.RTSPMediaFactory.__init__(self)
        self.desc=desc_str

    def do_create_element(self,url):
        return Gst.parse_launch(self.desc)

class GstServer(object):
    def __init__(self):
        self.server = GstRtspServer.RTSPServer()
        self.server.attach(None)

    def add_source(self,path,desc_str):
        f = MyFactory(desc_str)
        f.set_shared(True)
        m = self.server.get_mount_points()
        m.add_factory(path, f)

if __name__ == '__main__':
    str2 = 'filesrc location=E:/aaa_rtp/my_down_3.mp4 ! qtdemux name=mdemux mdemux.video_0 ! queue ! rtph264pay pt=96 name=pay0 mdemux.audio_0 ! queue ! rtpmp4apay pt=97 name=pay1'
    str3='filesrc location=E:/aaa_rtp/1913973949042281958.mp4 ! qtdemux name=mdemux mdemux.video_0 ! queue ! rtph264pay pt=96 name=pay0 mdemux.audio_0 ! queue ! rtpmp4apay pt=97 name=pay1'
    s = GstServer()
    s.add_source('/t',str2)
    s.add_source('/1913973949042281958',str3)
    loop.run()

Но здесь вопрос. Есть ли API, который я могу использовать для получения заводского списка, который был подключен к порту во время выполнения? Мне нужен список для отправки клиента в виде списка воспроизведения.

...