Empty Video file when recording

3,422 views
Skip to first unread message

Danny Lynch

unread,
Nov 20, 2015, 6:49:15 PM11/20/15
to kurento
Hi Everyone,
I've got an app that I had running on Kurento 4.5, that I converted over to using 6.0/6.1, and for video conferencing everything is much more stable now.

On the video recording side I'm running into an issue where the video files are being written to disk, but they are 0-bytes during the recording process, and when I end the recording, each file ends up being 309-bytes (presumably just a header of some sort).

I'm running behind EC2, and like I said, I've 2-way video conferencing working, so I'm pretty sure I've got the turn/stun stuff set up correctly.

Has anyone run into empty-video file problems before that could point me in the right direction on debugging it.

Thanks for you help!
--Danny

Andy C

unread,
Nov 21, 2015, 7:23:31 AM11/21/15
to kurento
Don't have any answers, but I run into this. In my case, it happens intermittently (about 3% of recordings I've done) and I haven't been able to determine a reliable way of reproducing the issue. 

adrian...@gmail.com

unread,
Nov 23, 2015, 2:57:33 PM11/23/15
to kurento
Hi, I'm having the same issue, I'm running it locally but for me it's about 10% of the time I get a file with content, otherwise is always an empty file (not even 306 bytes),
I think is a problem with Kurento sessions expiring.

Ivan Gracia

unread,
Nov 24, 2015, 5:41:31 AM11/24/15
to Kurento Public
Hi,

Is this happening also with the latest development version of KMS? There is quite some info about this on the list. Have a look at this one, for instance. Basically, you need to set the correct type of media that the recorder will expect, otherwise it will sit there waiting for the other type to arrive until you invoke stop or release.



Ivan Gracia



On Mon, Nov 23, 2015 at 8:57 PM, <adrian...@gmail.com> wrote:
Hi, I'm having the same issue, I'm running it locally but for me it's about 10% of the time I get a file with content, otherwise is always an empty file (not even 306 bytes),
I think is a problem with Kurento sessions expiring.

--
You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

adrian...@gmail.com

unread,
Nov 24, 2015, 10:15:41 AM11/24/15
to kurento
I'm running version 6.1.1 on Ubuntu 14.04 LTS, the problem is random, I sometimes get an output and sometimes not, the problem seems to be random. 

This is how I call the record method:

webRtcEndpoint.on('MediaStateChanged', function(event) {
  if ((event.oldState !== event.newState) && (event.newState === 'CONNECTED')) {
    recorderEndpoint.record();
  }
});

I don't see anything abnormal in the logs, could this be a version related bug?

Ivan Gracia

unread,
Nov 24, 2015, 10:31:00 AM11/24/15
to Kurento Public
Could be. The recorder has been receiving a lot of care lately. Check with the latest dev version (info here)

Ivan Gracia



--

Danny Lynch

unread,
Dec 7, 2015, 8:36:04 PM12/7/15
to kurento
I've been digging into this some more, and I have figured out one problem with what I've got.

In the negotiation between the clients, there are lots of candidate connection types, (I'm using the following reference https://webrtchacks.com/sdp-anatomy/)

'host' or a direct connection between the two clients in the vido conference (for instance if they are on the same network)
'srflex raddr' or server reflexive, which seems to be going through a STUN server
'relay raddr' or relay, which seems to be going through a TURN server

So if I am trying to record the video call, then the data has to get piped through the media server, and I don't know how that would happen on a 'host' connection.

I've got a nodejs implementation of the 5th tutorial example that I put together, and it seems to be very hit-or-miss. Sometimes one side records, sometimes both do, sometimes neither.
When I hacked in a change that dropped all ice candidates with "host" in them it seems to be much more consistent.

So the question is, is there an option in kurentoUtils.WebRtcPeer.WebRtcPeerSendrecv that I should be passing that is supposed to reject the 'host' candidates (and should it work with both TURN and STUN, or just one or the other?).
Or am I missing something else entirely, and the audio/video data needs to be piped to the kurento server some other way, even with 'host' candidates.

Thanks,
Danny

Ivan Gracia

unread,
Dec 9, 2015, 7:17:31 AM12/9/15
to Kurento Public
ICE checks that for you. If your clients are connecting randomly, that means that sometimes you miss the candidates that you need. Have you checked your logs? I think that you might be missing some candidates that your client is sending to the server. Check in your KMS logs to see if you are adding all the candidates correctly... and I'd wager some are missing. That would mean that you have a problem with your node server code.

I'd take the opposite approach: instead of porting the Java tutorial to NodeJS, I'd use the kurento-one2one-call from node, and make it work like the one in Java. 

Ivan Gracia



nacia...@gmail.com

unread,
Dec 11, 2015, 7:49:14 PM12/11/15
to kurento

I got the same Empty File issue, using KMS 6.0 in Ubuntu 14.04, and yes it seems to be random. Within the logs i don't see anything different in the good recordings to the empty ones.  

cbwi...@gmail.com

unread,
Dec 13, 2015, 6:10:19 PM12/13/15
to kurento

It seems like I'm getting an empty file every time with a fresh local VM install of Ubuntu 14.04 and Kurento:
Version: 6.2.0
Found modules:
    Module: 'core' version '6.2.0'
    Module: 'elements' version '6.2.0'
    Module: 'filters' version '6.2.0'

I took the java tutorial kurento-hello-world-recording (after 'git checkout 6.2.0') and added secure communication (https and wss).

It seems to create an empty file every time I run the application along with my other previously working applications. Any advise?

Thanks,
Curtis

Ivan Gracia

unread,
Dec 14, 2015, 5:40:27 AM12/14/15
to Kurento Public
Are you getting the remote video back?

Ivan Gracia



--

cbwi...@gmail.com

unread,
Dec 14, 2015, 6:50:58 AM12/14/15
to kurento
If run:

mvn compile exec:java -Drepository.uri=file:///tmp/

within
./kurento-tutorial-java/kurento-hello-world-recording

I can get remote video back. However, the recorded file in the /tmp directory is there, but it's empty.

Thanks,
Curtis

Ivan Gracia

unread,
Dec 14, 2015, 8:24:23 AM12/14/15
to Kurento Public
Is it empty even when you stop recording? What client and KMS version are you using?

Ivan Gracia



--

cbwi...@gmail.com

unread,
Dec 14, 2015, 6:10:03 PM12/14/15
to kurento
It's still empty after stopping recording. I'm not sure how to check the client but KMS version returns:

$ kurento-media-server -v
Version: 6.2.0
Found modules:
Module: 'core' version '6.2.0'
Module: 'elements' version '6.2.0'
Module: 'filters' version '6.2.0'

Is this the client information?

   .------------------------------------.
   |                                    |
   |   | |/ /  _ _ _ ___ _ _| |_ ___    |
   |   | ' < || | '_/ -_) ' \  _/ _ \   |
   |   |_|\_\_,_|_| \___|_||_\__\___/   |
   |                                    |
   '------------------------------------'
       Kurento Java Tutorial 7 - Hello World with Recording
       Version 6.2.0

Thanks,
Curtis

cbwi...@gmail.com

unread,
Dec 14, 2015, 7:43:13 PM12/14/15
to kurento
I did some more research. If I access the kurento-hello-world-recording application (with added ssl both https and wss) within the VM the video successfully records. If I access the application remotely from the host machine over the network, it creates the recorded file, but it is empty.

Is there a reason why remotely accessing the application would cause the recorded video to be empty?

