Giter VIP home page Giter VIP logo

Comments (17)

itzmanish avatar itzmanish commented on August 11, 2024

This occurs with gstreamer.

from mediasoup3-record-demo.

ethand91 avatar ethand91 commented on August 11, 2024

Can you check the stats of the RTP consumer and check that it is receiving packets?

from mediasoup3-record-demo.

itzmanish avatar itzmanish commented on August 11, 2024

This is what I get in server log.

socket::message [jsonMessage:{
action: 'start-record',
sessionId: '9b8d0330-ab98-11ea-a490-e366f9d40a88'
}]
handleStartRecordRequest() [data:{
action: 'start-record',
sessionId: '9b8d0330-ab98-11ea-a490-e366f9d40a88'
}]
publishProducerRtpStream()
createTransport() [type:plain. options:{ listenIp: '127.0.0.1', rtcpMux: false, comedia: false }]
publishProducerRtpStream()
createTransport() [type:plain. options:{ listenIp: '127.0.0.1', rtcpMux: false, comedia: false }]
gstreamer::process::stdout::data [data:'Setting pipeline to PAUSED ...\n']
gstreamer::process::stdout::data [data:'Pipeline is live and does not need PREROLL ...\n']
gstreamer::process::stdout::data [data:'/GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, payload=(int)101, encoding-name=(string)VP8, ssrc=(uint)1974725326\n' + '/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0.GstProxyPad:proxypad0: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, payload=(int)101, encoding-name=(string)VP8, ssrc=(uint)1974725326\n' + '/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstFunnel:funnel0.GstFunnelPad:funnelpad0: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, payload=(int)101, encoding-name=(string)VP8, ssrc=(uint)1974725326\n']
gstreamer::process::stdout::data [data:'/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_0: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, payload=(int)101, encoding-name=(string)VP8, ssrc=(uint)1974725326\n' +
'/GstPipeline:pipeline0/GstUDPSrc:udpsrc1.GstPad:src: caps = application/x-rtp, media=(string)audio, clock-rate=(int)48000, payload=(int)100, encoding-name=(string)OPUS, ssrc=(uint)2922796142\n' +
'/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_1.GstProxyPad:proxypad1: caps = application/x-rtp, media=(string)audio, clock-rate=(int)48000, payload=(int)100, encoding-name=(string)OPUS, ssrc=(uint)2922796142\n' + '/GstPipeline:pipeline0/GstRtpBin:rtpbin/GstFunnel:funnel2.GstFunnelPad:funnelpad1: caps = application/x-rtp, media=(string)audio, clock-rate=(int)48000, payload=(int)100, encoding-name=(string)OPUS, ssrc=(uint)2922796142\n' +
'/GstPipeline:pipeline0/GstRtpBin:rtpbin.GstGhostPad:recv_rtp_sink_1: caps = application/x-rtp, media=(string)audio, clock-rate=(int)48000, payload=(int)100, encoding-name=(string)OPUS, ssrc=(uint)2922796142\n']
gstreamer::process::stdout::data [data:'Setting pipeline to PLAYING ...\n']
gstreamer::process::stdout::data [data:'New clock: GstSystemClock\n']
socket::message [jsonMessage:{
action: 'stop-record',
sessionId: '9b8d0330-ab98-11ea-a490-e366f9d40a88'
}]
handleStopRecordRequest() [data:{
action: 'stop-record',
sessionId: '9b8d0330-ab98-11ea-a490-e366f9d40a88'
}]
kill() [pid:71408]

from mediasoup3-record-demo.

ethand91 avatar ethand91 commented on August 11, 2024

Can you check the stats of the RTP consumer and confirm packets are being received?

from mediasoup3-record-demo.

dorinmusteata avatar dorinmusteata commented on August 11, 2024

Hi , i have the same problem with file size being 0 bytes , i think the problem is somewhere in command parameters , my packets are being received 100%.

Haven't tested with ffmpeg , this problem occurs when using gstreamer , with video source type.
Audio source work perfectly.

OS: macOS Catalina

P.S @ethand91 can you confirm that video recording with gstreamers works on your machine ?

from mediasoup3-record-demo.

ethand91 avatar ethand91 commented on August 11, 2024

This was tested using Mac OS Catalina, can you check you have the vpx decoders/encoders?

gst-inspect-1.0  | grep vpx

Also could you share the rtpParameters of the relaying consumer?

from mediasoup3-record-demo.

dorinmusteata avatar dorinmusteata commented on August 11, 2024
vpx:  vp9dec: On2 VP9 Decoder
vpx:  vp8enc: On2 VP8 Encoder
vpx:  vp8dec: On2 VP8 Decoder

----

{
  codecs: [
    {
      mimeType: 'video/VP8',
      payloadType: 101,
      clockRate: 90000,
      parameters: {},
      rtcpFeedback: [Array]
    },
    {
      mimeType: 'video/rtx',
      payloadType: 102,
      clockRate: 90000,
      parameters: [Object],
      rtcpFeedback: []
    }
  ],
  headerExtensions: [
    {
      uri: 'urn:ietf:params:rtp-hdrext:sdes:mid',
      id: 1,
      encrypt: false,
      parameters: {}
    },
    {
      uri: 'http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time',
      id: 4,
      encrypt: false,
      parameters: {}
    },
    {
      uri: 'http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01',
      id: 5,
      encrypt: false,
      parameters: {}
    },
    {
      uri: 'http://tools.ietf.org/html/draft-ietf-avtext-framemarking-07',
      id: 6,
      encrypt: false,
      parameters: {}
    },
    {
      uri: 'urn:ietf:params:rtp-hdrext:framemarking',
      id: 7,
      encrypt: false,
      parameters: {}
    },
    {
      uri: 'urn:3gpp:video-orientation',
      id: 11,
      encrypt: false,
      parameters: {}
    },
    {
      uri: 'urn:ietf:params:rtp-hdrext:toffset',
      id: 12,
      encrypt: false,
      parameters: {}
    }
  ],
  encodings: [ { ssrc: 915808166, rtx: [Object], scalabilityMode: 'S3T3' } ],
  rtcp: { cname: 'B4G+p/IEq2WrHllq', reducedSize: true, mux: true },
  mid: '0'
}

