Testing virtual microphone.

main
Daniel Perelman 4 år sedan
förälder 220dddfe8f
incheckning d075ed963f

@ -22,7 +22,9 @@ PIPELINE_DESC = '''
webrtcbin name=sendrecv
videotestsrc pattern=ball ! videoconvert ! queue ! vp8enc deadline=1 ! rtpvp8pay !
queue ! application/x-rtp,media=video,encoding-name=VP8,payload=97 ! sendrecv.
'''
pulsesrc device="alsa_output.pci-0000_00_1f.3.analog-stereo.monitor" ! audioconvert ! audioresample ! queue ! opusenc ! rtpopuspay !
queue ! application/x-rtp,media=audio,encoding-name=OPUS,payload=96 ! sendrecv.
'''
'''
audiotestsrc wave=red-noise ! audioconvert ! audioresample ! queue ! opusenc ! rtpopuspay !
queue ! application/x-rtp,media=audio,encoding-name=OPUS,payload=96 ! sendrecv.
@ -71,6 +73,7 @@ class WebRTCClient:
loop.run_until_complete(self.conn.send(icemsg))
def on_incoming_decodebin_stream(self, _, pad):
print("In on_incoming_decodebin_stream...")
if not pad.has_current_caps():
print (pad, 'has no caps, ignoring')
return
@ -80,6 +83,7 @@ class WebRTCClient:
s = caps[0]
name = s.get_name()
if name.startswith('video'):
print("Connecting incoming video stream...")
q = Gst.ElementFactory.make('queue')
conv = Gst.ElementFactory.make('videoconvert')
# rate = Gst.ElementFactory.make('videorate')
@ -102,10 +106,13 @@ class WebRTCClient:
conv.link(capsfilter)
capsfilter.link(sink)
elif name.startswith('audio'):
print("Connecting incoming audio stream...")
q = Gst.ElementFactory.make('queue')
conv = Gst.ElementFactory.make('audioconvert')
resample = Gst.ElementFactory.make('audioresample')
sink = Gst.ElementFactory.make('autoaudiosink')
sink = Gst.ElementFactory.make('filesink')
sink.set_property('location', os.environ['HOME']+'/tmp/virtmic')
sink.set_property('sync', 'true')
self.pipe.add(q, conv, resample, sink)
self.pipe.sync_children_states()
pad.link(q.get_static_pad('sink'))

Laddar…
Avbryt
Spara