Thanks,
Curtis

Ivan Gracia

unread,
Dec 15, 2015, 3:36:24 AM12/15/15
to Kurento Public
I know I`ve already asked this, but just in case: could you make sure that you are getting your loopback video in both cases? Use the hello-world demo for that, when in your network, and when outside of your network. It looks like your webrtc connection is not working.

Ivan Gracia



--

cbwi...@gmail.com

unread,
Dec 15, 2015, 6:16:40 AM12/15/15
to kurento
I ran your test and all the loopback video works. I figured out the problem was the version of Google Chrome I was using.

I ran the application from these three locations:

Version 47.0.2526.80 (64-bit) on VM Ubuntu

Version 47.0.2526.73 (64-bit) on Host Machine

Version 45.0.2454.93 (64-bit) on Remote Machine


I ran the kurento-hello-world-recording application from these three versions of Chrome. The Version 47.0.2526.73 (64-bit) was the only version that would record empty files. Once I updated to the latest, Version 47.0.2526.80 (64-bit), on my host machine, the recordings started to work again.


Thanks for your help,

Curtis

Ivan Gracia

unread,
Dec 15, 2015, 6:59:29 AM12/15/15
to Kurento Public
Cool, thanks for the feedback! Didn't know there was a problem with that Chrome version.

Cheers,

Ivan Gracia



--

Carlos Nacianceno

unread,
Dec 18, 2015, 8:30:04 AM12/18/15
to kur...@googlegroups.com

Im using firefox and still getting empty recordings sometimes

You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/qZdU-CbBRAU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+u...@googlegroups.com.

Ivan Gracia

unread,
Dec 18, 2015, 8:59:53 AM12/18/15
to Kurento Public
Are you 100% sure the video is arriving at the media server? Which version of KMS are you using? We had a regression with the recorder in 6.2.0

Ivan Gracia


Carlos Nacianceno

unread,
Dec 18, 2015, 9:58:47 AM12/18/15
to kur...@googlegroups.com
No,i'm not sure that the video is arriving, is there a way to check that? the version is actually 6.2.0

thank you

Ivan Gracia

unread,
Dec 18, 2015, 10:09:43 AM12/18/15
to Kurento Public
You can add a listener to the MediaStateChanged event. Log a message when the state changes to CONNECTED, and that way you`ll have an idea.

The best way, of course, is to have a loopback. You can test with the loopback, and remove it after debugging.

Ivan Gracia


novik...@gmail.com

unread,
Jun 5, 2016, 10:26:54 AM6/5/16
to kurento
Hi Ivan!

Here is the problem i am experiencing: MediaStateChanged does not fire when i connect through an Electron-based client (while the stream exists and can be viewed on any computer with the browser-based one2many example), and so the recording does not take place. But if i stream through the browser-based client, the even fires and i have a recorded file.

Where to look? Here is my Electron app code just in case, made from one-2-many example. 
it streams desktop, but more or less same thing happens if i remove the "sendSource:'screen'" line so i stream webcam.

Mikhail

Ivan Gracia

unread,
Jun 6, 2016, 3:54:32 AM6/6/16
to Kurento Public
That is most likely because you are not getting the webcam stream. Is there anything shown in your browser's console?

Also, check chrome://webrtc-internals to see the getUserMedia request, and the RTCPeerConnection stats to see if something is going out from your browser to KMS.

Ivan Gracia


novik...@gmail.com

unread,
Jun 6, 2016, 5:49:28 AM6/6/16
to kurento
Now MediaStateChange does fire, but the file being created (i am doing it in MediaStateChange handler when it changes to 'CONNECTED'), and is of zero size. It happens only when i stream from Electron desktop app, okay when i stream from browser. Either with screenshare of webcam. Any other idea? What kind of info may help you to figure out?

Ivan Gracia

unread,
Jun 6, 2016, 5:52:48 AM6/6/16
to Kurento Public
How do you create the webrtc endpoint in Electron desktop? I'd set a loopback just to check that there is indeed some media going out of your electron app.

Ivan Gracia


novik...@gmail.com

unread,
Jun 6, 2016, 6:02:30 AM6/6/16
to kurento
I certainly know the traffic is going to server. it is not p2p. here is ifstat output on server:

   34.08      0.70      0.48     33.97     34.56     34.67      0.00      0.00
  110.02      0.86      0.48     86.54    110.50     87.40      0.00      0.00
   34.57      0.54      0.60     57.29     35.05     57.83      0.00      0.00
   48.56      0.70      0.48     48.29     49.16     49.15      0.00      0.00
   35.21      0.86      0.48     29.25     36.90     29.95      0.00      0.00
   36.99      0.70      0.65     34.53     36.44     35.11      0.00      0.00
   61.18      0.86      0.91     69.78     62.10     70.75      0.00      0.00
   51.03      0.75      0.54     15.35     52.76     16.10      0.00      0.00
   50.08      0.57      0.12      0.42     49.02      0.99      0.00      0.00
   21.15      0.65      0.56      0.52     21.71      1.18      0.00      0.00
    0.18      0.12      0.12      0.29      0.30      0.41      0.00      0.00
    0.18      0.12      0.12      0.29      0.30      0.41      0.00      0.00
    0.18      0.12      0.12      0.29      0.30      0.41      0.00      0.00
    0.18      0.12      0.12      0.29      0.30      0.41      0.00      0.00
    0.18      0.12      0.12      0.29      0.30      0.41      0.00      0.00
    0.18      0.12      0.12      0.29      0.30      0.41      0.00      0.00

the moment where i closed Electron is clearly visible.

this is how i connect in Electron, code is a rather simple copypaste of your example one2many

    var options = {
     localVideo : video,
     onicecandidate : onIceCandidate,
 sendSource : 'screen'
    };

       webRtcPeer = new kurentoUtils.WebRtcPeer.WebRtcPeerSendonly(options,function(error) {
          if (error) {
              return console.error(error);
          }
          webRtcPeer.generateOffer(onOfferPresenter);
       });


it streams desktop, but if i switch it to webcam it is all the same.


here is my code

novik...@gmail.com

unread,
Jun 6, 2016, 6:11:29 AM6/6/16
to kurento, novik...@gmail.com
I know this is most probably some kind of a bug in Electron's version of Chrome :( i already had the problem with streaming reliability which went away by updating Electron. So most likely, there is no fix.

Tell me please, is there at least a way to 'intercept' the stream being sent through Kurento, with ffmpeg on server side?

Ivan Gracia

unread,
Jun 6, 2016, 8:19:49 AM6/6/16
to Kurento Public, novik...@gmail.com
The thing is perhaps the stream is not being captured at all. If that's the case, you need to check why the desktop app does not capture the stream from the webcam. Can't help you with that, sorry!

Ivan Gracia



novik...@gmail.com

unread,
Jun 6, 2016, 8:41:32 AM6/6/16
to kurento, novik...@gmail.com
It is being captured. I can watch it from both Electron and browser app (one2many example) from any computer. Stream looks good.

Ivan Gracia

unread,
Jun 9, 2016, 8:16:51 AM6/9/16
to Kurento Public, novik...@gmail.com
No clue, this is as far as I can get, as I have no experience in Electron apps. Sorry!

Ivan Gracia


Gautier Drusch

unread,
Oct 18, 2016, 10:43:51 AM10/18/16
to kurento, novik...@gmail.com
I've experienced the same problem (on an Electron app, but I think that's not specific), and I found a possible solution.

