Git Product home page Git Product logo

Comments (7)

jbg avatar jbg commented on August 26, 2024

Your GStreamer pipeline template:

webmmux name=muxer ! filesink location={participant_id}.webm
opusparse name=audio ! muxer.audio_0
capsfilter caps=video/x-vp8 name=video ! muxer.video_0

Should create .webm files for each other participant in the room with the muxed audio and video. Do you get those files?

There does seem to be a problem here:

2022-02-10T10:26:21.696987Z DEBUG XMPP    <<< <iq type='set' from='[email protected]/focus' to='[email protected]/dEIQSOBo' xmlns='jabber:client' id='azY2cmxuMGZmeHY0amZlYUB0aWZyLm1sL2RFSVFTT0JvAFg3Mlg5LTE3NwCh7Rb+VEnCMt36DNsrizGb'><jingle initiator='[email protected]/focus' action='session-initiate' sid='a045okmrde75i' xmlns='urn:xmpp:jingle:1'><content name='audio' creator='initiator' senders='both'><description maxptime='60' media='audio' xmlns='urn:xmpp:jingle:apps:rtp:1'><payload-type name='opus' channels='2' clockrate='48000' id='111'><parameter name='minptime' value='10'/><parameter name='useinbandfec' value='1'/><rtcp-fb type='transport-cc' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/></payload-type><payload-type id='103' clockrate='16000' name='ISAC'/><payload-type id='104' clockrate='32000' name='ISAC'/><payload-type id='126' clockrate='8000' name='telephone-event'/><rtp-hdrext id='1' uri='urn:ietf:params:rtp-hdrext:ssrc-audio-level' xmlns='urn:xmpp:jingle:apps:rtp:rtp-hdrext:0'/><rtp-hdrext id='5' uri='http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01' xmlns='urn:xmpp:jingle:apps:rtp:rtp-hdrext:0'/><rtcp-mux/><source ssrc='1799763942' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'><ssrc-info owner='[email protected]/8ec106b7' xmlns='http://jitsi.org/jitmeet'/><parameter name='msid' value='8ec106b7-audio-1 8be49ad8-a380-42e6-94a1-e65ce298b0f5-1' xmlns='urn:xmpp:jingle:apps:rtp:1'/></source><source name='jvb-a0' ssrc='2623813084' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'><ssrc-info owner='jvb' xmlns='http://jitsi.org/jitmeet'/><parameter name='msid' value='mixedmslabel mixedlabelaudio0' xmlns='urn:xmpp:jingle:apps:rtp:1'/></source></description><transport ufrag='b9l5i1frhims2n' pwd='61ct04j3io26dn8veeh8k2sap5' xmlns='urn:xmpp:jingle:transports:ice-udp:1'><web-socket url='wss://tifr.ml:443/colibri-ws/default-id/e292f7d43441301c/k66rln0ffxv4jfea?pwd=61ct04j3io26dn8veeh8k2sap5' xmlns='http://jitsi.org/protocol/colibri'/><rtcp-mux/><fingerprint hash='sha-256' setup='actpass' required='false' xmlns='urn:xmpp:jingle:apps:dtls:0'>99:F4:AC:FE:AF:A4:3D:A7:9B:3A:08:C7:99:42:82:6E:B7:40:CC:7F:3A:41:57:CD:18:FC:23:84:C3:12:73:5B</fingerprint><candidate ip='192.168.200.61' foundation='1' type='host' protocol='udp' network='0' generation='0' component='1' id='5f81d8670adc4e70ffffffffcec91816' port='10000' priority='2130706431'/><candidate ip='122.200.18.71' foundation='2' protocol='udp' network='0' generation='0' rel-port='10000' component='1' rel-addr='192.168.200.61' id='1b3af99970adc4e70ffffffff88e86220' port='10000' priority='1694498815' type='srflx'/></transport></content><content name='video' creator='initiator' senders='both'><description media='video' xmlns='urn:xmpp:jingle:apps:rtp:1'><payload-type id='100' clockrate='90000' name='VP8'><rtcp-fb subtype='fir' type='ccm' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/><rtcp-fb type='nack' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/><rtcp-fb subtype='pli' type='nack' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/><parameter name='x-google-start-bitrate' value='800'/><rtcp-fb type='transport-cc' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/></payload-type><payload-type id='107' clockrate='90000' name='H264'><rtcp-fb subtype='fir' type='ccm' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/><rtcp-fb type='nack' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/><rtcp-fb subtype='pli' type='nack' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/><parameter name='x-google-start-bitrate' value='800'/><rtcp-fb type='transport-cc' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/><parameter name='profile-level-id' value='42e01f;level-asymmetry-allowed=1;packetization-mode=1;'/></payload-type><payload-type id='101' clockrate='90000' name='VP9'><rtcp-fb subtype='fir' type='ccm' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/><rtcp-fb type='nack' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/><rtcp-fb subtype='pli' type='nack' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/><parameter name='x-google-start-bitrate' value='800'/><rtcp-fb type='transport-cc' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/></payload-type><payload-type id='96' clockrate='90000' name='rtx'><parameter name='apt' value='100'/><rtcp-fb subtype='fir' type='ccm' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/><rtcp-fb type='nack' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/><rtcp-fb subtype='pli' type='nack' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/></payload-type><payload-type id='97' clockrate='90000' name='rtx'><parameter name='apt' value='101'/><rtcp-fb subtype='fir' type='ccm' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/><rtcp-fb type='nack' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/><rtcp-fb subtype='pli' type='nack' xmlns='urn:xmpp:jingle:apps:rtp:rtcp-fb:0'/></payload-type><payload-type id='99' clockrate='90000' name='rtx'><parameter name='apt' value='107'/></payload-type><rtp-hdrext id='3' uri='http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time' xmlns='urn:xmpp:jingle:apps:rtp:rtp-hdrext:0'/><rtp-hdrext id='5' uri='http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01' xmlns='urn:xmpp:jingle:apps:rtp:rtp-hdrext:0'/><rtcp-mux/><source ssrc='3326384229' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'><ssrc-info owner='[email protected]/8ec106b7' xmlns='http://jitsi.org/jitmeet'/><parameter name='msid' value='8ec106b7-video-1 5f89b9af-3483-462e-8a0f-bca83478b703-1' xmlns='urn:xmpp:jingle:apps:rtp:1'/></source><source ssrc='868419519' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'><ssrc-info owner='[email protected]/8ec106b7' xmlns='http://jitsi.org/jitmeet'/><parameter name='msid' value='8ec106b7-video-1 5f89b9af-3483-462e-8a0f-bca83478b703-1' xmlns='urn:xmpp:jingle:apps:rtp:1'/></source><source ssrc='2955437961' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'><ssrc-info owner='[email protected]/8ec106b7' xmlns='http://jitsi.org/jitmeet'/><parameter name='msid' value='8ec106b7-video-1 5f89b9af-3483-462e-8a0f-bca83478b703-1' xmlns='urn:xmpp:jingle:apps:rtp:1'/></source><source ssrc='2771060444' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'><ssrc-info owner='[email protected]/8ec106b7' xmlns='http://jitsi.org/jitmeet'/><parameter name='msid' value='8ec106b7-video-1 5f89b9af-3483-462e-8a0f-bca83478b703-1' xmlns='urn:xmpp:jingle:apps:rtp:1'/></source><source ssrc='4013738996' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'><ssrc-info owner='[email protected]/8ec106b7' xmlns='http://jitsi.org/jitmeet'/><parameter name='msid' value='8ec106b7-video-1 5f89b9af-3483-462e-8a0f-bca83478b703-1' xmlns='urn:xmpp:jingle:apps:rtp:1'/></source><source ssrc='2417336756' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'><ssrc-info owner='[email protected]/8ec106b7' xmlns='http://jitsi.org/jitmeet'/><parameter name='msid' value='8ec106b7-video-1 5f89b9af-3483-462e-8a0f-bca83478b703-1' xmlns='urn:xmpp:jingle:apps:rtp:1'/></source><source name='jvb-v0' ssrc='882837485' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'><ssrc-info owner='jvb' xmlns='http://jitsi.org/jitmeet'/><parameter name='msid' value='mixedmslabel mixedlabelvideo0' xmlns='urn:xmpp:jingle:apps:rtp:1'/></source><ssrc-group semantics='FID' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'><source ssrc='3326384229'/><source ssrc='868419519'/></ssrc-group><ssrc-group semantics='SIM' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'><source ssrc='3326384229'/><source ssrc='2955437961'/><source ssrc='2771060444'/></ssrc-group><ssrc-group semantics='FID' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'><source ssrc='2955437961'/><source ssrc='4013738996'/></ssrc-group><ssrc-group semantics='FID' xmlns='urn:xmpp:jingle:apps:rtp:ssma:0'><source ssrc='2771060444'/><source ssrc='2417336756'/></ssrc-group></description><transport ufrag='b9l5i1frhims2n' pwd='61ct04j3io26dn8veeh8k2sap5' xmlns='urn:xmpp:jingle:transports:ice-udp:1'><web-socket url='wss://tifr.ml:443/colibri-ws/default-id/e292f7d43441301c/k66rln0ffxv4jfea?pwd=61ct04j3io26dn8veeh8k2sap5' xmlns='http://jitsi.org/protocol/colibri'/><rtcp-mux/><fingerprint hash='sha-256' setup='actpass' required='false' xmlns='urn:xmpp:jingle:apps:dtls:0'>99:F4:AC:FE:AF:A4:3D:A7:9B:3A:08:C7:99:42:82:6E:B7:40:CC:7F:3A:41:57:CD:18:FC:23:84:C3:12:73:5B</fingerprint><candidate ip='192.168.200.61' foundation='1' type='host' protocol='udp' network='0' generation='0' component='1' id='5f81d8670adc4e70ffffffffcec91816' port='10000' priority='2130706431'/><candidate ip='122.200.18.71' foundation='2' protocol='udp' network='0' generation='0' rel-port='10000' component='1' rel-addr='192.168.200.61' id='1b3af99970adc4e70ffffffff88e86220' port='10000' priority='1694498815' type='srflx'/></transport></content><group semantics='BUNDLE' xmlns='urn:xmpp:jingle:apps:grouping:0'><content name='audio'/><content name='video'/></group><bridge-session id='f5d7d' xmlns='http://jitsi.org/protocol/focus'/></jingle></iq>
2022-02-10T10:26:21.697665Z DEBUG Received non-Jingle IQ