from mediasoup3-record-demo.

ethand91 avatar ethand91 commented on August 11, 2024

Could you try updating the source and see if that works?

from mediasoup3-record-demo.

dorinmusteata avatar dorinmusteata commented on August 11, 2024

Works for me. Thanks.

from mediasoup3-record-demo.

ethand91 avatar ethand91 commented on August 11, 2024

Great! Seems to be the payloadTypes in the SDP wasn't correct.
@itzmanish Does it work for you?

from mediasoup3-record-demo.

urispmts avatar urispmts commented on August 11, 2024

I use ffmpeg, but I had the same issue today.
For me, the problem was the listenIp in server config. I set it to 0.0.0.0 first and had the error.
When I set it to 127.0.0.1 the error was resolved.
Found it in this issue: #7

from mediasoup3-record-demo.

itzmanish avatar itzmanish commented on August 11, 2024

Great! Seems to be the payloadTypes in the SDP wasn't correct.
@itzmanish Does it work for you?

nope. I am running it on 0.0.0.0 and got error with FFMPEG.

publishProducerRtpStream()
createTransport() [type:plain. options:{ listenIp: '0.0.0.0', rtcpMux: true, comedia: false }]
publishProducerRtpStream()
createTransport() [type:plain. options:{ listenIp: '0.0.0.0', rtcpMux: true, comedia: false }]
createProcess() [sdpString:v=0
  o=- 0 0 IN IP4 127.0.0.1
  s=FFmpeg
  c=IN IP4 127.0.0.1
  t=0 0
  m=video 25313 RTP/AVP 101 
  a=rtpmap:101 VP8/90000
  a=sendonly
  m=audio 29868 RTP/AVP 100 
  a=rtpmap:100 opus/48000/2
  a=sendonly
  ]
commandArgs:[
  '-loglevel',
  'debug',
  '-protocol_whitelist',
  'pipe,udp,rtp',
  '-fflags',
  '+genpts',
  '-f',
  'sdp',
  '-i',
  'pipe:0',
  '-map',
  '0:v:0',
  '-c:v',
  'copy',
  '-map',
  '0:a:0',
  '-strict',
  '-2',
  '-c:a',
  'copy',
  '-flags',
  '+global_header',
  './files/1592531311746.webm',
  [length]: 23
]
events.js:292
      throw er; // Unhandled 'error' event
      ^

Error: write EPIPE
    at afterWriteDispatched (internal/stream_base_commons.js:154:25)
    at writeGeneric (internal/stream_base_commons.js:145:3)
    at Socket._writeGeneric (net.js:786:11)
    at Socket._write (net.js:798:8)
    at doWrite (_stream_writable.js:403:12)
    at writeOrBuffer (_stream_writable.js:387:5)
    at Socket.Writable.write (_stream_writable.js:318:11)
    at Readable.ondata (_stream_readable.js:717:22)
    at Readable.emit (events.js:315:20)
    at Readable.read (_stream_readable.js:506:10)
Emitted 'error' event on Socket instance at:
    at errorOrDestroy (internal/streams/destroy.js:108:12)
    at Socket.onerror (_stream_readable.js:753:7)
    at Socket.emit (events.js:315:20)
    at errorOrDestroy (internal/streams/destroy.js:108:12)
    at onwriteError (_stream_writable.js:418:5)
    at onwrite (_stream_writable.js:445:5)
    at internal/streams/destroy.js:50:7
    at Socket._destroy (net.js:679:5)
    at Socket.destroy (internal/streams/destroy.js:38:8)
    at afterWriteDispatched (internal/stream_base_commons.js:154:17) {
  errno: 'EPIPE',
  code: 'EPIPE',
  syscall: 'write'
}

from mediasoup3-record-demo.

itzmanish avatar itzmanish commented on August 11, 2024

However with GSTREAMER flag file size still is 0 bytes.

from mediasoup3-record-demo.

ethand91 avatar ethand91 commented on August 11, 2024

You need to set webRtcTransport.ip to 127.0.0.1 or your local network, it will not work with 0.0.0.0.

from mediasoup3-record-demo.

itzmanish avatar itzmanish commented on August 11, 2024

You need to set webRtcTransport.ip to 127.0.0.1 or your local network, it will not work with 0.0.0.0.

Still not working with 127.0.0.1

from mediasoup3-record-demo.

ethand91 avatar ethand91 commented on August 11, 2024

if the page and the server are not on the same machine 127.0.0.1 will not work, try using your network ip.

from mediasoup3-record-demo.

jithinkradhakrishnan avatar jithinkradhakrishnan commented on August 11, 2024

connecting server remotely
using network ip

still the recording file has zero mb only

from mediasoup3-record-demo.

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.