If you use the screen as a source, on Chrome you need to set the audio source constraint to false. But the recorderEndPoint expect by default both AUDIO and VIDEO media types (see here).

So, you need to specify mediaProfile: 'WEBM_VIDEO_ONLY' (or 'MP4_VIDEO_ONLY')  when creating your RecorderEndpoint.

Example:
pipeline.create('RecorderEndpoint', {uri : "file:///path-to-video", mediaProfile: 'WEBM_VIDEO_ONLY'}, function(error, recorderEndpoint){ });

It's surprising because on the doc it's written that the mediaProfile is mandatory only when we add another EndPoint to the recorder... 

Ivan Gracia

unread,
Oct 18, 2016, 1:21:30 PM10/18/16
to Kurento Public, novik...@gmail.com
Well, you are adding another endpoint to the recorder, when you do webrtcEndpoint.connect(recorder).

Remember to specify the media type in the connect method.

Ivan Gracia



To unsubscribe from this group and stop receiving emails from it, send an email to kurento+unsubscribe@googlegroups.com.
To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.
To view this discussion on the web visit https://groups.google.com/d/msgid/kurento/169aa45f-ff17-4b22-87f8-aa1a6950c86f%40googlegroups.com.

vijay krishna

unread,
Apr 8, 2017, 2:27:22 AM4/8/17
to kurento, novik...@gmail.com
Hi all,

I am getting this issue with a kurento media server that i am using.In my case log files of kurento-media-server and videos are being saved empty.I tried to check if i am getting remote stream.I am getting the remote stream back.Recording is working with different media server.So it isnt issue with my browser.

Can anyone guide me what to do.

Ivan Gracia



To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.

Micael Gallego

unread,
Apr 8, 2017, 5:01:02 AM4/8/17
to kur...@googlegroups.com, novik...@gmail.com
Do you want to record audio and video? If you want to record only video, this have to be specified when creating RecorderEndpoint in the media profile parameter:


To unsubscribe from this group and stop receiving emails from it, send an email to kurento+unsubscribe@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

softjai...@gmail.com

unread,
Apr 17, 2017, 7:04:27 AM4/17/17
to kurento
Hi Ivan Gracia,

One of my web project i am using kurento javascript API to integrate with kurento media server. It's working fine if i am using application to record a single media file for a user.

One of our project requirment, user will record mp3 or mp4 media file with one session login of the application, and scenerio is - user will login and get the screen having 4-5 recorded audio and this recorded audio will play with slider and after every recorded auio user having option to record their response. So i have added javascript api logic between recorded audio. If user record first audio  response it is working properly once he/she click for next then i have called stopped recording logic and again once he/she will record response for next audio recording then i will pass values and recording started. But here what happned when user moving to next recording second recording working fine but still appending to first one same for next,  so the sequense woking in that way last recording is fine but previous recording appending by next one. So how can we handle this please share your thought on this.



On Tuesday, 24 November 2015 21:01:00 UTC+5:30, igracia wrote:
Could be. The recorder has been receiving a lot of care lately. Check with the latest dev version (info here)

Ivan Gracia



On Tue, Nov 24, 2015 at 4:15 PM, <adrian...@gmail.com> wrote:
I'm running version 6.1.1 on Ubuntu 14.04 LTS, the problem is random, I sometimes get an output and sometimes not, the problem seems to be random. 

This is how I call the record method:

webRtcEndpoint.on('MediaStateChanged', function(event) {
  if ((event.oldState !== event.newState) && (event.newState === 'CONNECTED')) {
    recorderEndpoint.record();
  }
});

I don't see anything abnormal in the logs, could this be a version related bug?

--
You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+unsubscribe@googlegroups.com.

Octavian Naicu

unread,
May 4, 2017, 11:46:22 AM5/4/17
to kurento
Hi, this is Octavian from Pipe, a video recording platform.

We've been using Kurento/WebRTC to enable Flash free video recording in Chrome. We've also run into the 0 byte video recordings issue. Across a few thousand beta vids it affected roughly 8% of WebRTC/Kurento videos and 12% of the users.

So far we've identified 2 causes:
  • TURN/STUN protocol was blocked by VPNs like TunnelBear (because of this) thus no ICE candidates were ever found for the user. Our 1st beta versions did not account for that. 
  • User was able to start recording without interacting with Chrome's Allow/Block camera permission dialog. Again fixed through a better implementation.

I hope this helps!

Octavian Naicu,
Founder and Product Manager @ Pipe
https://addpipe.com

On Saturday, November 21, 2015 at 1:49:15 AM UTC+2, Danny Lynch wrote:
Hi Everyone,
I've got an app that I had running on Kurento 4.5, that I converted over to using 6.0/6.1, and for video conferencing everything is much more stable now.

On the video recording side I'm running into an issue where the video files are being written to disk, but they are 0-bytes during the recording process, and when I end the recording, each file ends up being 309-bytes (presumably just a header of some sort).

I'm running behind EC2, and like I said, I've 2-way video conferencing working, so I'm pretty sure I've got the turn/stun stuff set up correctly.

Has anyone run into empty-video file problems before that could point me in the right direction on debugging it.

Thanks for you help!
--Danny

vijay krishna

unread,
May 23, 2017, 6:08:41 PM5/23/17
to kurento
hey octavian,

When you said "better implementation" what did you mean?

We are facing similar issue and to debug this we added media state change event listeners.During those failure cases only video or audio is flowing .And my case is not turn/stun because ice candidate is connected.

Can you shed some light on how to solve this.?

jai prakash kushwaha

unread,
May 24, 2017, 1:29:12 AM5/24/17
to kur...@googlegroups.com
Hi vijay, 

If you are using ice candidates then need to application and recording server in same network. If you want to application and recording server will not be in same network then need to be use stun.


As we have implement in our project. We have dual requirement. Some of the client having both server in their premises  and some of the client hosting both on cloud server. 

Hope this will help you. 


--
You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/qZdU-CbBRAU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+unsubscribe@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

vijay krishna

unread,
May 24, 2017, 1:41:01 AM5/24/17
to kurento
Hi prakash,

I am using turn and stun and ice negotiation works for me. I added event listeners to check ice connection state. It is showing status connected. If ice fails it says ice failed . I am sure that whatever is happening to me is not ice connection issue.


Need more help

Micael Gallego

unread,
May 24, 2017, 1:46:24 AM5/24/17
to kur...@googlegroups.com
Hi vijay,

We are very interested in gathering more information about the problem. Have you seen any pattern in the cases with no error or no video? Browser type? Network conditions? Server load...something that allows us to reproduce.the error in our lab to try to solve it.

The problem.is that we are not able to reproduce the error and then, we can't analyze KMS in that situation.




--

You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+unsubscribe@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

vijay krishna

unread,
May 24, 2017, 1:56:18 AM5/24/17
to kurento
Michael,

Load in under 10 % for both CPU and RAM. There's no pattern whenever user faced this issue we asked users to use chrome when it failed in Firefox and vice versa. Recording failed in both browsers.

We also got into a call using application built from kurento room and there we are not able to hear them .

We are also trying to reproduce it in dev environment . but the damn thing always works.

Can you suggest something that I can ask users to do when they face this issue to gather more info?

vijay krishna

unread,
May 24, 2017, 1:58:12 AM5/24/17
to kurento
I can post SDP offer , answer and ice candidates. Would that help?

jai prakash kushwaha