The xmpp-parsers Jingle::try_from on the element must be failing due to something specific about the Jingle stanza your focus is sending (https://github.com/avstack/gst-meet/blob/master/lib-gst-meet/src/conference.rs#L546).

from gst-meet.

serenaraju avatar serenaraju commented on August 26, 2024

image
The files are not showing up in gst-meet location where I am running the command. (I am running it in the same location as where gst-meet is installed. Is that an issue with GStreamer? Should I try to reinstall that? The files are not showing up anywhere. For now, I am considering reinstalling the packages that were installed. But that will still not fix the connection closed issue (pinger issue). What can I do about that?

from gst-meet.

jbg avatar jbg commented on August 26, 2024
  • The connection closed issue implies that pings are not being sent from server side (mod_pinger not installed or not working), and something in the path (router, firewall, load balancer etc) is closing the connection after a short timeout. gst-meet does not yet send pings itself.
  • It looks like the Jingle session is not being set up because the session-initiate is ignored, as per my previous comment. You can look into the code of xmpp-parsers to see why your Jingle XML (in the logs above) doesn't match the structure expected by xmpp-parsers

from gst-meet.

linkmauve avatar linkmauve commented on August 26, 2024

Instead of blindly looking at the code, I would recommend to use match on the result of TryFrom::try_from, replacing if let Ok(jingle) = Jingle::try_from(element) { with something like:

match Jingle::try_from(element) {
    Ok(jingle) => {},
    Err(err) => error!("Jingle element failed to parse: {err}"),
}

Doing so everywhere will lead to a much better debugging experience.

from gst-meet.

jbg avatar jbg commented on August 26, 2024

Yes absolutely, improvements to error handling in general would be welcomed!

from gst-meet.

jbg avatar jbg commented on August 26, 2024

@serenaraju

  • As of 68c9935, client -> server pings are implemented, so the connection should stay alive even in the face of routers/firewalls/LBs with short timeouts. Please let me know if that solves your connection reset issue.
  • In 3f27c90 I updated GStreamer to the released 1.20 version, and removed the vendored xmpp-parsers dependency in favour of a smaller crate with some customised elements for Jitsi's non-standard stuff. (Further improvement is planned here, but this at least makes it easier to track upstream xmpp-parsers updates). As part of this work I also improved the logging when a Jingle element fails to parse, so you should get a more useful error message now.

from gst-meet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.