unread,
May 24, 2017, 1:58:14 AM5/24/17
to kur...@googlegroups.com
Hi vijay, 

Can you provide server infrastructure for both? 

--
You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/qZdU-CbBRAU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+unsubscribe@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

jai prakash kushwaha

unread,
May 24, 2017, 1:59:45 AM5/24/17
to kur...@googlegroups.com
Yes

On 24 May 2017 11:28 a.m., "vijay krishna" <vjkri...@gmail.com> wrote:
I can post SDP offer , answer and ice candidates. Would that help?

--
You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/qZdU-CbBRAU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+unsubscribe@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

vijay krishna

unread,
May 24, 2017, 2:00:14 AM5/24/17
to kurento
Prakash,

We have one Ubuntu 14 server that consists of KMS , coturn that acts as stun and turn and application server.

jai prakash kushwaha

unread,
May 24, 2017, 2:04:03 AM5/24/17
to kur...@googlegroups.com
On cloud or local hosting

On 24 May 2017 11:30 a.m., "vijay krishna" <vjkri...@gmail.com> wrote:
Prakash,

We have one Ubuntu 14 server that consists of KMS , coturn that acts as stun and turn and application server.

--
You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/qZdU-CbBRAU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+unsubscribe@googlegroups.com.
To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

vijay krishna

unread,
May 24, 2017, 2:05:12 AM5/24/17
to kurento
AWS EC2

jai prakash kushwaha

unread,
May 24, 2017, 2:06:25 AM5/24/17
to kur...@googlegroups.com
Have you using ip address or valid domain name for stun? 

On 24 May 2017 11:35 a.m., "vijay krishna" <vjkri...@gmail.com> wrote:
AWS EC2


--
You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/qZdU-CbBRAU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+unsubscribe@googlegroups.com.
To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

vijay krishna

unread,
May 24, 2017, 2:09:49 AM5/24/17
to kur...@googlegroups.com

vijay krishna

unread,
May 24, 2017, 2:10:51 AM5/24/17
to kurento
IP addresses

jai prakash kushwaha

unread,
May 24, 2017, 2:13:43 AM5/24/17
to kur...@googlegroups.com
Thats issue, you should have to you valid domain name. Either you can use google stun domain. You can find it on kurento stun configuration. 

vijay krishna

unread,
May 24, 2017, 2:16:48 AM5/24/17
to kurento
I am using google stun and my turn server also. My turn server generates server reflexive ice candidates too.


I don't think that's my issue mate. If that's the case my ice connection itself fails.

It won't even reach media transmission stage .

jai prakash kushwaha

unread,
May 24, 2017, 2:20:06 AM5/24/17
to kur...@googlegroups.com
Basically we also faced same issue on aws ec2 because we were using ip addresses for stun and no media transmission. After some research we found need to use valide domain name for stun and that way we have fixed this. 

--
You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/qZdU-CbBRAU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+unsubscribe@googlegroups.com.
To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

Micael Gallego

unread,
May 24, 2017, 2:20:33 AM5/24/17
to kur...@googlegroups.com
SDPs and ICE candidates for failing and non failing connections will help us to see if there are any difference between them. It will also help to see what kind of connection is being used when problems arise. 

Your dev environment is exactly the same than prod env? That is... Are both in EC2? Or you use a local server for dev and EC2 server for prod? When you test is local it is very unlikely to use TURN, but it is more likely to use that with users behind a proxy or corporate firewall. That can be the issue.

Please try to gather as much info as possible for failing connections and also for ok connections to compare both.

Kind regards

You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+unsubscribe@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

jai prakash kushwaha

unread,
May 24, 2017, 2:22:35 AM5/24/17
to kur...@googlegroups.com
We were also using google stun but with ip addresses but later we have replaced it with google stun domain name. 

Micael Gallego

unread,
May 24, 2017, 2:22:35 AM5/24/17
to kur...@googlegroups.com
Hi Jai,

Can you describe your setup? As far as I know KMS doesn't allow to specify host names in STUN servers, only IPs. I'm a bit confused what didn't work for you and what works now.

jai prakash kushwaha

unread,
May 24, 2017, 2:26:16 AM5/24/17
to kur...@googlegroups.com
We have aws ec2 two instance one for window to host. Net application and second one Ubuntu server for KMS. Our. Net application ruuning on iis and sending request to KMS Server having valid domain name using java script client. 

jai prakash kushwaha

unread,
May 24, 2017, 3:20:29 AM5/24/17
to kur...@googlegroups.com
Hi vijay & micael, 


Sorry guys for stun domain name. Basically we are using ip addresses. Before that was configured with domain name. 



Yes micael you are right KMS not allowed domain name with stun. 

vijay krishna

unread,
May 24, 2017, 4:17:10 AM5/24/17
to kurento
Failure Case

SDP
v=0
o=- 7872585844733618248 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS 6NZ6WzsLpHO0zqNZfyLCVvnStg6ytVM3zkLO
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:hRPf
a=ice-pwd:XZM9ge85V2uMpWftt1pyyqmn
a=fingerprint:sha-256 1E:55:B6:A3:ED:09:76:9A:8B:54:38:DF:93:69:9D:65:0C:A4:36:BD:5C:4C:5D:7C:16:F1:32:B5:31:F6:3B:26
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:112 telephone-event/32000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
a=ssrc:2866140478 cname:MoEOiTOTWRlHsYiP
a=ssrc:2866140478 msid:6NZ6WzsLpHO0zqNZfyLCVvnStg6ytVM3zkLO 226ea91e-f38f-4c60-ba33-7a933acbf20e
a=ssrc:2866140478 mslabel:6NZ6WzsLpHO0zqNZfyLCVvnStg6ytVM3zkLO
a=ssrc:2866140478 label:226ea91e-f38f-4c60-ba33-7a933acbf20e
m=video 9 UDP/TLS/RTP/SAVPF 96 98 100 102 127 97 99 101 125
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:hRPf
a=ice-pwd:XZM9ge85V2uMpWftt1pyyqmn
a=fingerprint:sha-256 1E:55:B6:A3:ED:09:76:9A:8B:54:38:DF:93:69:9D:65:0C:A4:36:BD:5C:4C:5D:7C:16:F1:32:B5:31:F6:3B:26
a=setup:actpass
a=mid:video
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:4 urn:3gpp:video-orientation
a=sendrecv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtpmap:100 H264/90000
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:102 red/90000
a=rtpmap:127 ulpfec/90000
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:125 rtx/90000
a=fmtp:125 apt=102
a=ssrc-group:FID 1740437857 3563336808
a=ssrc:1740437857 cname:MoEOiTOTWRlHsYiP
a=ssrc:1740437857 msid:6NZ6WzsLpHO0zqNZfyLCVvnStg6ytVM3zkLO 06e38bf2-19ce-48d8-a83a-6f81bd916080
a=ssrc:1740437857 mslabel:6NZ6WzsLpHO0zqNZfyLCVvnStg6ytVM3zkLO
a=ssrc:1740437857 label:06e38bf2-19ce-48d8-a83a-6f81bd916080
a=ssrc:3563336808 cname:MoEOiTOTWRlHsYiP
a=ssrc:3563336808 msid:6NZ6WzsLpHO0zqNZfyLCVvnStg6ytVM3zkLO 06e38bf2-19ce-48d8-a83a-6f81bd916080
a=ssrc:3563336808 mslabel:6NZ6WzsLpHO0zqNZfyLCVvnStg6ytVM3zkLO
a=ssrc:3563336808 label:06e38bf2-19ce-48d8-a83a-6f81bd916080

ICE Candidates 

Local(Browser generated)
{\"candidate\":\"candidate:0 1 UDP 2122252543 10.121.72.233 55692 typ host\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:4 1 UDP 2122187007 2001:0:9d38:90d7:1016:a72d:48ac:1c6a 55693 typ host\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:0 2 UDP 2122252542 10.121.72.233 57733 typ host\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:4 2 UDP 2122187006 2001:0:9d38:90d7:1016:a72d:48ac:1c6a 57734 typ host\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:0 1 UDP 2122252543 10.121.72.233 57735 typ host\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:4 1 UDP 2122187007 2001:0:9d38:90d7:1016:a72d:48ac:1c6a 57736 typ host\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:0 2 UDP 2122252542 10.121.72.233 57737 typ host\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:4 2 UDP 2122187006 2001:0:9d38:90d7:1016:a72d:48ac:1c6a 57738 typ host\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:1 1 UDP 1686052863 183.83.227.149 35068 typ srflx raddr 10.121.72.233 rport 55692\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:1 1 UDP 1686052863 183.83.227.149 35070 typ srflx raddr 10.121.72.233 rport 57735\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:1 2 UDP 1686052862 183.83.227.149 35069 typ srflx raddr 10.121.72.233 rport 57733\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:1 2 UDP 1686052862 183.83.227.149 35071 typ srflx raddr 10.121.72.233 rport 57737\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:3 1 UDP 92217087 172.31.17.209 62369 typ relay raddr 172.31.17.209 rport 62369\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:3 2 UDP 92217086 172.31.17.209 60584 typ relay raddr 172.31.17.209 rport 60584\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:3 1 UDP 92217087 172.31.17.209 63712 typ relay raddr 172.31.17.209 rport 63712\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:3 2 UDP 92217086 172.31.17.209 65417 typ relay raddr 172.31.17.209 rport 65417\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:8 1 UDP 8331263 172.31.17.209 64296 typ relay raddr 172.31.17.209 rport 64296\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:8 1 UDP 8331263 172.31.17.209 61049 typ relay raddr 172.31.17.209 rport 61049\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:8 2 UDP 8331262 172.31.17.209 63643 typ relay raddr 172.31.17.209 rport 63643\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:8 2 UDP 8331262 172.31.17.209 60641 typ relay raddr 172.31.17.209 rport 60641\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}


remote(KMS generated)

{\"candidate\":\"candidate:6 1 TCP 1015022079 172.31.17.209 49550 typ host tcptype passive\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:5 1 TCP 1019216383 172.31.17.209 9 typ host tcptype active\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:6 1 TCP 1015022079 172.31.17.209 49550 typ host tcptype passive\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:5 1 TCP 1019216383 172.31.17.209 9 typ host tcptype active\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:4 1 UDP 2013266431 172.31.17.209 43781 typ host\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:4 1 UDP 2013266431 172.31.17.209 43781 typ host\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:3 2 TCP 1015022846 fe80::449:85ff:fe42:33f8 35272 typ host tcptype passive\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:3 1 TCP 1015022847 fe80::449:85ff:fe42:33f8 38414 typ host tcptype passive\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:3 2 TCP 1015022846 fe80::449:85ff:fe42:33f8 35272 typ host tcptype passive\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:3 1 TCP 1015022847 fe80::449:85ff:fe42:33f8 38414 typ host tcptype passive\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:2 1 TCP 1019217151 fe80::449:85ff:fe42:33f8 9 typ host tcptype active\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:2 1 TCP 1019217151 fe80::449:85ff:fe42:33f8 9 typ host tcptype active\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:1 1 UDP 2013266431 fe80::449:85ff:fe42:33f8 57436 typ host\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:1 1 UDP 2013266431 fe80::449:85ff:fe42:33f8 57436 typ host\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:6 2 TCP 1015022078 172.31.17.209 59488 typ host tcptype passive\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:5 2 TCP 1019216382 172.31.17.209 9 typ host tcptype active\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:4 2 UDP 2013266430 172.31.17.209 52174 typ host\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:5 2 TCP 1019216382 172.31.17.209 9 typ host tcptype active\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:4 2 UDP 2013266430 172.31.17.209 52174 typ host\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:2 2 TCP 1019217150 fe80::449:85ff:fe42:33f8 9 typ host tcptype active\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:2 2 TCP 1019217150 fe80::449:85ff:fe42:33f8 9 typ host tcptype active\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:7 1 UDP 1677722111 52.52.230.128 43781 typ srflx raddr 172.31.17.209 rport 43781\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:1 2 UDP 2013266430 fe80::449:85ff:fe42:33f8 57681 typ host\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:1 2 UDP 2013266430 fe80::449:85ff:fe42:33f8 57681 typ host\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:7 1 UDP 1677722111 52.52.230.128 43781 typ srflx raddr 172.31.17.209 rport 43781\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:9 1 TCP 843055615 52.52.230.128 49550 typ srflx raddr 172.31.17.209 rport 49550 tcptype passive\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:10 1 UDP 167772671 172.31.17.209 61361 typ relay raddr 172.31.17.209 rport 61361\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:8 1 TCP 847249919 52.52.230.128 9 typ srflx raddr 172.31.17.209 rport 9 tcptype active\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:10 1 UDP 167772671 172.31.17.209 61361 typ relay raddr 172.31.17.209 rport 61361\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:6 2 TCP 1015022078 172.31.17.209 59488 typ host tcptype passive\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:8 1 TCP 847249919 52.52.230.128 9 typ srflx raddr 172.31.17.209 rport 9 tcptype active\",\"sdpMid\":\"sdparta_0\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:9 1 TCP 843055615 52.52.230.128 49550 typ srflx raddr 172.31.17.209 rport 49550 tcptype passive\",\"sdpMid\":\"sdparta_1\",\"sdpMLineIndex\":1}





Successful case

SDP offer
v=0
o=- 6348653204045249468 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio video
a=msid-semantic: WMS tG0r5kLzFMfKd7oi5LOwyt28TCWkVVUFaA8O
m=audio 9 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:Z9uV
a=ice-pwd:j2YIR/OAuum8otRXeQu8VIFd
a=fingerprint:sha-256 F8:68:1D:E8:16:41:F0:7E:5E:91:2E:5C:C1:A0:48:20:A4:7B:15:BB:ED:74:E4:5C:4A:08:C7:AD:A0:84:B8:88
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=sendrecv
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=rtcp-fb:111 transport-cc
a=fmtp:111 minptime=10;useinbandfec=1
a=rtpmap:103 ISAC/16000
a=rtpmap:104 ISAC/32000
a=rtpmap:9 G722/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:106 CN/32000
a=rtpmap:105 CN/16000
a=rtpmap:13 CN/8000
a=rtpmap:110 telephone-event/48000
a=rtpmap:112 telephone-event/32000
a=rtpmap:113 telephone-event/16000
a=rtpmap:126 telephone-event/8000
a=ssrc:942090769 cname:kdkYBEEWSCbV2YKg
a=ssrc:942090769 msid:tG0r5kLzFMfKd7oi5LOwyt28TCWkVVUFaA8O ac12987e-e7c2-4c8d-99ca-746ca7a32b54
a=ssrc:942090769 mslabel:tG0r5kLzFMfKd7oi5LOwyt28TCWkVVUFaA8O
a=ssrc:942090769 label:ac12987e-e7c2-4c8d-99ca-746ca7a32b54
m=video 9 UDP/TLS/RTP/SAVPF 96 98 100 102 127 97 99 101 125
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:Z9uV
a=ice-pwd:j2YIR/OAuum8otRXeQu8VIFd
a=fingerprint:sha-256 F8:68:1D:E8:16:41:F0:7E:5E:91:2E:5C:C1:A0:48:20:A4:7B:15:BB:ED:74:E4:5C:4A:08:C7:AD:A0:84:B8:88
a=setup:actpass
a=mid:video
a=extmap:2 urn:ietf:params:rtp-hdrext:toffset
a=extmap:4 urn:3gpp:video-orientation
a=sendrecv
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:96 VP8/90000
a=rtcp-fb:96 ccm fir
a=rtcp-fb:96 nack
a=rtcp-fb:96 nack pli
a=rtcp-fb:96 goog-remb
a=rtcp-fb:96 transport-cc
a=rtpmap:98 VP9/90000
a=rtcp-fb:98 ccm fir
a=rtcp-fb:98 nack
a=rtcp-fb:98 nack pli
a=rtcp-fb:98 goog-remb
a=rtcp-fb:98 transport-cc
a=rtpmap:100 H264/90000
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtcp-fb:100 goog-remb
a=rtcp-fb:100 transport-cc
a=fmtp:100 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtpmap:102 red/90000
a=rtpmap:127 ulpfec/90000
a=rtpmap:97 rtx/90000
a=fmtp:97 apt=96
a=rtpmap:99 rtx/90000
a=fmtp:99 apt=98
a=rtpmap:101 rtx/90000
a=fmtp:101 apt=100
a=rtpmap:125 rtx/90000
a=fmtp:125 apt=102
a=ssrc-group:FID 3248967096 504102122
a=ssrc:3248967096 cname:kdkYBEEWSCbV2YKg
a=ssrc:3248967096 msid:tG0r5kLzFMfKd7oi5LOwyt28TCWkVVUFaA8O 053d8262-7ca7-487e-8d5c-3bf221b9fd78
a=ssrc:3248967096 mslabel:tG0r5kLzFMfKd7oi5LOwyt28TCWkVVUFaA8O
a=ssrc:3248967096 label:053d8262-7ca7-487e-8d5c-3bf221b9fd78
a=ssrc:504102122 cname:kdkYBEEWSCbV2YKg
a=ssrc:504102122 msid:tG0r5kLzFMfKd7oi5LOwyt28TCWkVVUFaA8O 053d8262-7ca7-487e-8d5c-3bf221b9fd78
a=ssrc:504102122 mslabel:tG0r5kLzFMfKd7oi5LOwyt28TCWkVVUFaA8O
a=ssrc:504102122 label:053d8262-7ca7-487e-8d5c-3bf221b9fd78


Local Ice candidates(Browser generated)

{\"candidate\":\"candidate:419535255 1 udp 2113937151 172.16.3.154 36259 typ host generation 0 ufrag Z9uV network-cost 50\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:419535255 1 udp 2113937151 172.16.3.154 52568 typ host generation 0 ufrag Z9uV network-cost 50\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:842163049 1 udp 1677729535 182.75.202.158 52568 typ srflx raddr 172.16.3.154 rport 52568 generation 0 ufrag Z9uV network-cost 50\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:842163049 1 udp 1677729535 182.75.202.158 36259 typ srflx raddr 172.16.3.154 rport 36259 generation 0 ufrag Z9uV network-cost 50\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:492180102 1 udp 33562623 172.31.17.209 65364 typ relay raddr 182.75.202.158 rport 52568 generation 0 ufrag Z9uV network-cost 50\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:492180102 1 udp 33562623 172.31.17.209 64807 typ relay raddr 182.75.202.158 rport 36259 generation 0 ufrag Z9uV network-cost 50\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:1406529142 1 udp 16785151 172.31.17.209 60990 typ relay raddr 182.75.202.158 rport 34398 generation 0 ufrag Z9uV network-cost 50\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:1406529142 1 udp 16785151 172.31.17.209 63121 typ relay raddr 182.75.202.158 rport 34397 generation 0 ufrag Z9uV network-cost 50\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}


Remote Ice candidates(KMS generated)

{\"candidate\":\"candidate:3 2 TCP 1015022846 fe80::449:85ff:fe42:33f8 49726 typ host tcptype passive\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:2 2 TCP 1019217150 fe80::449:85ff:fe42:33f8 9 typ host tcptype active\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:2 2 TCP 1019217150 fe80::449:85ff:fe42:33f8 9 typ host tcptype active\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:1 2 UDP 2013266430 fe80::449:85ff:fe42:33f8 57099 typ host\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:4 2 UDP 2013266430 172.31.17.209 58054 typ host\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:1 2 UDP 2013266430 fe80::449:85ff:fe42:33f8 57099 typ host\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:6 1 TCP 1015022079 172.31.17.209 42932 typ host tcptype passive\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:6 2 TCP 1015022078 172.31.17.209 56142 typ host tcptype passive\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:5 1 TCP 1019216383 172.31.17.209 9 typ host tcptype active\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:6 1 TCP 1015022079 172.31.17.209 42932 typ host tcptype passive\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:5 1 TCP 1019216383 172.31.17.209 9 typ host tcptype active\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:4 1 UDP 2013266431 172.31.17.209 39689 typ host\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:4 1 UDP 2013266431 172.31.17.209 39689 typ host\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:3 1 TCP 1015022847 fe80::449:85ff:fe42:33f8 57908 typ host tcptype passive\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:3 1 TCP 1015022847 fe80::449:85ff:fe42:33f8 57908 typ host tcptype passive\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:10 1 UDP 167772671 172.31.17.209 61097 typ relay raddr 172.31.17.209 rport 61097\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:2 1 TCP 1019217151 fe80::449:85ff:fe42:33f8 9 typ host tcptype active\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:2 1 TCP 1019217151 fe80::449:85ff:fe42:33f8 9 typ host tcptype active\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:1 1 UDP 2013266431 fe80::449:85ff:fe42:33f8 60435 typ host\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:1 1 UDP 2013266431 fe80::449:85ff:fe42:33f8 60435 typ host\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:10 1 UDP 167772671 172.31.17.209 61097 typ relay raddr 172.31.17.209 rport 61097\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:8 1 TCP 847249919 52.52.230.128 9 typ srflx raddr 172.31.17.209 rport 9 tcptype active\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:9 1 TCP 843055615 52.52.230.128 42932 typ srflx raddr 172.31.17.209 rport 42932 tcptype passive\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:9 1 TCP 843055615 52.52.230.128 42932 typ srflx raddr 172.31.17.209 rport 42932 tcptype passive\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:8 1 TCP 847249919 52.52.230.128 9 typ srflx raddr 172.31.17.209 rport 9 tcptype active\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:7 1 UDP 1677722111 52.52.230.128 39689 typ srflx raddr 172.31.17.209 rport 39689\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:7 1 UDP 1677722111 52.52.230.128 39689 typ srflx raddr 172.31.17.209 rport 39689\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:6 2 TCP 1015022078 172.31.17.209 56142 typ host tcptype passive\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:5 2 TCP 1019216382 172.31.17.209 9 typ host tcptype active\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}
{\"candidate\":\"candidate:5 2 TCP 1019216382 172.31.17.209 9 typ host tcptype active\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:4 2 UDP 2013266430 172.31.17.209 58054 typ host\",\"sdpMid\":\"audio\",\"sdpMLineIndex\":0}
{\"candidate\":\"candidate:3 2 TCP 1015022846 fe80::449:85ff:fe42:33f8 49726 typ host tcptype passive\",\"sdpMid\":\"video\",\"sdpMLineIndex\":1}




On Wednesday, May 24, 2017 at 11:50:33 AM UTC+5:30, Micael Gallego Carrillo wrote:
SDPs and ICE candidates for failing and non failing connections will help us to see if there are any difference between them. It will also help to see what kind of connection is being used when problems arise. 

Your dev environment is exactly the same than prod env? That is... Are both in EC2? Or you use a local server for dev and EC2 server for prod? When you test is local it is very unlikely to use TURN, but it is more likely to use that with users behind a proxy or corporate firewall. That can be the issue.

Please try to gather as much info as possible for failing connections and also for ok connections to compare both.

Kind regards
El 24 may. 2017 8:13 a. m., "jai prakash kushwaha" <softjai...@gmail.com> escribió:
Thats issue, you should have to you valid domain name. Either you can use google stun domain. You can find it on kurento stun configuration. 
On 24 May 2017 11:39 a.m., "vijay krishna" <vjkri...@gmail.com> wrote:
IP addresses.

On May 24, 2017 11:36 AM, "jai prakash kushwaha" <softjai...@gmail.com> wrote:
Have you using ip address or valid domain name for stun? 
On 24 May 2017 11:35 a.m., "vijay krishna" <vjkri...@gmail.com> wrote:
AWS EC2

--
You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/qZdU-CbBRAU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.
To view this discussion on the web visit https://groups.google.com/d/msgid/kurento/259e47e3-c325-4730-bf3d-0f57a4cdecb5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/qZdU-CbBRAU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+u...@googlegroups.com.

--
You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/qZdU-CbBRAU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+u...@googlegroups.com.

--
You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.

vijay krishna

unread,
May 24, 2017, 4:19:33 AM5/24/17
to kurento
Just adding to above info.These are from different ip addresses taken by different users(I apologise for that because i am not able to get it working for failed users).


Hope that info helps.
IP addresses.

To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/kurento/259e47e3-c325-4730-bf3d-0f57a4cdec

vijay krishna

unread,
May 24, 2017, 5:07:53 AM5/24/17
to kurento
Good news guys.It started failing in my machine just now.

I can provide any details that you need regarding this case.

Ask me questions.

Octavian Naicu

unread,
May 24, 2017, 9:29:11 AM5/24/17
to kur...@googlegroups.com
Basically we're now activating the record button for our WebRTC video recorder only after the user Allows camera and microphone access in Chrome's dialog box. If the user does not interact with the dialog (quite common) or if he clicks Block instead of Allow he new gets an error message and is asked to refresh. 

Octavian Naicu,
Founder and Product Manager @ Pipe
https://addpipe.com

--
You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/qZdU-CbBRAU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+unsubscribe@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

Micael Gallego

unread,
May 24, 2017, 9:39:02 AM5/24/17
to kur...@googlegroups.com
In which cases are failing for you? What are the differences between succesful and failing test?

Best regards

Micael Gallego
Kurento / OpenVidu Project Lead

--
You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+unsubscribe@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

vijay krishna

unread,
May 24, 2017, 11:06:49 AM5/24/17
to kurento
I am looping back my remote stream and there's no audio in that stream in Chrome browser and it is working in Firefox.

Just checked google hangouts and same issue there.So what i understood is everything related to webrtc is missing audio in my chrome browser.

To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

vijay krishna

unread,
May 24, 2017, 11:08:04 AM5/24/17
to kurento
Differences between successful and failure tests is that video is flowing in failed case and both audio and video are flowing in other case.

Do you want me to check anything else?


Micael Gallego

unread,
May 24, 2017, 6:09:14 PM5/24/17
to kur...@googlegroups.com
The question is.. Do you do something different in the case all works fine and when somerhing fails? Or it is randomly without any aparent reason?


To unsubscribe from this group and stop receiving emails from it, send an email to kurento+unsubscribe@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

vijay krishna

unread,
May 24, 2017, 6:16:26 PM5/24/17
to kurento
It is completely random. And when it failed only different thing that I observed is browser is laggy , every action like click and websocket connections are slow.

Micael Gallego

unread,
May 24, 2017, 7:06:34 PM5/24/17
to kur...@googlegroups.com
Ok. Thank you. We are investigating a similar issue right now in our develoment systems.

Regards.

El 25 may. 2017 12:16 a. m., "vijay krishna" <vjkri...@gmail.com> escribió:
It is completely random. And when it failed only different thing that I observed is browser is laggy , every action like click and websocket connections are slow.

--
You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+unsubscribe@googlegroups.com.
To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

Ghanshyam Agrawal

unread,
May 28, 2017, 12:17:56 PM5/28/17
to Kurento Public
There is one interesting thing which we figured out recently ,that if there is problem with mic (firefox 43/44 beta are giving some trouble with mic access ) ,
then MediaProfile must be of Video only. If we pick default (video +audio) then recording size would be 0kb. 
Check around this as well. 


For more options, visit https://groups.google.com/d/optout.



--
Thanks,
Ghanshyam Agrawal
Contact No : +919717167192

Octavian Naicu

unread,
Jul 18, 2017, 5:36:08 AM7/18/17
to kur...@googlegroups.com
We are still experiencing the 0kb issue after months of investigation.

I'm setting the correct media profile just before recording and after looking at both mic/cam device presence AND MediaStreamTrack.readyState (which tells you if permissions have been granted and the device is working) and I'm still getting 0kb files. 

According to Kurento's logs these files don't receive any sound input (Media Flowing IN in pad default with type audio is missing from the logs) even though our JS code on the client detects mic activity.

We've seen the issue happen with standard MacBooks (no external USB mics or anything) and Windows devices. We're on Kurento 6.6.1.


Octavian Naicu,
Founder and Product Manager @ Pipe
https://addpipe.com

--
You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/qZdU-CbBRAU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+unsubscribe@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

Micael Gallego

unread,
Jul 18, 2017, 2:37:57 PM7/18/17
to kur...@googlegroups.com
Hi,

Are you able to reproduce the problem with a fixed set of steps? Can you share with us that steps?

Thank you

Octavian Naicu

unread,
Jul 19, 2017, 4:46:32 AM7/19/17
to kur...@googlegroups.com
Unfortunately we're not able to replicate even though we've tried various scenarios every day for at least the last 2 months. We're tracking device names on init(empty names if no permission) and when record is pressed (in case they add/remove devices) , actual used devices, average mic level, device state, ICE candidates, user agents, etc.

We've released the WebRTC video recording part of our platform in beta. One or two such videos get recorded every few days.

Some people seem to be able to record several good videos but at a certain point they record a 0kb video.

Octavian Naicu,
Founder and Product Manager @ Pipe
https://addpipe.com

Micael Gallego

unread,
Jul 19, 2017, 4:57:52 AM7/19/17
to kur...@googlegroups.com
Hi Octavian,

I'm very sorry for the problems you are having... but it is very difficult for us to fix a problem that is very unlikely to reproduce. 

We will do our best to solve recording problems.

Best regards

Micael Gallego
Kurento / OpenVidu Project Lead

Octavian Naicu

unread,
Jul 19, 2017, 5:57:55 AM7/19/17
to kur...@googlegroups.com
I understand. At the moment our options are to compile Kurento with more logging around kmsrecorderendpoint.c or try and use Wowza instead.

Octavian Naicu,
Founder and Product Manager @ Pipe
https://addpipe.com

vijay krishna

unread,
Jul 19, 2017, 7:46:07 AM7/19/17
to kurento
Hi Octavian,Micael,

For macbooks issue this might help. It used to happen to my chrome browser in macbook frequently.It can be reproduced by opening 20-30 tabs and keeping them open for few hours(i checked after 12 hours).It isn't a issue with kurento ,It is a chrome issue.Any application that uses chrome browser fails to get audio from machine. Only fix that i found working was quitting(not closing) the browser and reopening it.

Hope this helps.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.
To view this discussion on the web visit https://groups.google.com/d/msgid/kurento/7fafaf8d-8572-45bb-9fd8-05fc7a43bcb4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.



--
Thanks,
Ghanshyam Agrawal
Contact No : +919717167192

--
You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/qZdU-CbBRAU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

--
You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

--
You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/qZdU-CbBRAU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

--
You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

--
You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/qZdU-CbBRAU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

Octavian Naicu

unread,
Jul 19, 2017, 7:50:26 AM7/19/17
to kur...@googlegroups.com
Awesome, thanks! will test. 

It's in line with our observations: sound not coming in from Chrome on an otherwise standard Macbook (happens on PC as well though). 

Octavian Naicu,
Founder and Product Manager @ Pipe
https://addpipe.com

Octavian Naicu

To unsubscribe from this group and all its topics, send an email to kurento+unsubscribe@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

Erik Petersen

unread,
Jul 24, 2017, 6:13:57 PM7/24/17
to kurento
Just wanted to jump in and say we see this problem in about 1% of our production recordings. Have been unable to pin down steps to reproduce.

PC users and Android chrome users can both generate empty recordings

Octavian Naicu

To unsubscribe from this group and all its topics, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

sh...@gosportz.tv

unread,
Sep 27, 2017, 4:34:49 AM9/27/17
to kurento
Hi all. So, we struggled with this issue and as with everyone else it was UNPREDICTABLE... BUT... I think we cracked it.

Here is our scenario for our android/ios app streaming to KMS6.6.0

- Android  4+5: streaming records fine with simple creation of recorder end point and webm profile recording audio and videlo
- Android 6+: UNPREDICATABLE!!! Sometimes works fine, sometime empty file. 

Our discovery/debug journey was was to set log and try/catch/(please help code god's) EVERYWHERE (before, during, after, between... you get the picture!)... and... nothing. No errors thrown, no exceptions, no nothing. So, kms reported everything fine, but file was empty.

So, what we discovered is that AUDIO is the problem. One the device, AUDIO permissions were DISABLED. But, webrtc was still sending an audio track, which was obviously empty without permissions. But nowhere was an error thrown. Even in chromium console the audio track was set to live and bound and and and!

So, when data gets to kms... it expects audio which never arrives... hence no data. Even when recording ended... its 'supposed' to flush everything to disk, but as there never was, is or will be audio, no flush.

If you want to replicate, then simply deny access to microphone, and you will be able to create a stream as normal, with audio track reported as live and being sent (obviously not) and the file will be empty.

Our fix was to check for permissions to audio and send that as a flag to recorded and point which then set the record type to video or video+audio appropriately.

This was 100% replicable across all devices/OS's on chrome/cordova and 100% fixed by ensuring audio actually flowing or using correct record endpoint setup to exclude audio if not there.

Regards,
Shaun 
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.
To view this discussion on the web visit https://groups.google.com/d/msgid/kurento/7fafaf8d-8572-45bb-9fd8-05fc7a43bcb4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.



--
Thanks,
Ghanshyam Agrawal
Contact No : +919717167192

--
You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/qZdU-CbBRAU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

--
You received this message because you are subscribed to the Google Groups "kurento" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

--
You received this message because you are subscribed to a topic in the Google Groups "kurento" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/kurento/qZdU-CbBRAU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

Octavian Naicu

unread,
Oct 23, 2017, 5:46:25 AM10/23/17
to kur...@googlegroups.com
We've struggled with this issue for the better part of 6 months earlier this year until we moved on from using WebRTC to record video (not because of this bug but because of the complex p2p connection process).

During that period we've developed a pretty complex system that took into consideration the following for setting the correct media profile (video or video+audio):
  • the availability of audio/video devices at recorder client init and just before pressing record
  • a user disconnecting existing hardware or connecting new hardware (usb webcams,mic)
  • the user clicking Deny when asked to allow access to mic/cam
  • the user sleeping/hibernating the computer with the recorder open and then waking it up and recording
  • track.readyState

We've also tracked user agents, ICE candidates and all avb. device names.

With all this work we could still not replicate or figure out why 0 kb videos were created when recording video through WebRTC while using Kurento.

Octavian Naicu,
Founder and Product Manager @ Pipe
https://addpipe.com
To unsubscribe from this group and all its topics, send an email to kurento+unsubscribe@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

Karl Sutt

unread,
Apr 11, 2018, 2:54:29 AM4/11/18
to kurento
Hi Octavian,

A small portion of our users are suffering from this very issue — the .webm file that reaches our server is empty, but the recording itself, from the user's perspective, looks OK.

While trying to find a solution to the same problem as you've described, I stumbled across the AddPipe blog post announcing the second generation HTML5 recorder. The post includes a paragraph about an issue in the recorder that has been fixed — "some videos ending up with 0kb in size". Could you explain how you achieved this?
To unsubscribe from this group and all its topics, send an email to kurento+u...@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.

Octavian Naicu

unread,
May 1, 2018, 6:15:21 AM5/1/18
to kur...@googlegroups.com
Hi Karl,

Sorry for the late reply.

We've been thoroughly researching this issue for about 6-9 months leading up to that blog post.

Its related to a bug between Chrome and the CoreAudio library of macOS where sometimes when the laptop is woken up from sleep Chrome fails to get any kind of mic data. The video subsystem is waiting for the sound data (they have to be in sync) which never comes so you end up with 0 audio and video data. There are 3 Chromium bugs (123) which track the same issue. 

In the WebRTC Update 2017 session recorded at the Kranky Geek 2017 event held at Google  in Oct 2017, Justin Uberti (Engineering lead for WebRTC in Chrome) talks in depth about mic issues on macOS and a fix that'll be shipped in Chrome 63 (on macOS 10.10 and higher). They expected this fix to solve 97% of the cases.  The mic input reliability stuff starts at about 10 minutes and 30 seconds in: https://youtu.be/PEXnbTyygi4?t=10m33s . There's more talk about changes to the audio subsystem that are coming in the next 6 months that'll make audio input on Chrome even more reliable: https://youtu.be/PEXnbTyygi4?t=15m36s .

Chrome 63 was a major improvement to the number of video we recorded with 0kb but the issue still exists albeit at a minor scale. Our 2nd gen Pipe HTML5 video recorder has Chrome 63 as a minimum requirement.

As per the session above we hope Chrome 6x will completeley solve the issue. Chrome 66 is just out and we've still had a few 0kb videos from it.

Octavian Naicu,
Founder and Product Manager @ Pipe
https://addpipe.com 
To unsubscribe from this group and all its topics, send an email to kurento+unsubscribe@googlegroups.com.

To post to this group, send email to kur...@googlegroups.com.
Visit this group at https://groups.google.com/group/kurento.
Reply all
Reply to author
Forward
0 new messages