Hone
Hone

Reputation: 11

Kurento recording file size is 0, why

Why the recording file size is 0.

-rw-r--r--  1 kurento kurento    0 May  2 02:27 recorder1.webm  
-rw-r--r--  1 kurento kurento    0 May  2 02:27 recorder2.webm  

Audio streams are as follows.

           ------>recorderEndpointA  
          |  
Peer A <--------->RtpEndpointA<==>RtpEndpointB<---------->Peer B  
                       |  
                       --->recorderEndpointB  

The procedure is as follows.
- Create mediapipeline
- Create two RtpEndpoints
- RtpEndpointA connects RtpEndpointB
- RtpEndpointB connects RtpEndpointA
- Create two RecorderEndpoints
- RtpEndpointA connects RecorderEndpointA
- RtpEndpointB connects RecorderEndpointB
- RecorderEndpointA record
- RecorderEndpointB record

As a result, talk is normal, but recording file size is 0.

The log of server is as follows.

2017-05-02 02:27:32,241406 1872 [0x00007f60cd89d700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:422 processMessage()  Message: >{"id":"7","jsonrpc":"2.0","method":"invoke","params":{"object":"ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/bec7d747-2772-49b4-8353-fe5346a15358_kurento.RtpEndpoint","operation":"connect","operationParams":{"sink":"ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/f7fa31b4-abdd-4da0-99f2-dcc590cc17fc_kurento.RtpEndpoint"},"sessionId":"7f751217-ef13-4a92-bf50-48a424bcdaba"}}  

<  

2017-05-02 02:27:32,242313 1872 [0x00007f60cd89d700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:867 connect()  Connecting ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/bec7d747-2772-49b4-8353-fe5346a15358_kurento.RtpEndpoint -> ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/f7fa31b4-abdd-4da0-99f2-dcc590cc17fc_kurento.RtpEndpoint params AUDIO default default  

2017-05-02 02:27:32,243147 1872 [0x00007f60cd89d700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:867 connect()  Connecting ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/bec7d747-2772-49b4-8353-fe5346a15358_kurento.RtpEndpoint -> ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/f7fa31b4-abdd-4da0-99f2-dcc590cc17fc_kurento.RtpEndpoint params VIDEO default default  

2017-05-02 02:27:32,244064 1872 [0x00007f60cd89d700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:867 connect()  Connecting ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/bec7d747-2772-49b4-8353-fe5346a15358_kurento.RtpEndpoint -> ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/f7fa31b4-abdd-4da0-99f2-dcc590cc17fc_kurento.RtpEndpoint params DATA default default  

2017-05-02 02:27:32,244852 1872 [0x00007f60cd89d700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:424 processMessage()  Response: >{"id":"7","jsonrpc":"2.0","result":{"sessionId":"7f751217-ef13-4a92-bf50-48a424bcdaba","value":null}}  

<  

2017-05-02 02:27:33,241751 1872 [0x00007f60cd09c700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:422 processMessage()  Message: >{"id":"8","jsonrpc":"2.0","method":"invoke","params":{"object":"ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/f7fa31b4-abdd-4da0-99f2-dcc590cc17fc_kurento.RtpEndpoint","operation":"connect","operationParams":{"sink":"ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/bec7d747-2772-49b4-8353-fe5346a15358_kurento.RtpEndpoint"},"sessionId":"7f751217-ef13-4a92-bf50-48a424bcdaba"}}  

< 

2017-05-02 02:27:33,242461 1872 [0x00007f60cd09c700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:867 connect()  Connecting ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/f7fa31b4-abdd-4da0-99f2-dcc590cc17fc_kurento.RtpEndpoint -> ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/bec7d747-2772-49b4-8353-fe5346a15358_kurento.RtpEndpoint params AUDIO default default  

2017-05-02 02:27:33,245165 1872 [0x00007f60cd09c700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:867 connect()  Connecting ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/f7fa31b4-abdd-4da0-99f2-dcc590cc17fc_kurento.RtpEndpoint -> ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/bec7d747-2772-49b4-8353-fe5346a15358_kurento.RtpEndpoint params VIDEO default default 

2017-05-02 02:27:33,246502 1872 [0x00007f60cd09c700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:867 connect()  Connecting ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/f7fa31b4-abdd-4da0-99f2-dcc590cc17fc_kurento.RtpEndpoint -> ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/bec7d747-2772-49b4-8353-fe5346a15358_kurento.RtpEndpoint params DATA default default  

2017-05-02 02:27:33,248380 1872 [0x00007f60cd09c700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:424 processMessage()  Response: >{"id":"8","jsonrpc":"2.0","result":{"sessionId":"7f751217-ef13-4a92-bf50-48a424bcdaba","value":null}}  

<  

2017-05-02 02:27:33,257375 1872 [0x00007f60a9523700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:492 mediaFlowInStateChange() <kmsrtpendpoint32>  Media Flowing IN in pad default with type audio  

2017-05-02 02:27:34,244614 1872 [0x00007f60cd89d700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:422 processMessage()  Message: >{"id":"9","jsonrpc":"2.0","method":"create","params":{"constructorParams":{"mediaPipeline":"ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline","profile":7,"stopOnEndOfStream":true,"uri":"file:///tmp/recorder1.webm"},"properties":null,"type":"RecorderEndpoint"}}  

<  

2017-05-02 02:27:34,248876 1872 [0x00007f60cd89d700]    info KurentoRecorderEndpointImpl RecorderEndpointImpl.cpp:83 RecorderEndpointImpl()  Set WEBM profile  

2017-05-02 02:27:34,249882 1872 [0x00007f60cd89d700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:424 processMessage()  Response: >{"id":"9","jsonrpc":"2.0","result":{"sessionId":"7f751217-ef13-4a92-bf50-48a424bcdaba","value":"ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/2dc7538e-f77b-44c0-90eb-4ea635298eb9_kurento.RecorderEndpoint"}}  

< 

2017-05-02 02:27:34,295687 1872 [0x00007f60a37fe700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:447 mediaFlowOutStateChange() <kmsrtpendpoint32>  Media Flowing OUT in pad default with type audio  

2017-05-02 02:27:34,297274 1872 [0x00007f60aa742700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:492 mediaFlowInStateChange() <kmsrtpendpoint33>  Media Flowing IN in pad default with type audio  

2017-05-02 02:27:35,244376 1872 [0x00007f60cd09c700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:422 processMessage()  Message: >{"id":"10","jsonrpc":"2.0","method":"create","params":{"constructorParams":{"mediaPipeline":"ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline","profile":7,"stopOnEndOfStream":true,"uri":"file:///tmp/recorder2.webm"},"properties":null,"type":"RecorderEndpoint"}}  

< 

2017-05-02 02:27:35,250939 1872 [0x00007f60cd09c700]    info KurentoRecorderEndpointImpl RecorderEndpointImpl.cpp:83 RecorderEndpointImpl()  Set WEBM profile  

2017-05-02 02:27:35,252356 1872 [0x00007f60cd09c700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:424 processMessage()  Response: >{"id":"10","jsonrpc":"2.0","result":{"sessionId":"7f751217-ef13-4a92-bf50-48a424bcdaba","value":"ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/eba7c283-34d5-43a1-8cd2-5892ecaddb53_kurento.RecorderEndpoint"}}  

< 

2017-05-02 02:27:36,244544 1872 [0x00007f60cd89d700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:422 processMessage()  Message: >{"id":"11","jsonrpc":"2.0","method":"invoke","params":{"object":"ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/bec7d747-2772-49b4-8353-fe5346a15358_kurento.RtpEndpoint","operation":"connect","operationParams":{"sink":"ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/2dc7538e-f77b-44c0-90eb-4ea635298eb9_kurento.RecorderEndpoint"},"sessionId":"7f751217-ef13-4a92-bf50-48a424bcdaba"}}  

<  

2017-05-02 02:27:36,247151 1872 [0x00007f60cd89d700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:867 connect()  Connecting ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/bec7d747-2772-49b4-8353-fe5346a15358_kurento.RtpEndpoint -> ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/2dc7538e-f77b-44c0-90eb-4ea635298eb9_kurento.RecorderEndpoint params AUDIO default default 

2017-05-02 02:27:36,247927 1872 [0x00007f60cd89d700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:867 connect()  Connecting ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/bec7d747-2772-49b4-8353-fe5346a15358_kurento.RtpEndpoint -> ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/2dc7538e-f77b-44c0-90eb-4ea635298eb9_kurento.RecorderEndpoint params VIDEO default default  

2017-05-02 02:27:36,248536 1872 [0x00007f60cd89d700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:867 connect()  Connecting ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/bec7d747-2772-49b4-8353-fe5346a15358_kurento.RtpEndpoint -> ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/2dc7538e-f77b-44c0-90eb-4ea635298eb9_kurento.RecorderEndpoint params DATA default default  

2017-05-02 02:27:36,249189 1872 [0x00007f60cd89d700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:424 processMessage()  Response: >{"id":"11","jsonrpc":"2.0","result":{"sessionId":"7f751217-ef13-4a92-bf50-48a424bcdaba","value":null}}  

<  

2017-05-02 02:27:37,244760 1872 [0x00007f60cd09c700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:422 processMessage()  Message: >{"id":"12","jsonrpc":"2.0","method":"invoke","params":{"object":"ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/f7fa31b4-abdd-4da0-99f2-dcc590cc17fc_kurento.RtpEndpoint","operation":"connect","operationParams":{"sink":"ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/eba7c283-34d5-43a1-8cd2-5892ecaddb53_kurento.RecorderEndpoint"},"sessionId":"7f751217-ef13-4a92-bf50-48a424bcdaba"}} 

<  

2017-05-02 02:27:37,245968 1872 [0x00007f60cd09c700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:867 connect()  Connecting ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/f7fa31b4-abdd-4da0-99f2-dcc590cc17fc_kurento.RtpEndpoint -> ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/eba7c283-34d5-43a1-8cd2-5892ecaddb53_kurento.RecorderEndpoint params AUDIO default default  

2017-05-02 02:27:37,246712 1872 [0x00007f60cd09c700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:867 connect()  Connecting ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/f7fa31b4-abdd-4da0-99f2-dcc590cc17fc_kurento.RtpEndpoint -> ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/eba7c283-34d5-43a1-8cd2-5892ecaddb53_kurento.RecorderEndpoint params VIDEO default default  

2017-05-02 02:27:37,247314 1872 [0x00007f60cd09c700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:867 connect()  Connecting ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/f7fa31b4-abdd-4da0-99f2-dcc590cc17fc_kurento.RtpEndpoint -> ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/eba7c283-34d5-43a1-8cd2-5892ecaddb53_kurento.RecorderEndpoint params DATA default default  

2017-05-02 02:27:37,247905 1872 [0x00007f60cd09c700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:424 processMessage()  Response: >{"id":"12","jsonrpc":"2.0","result":{"sessionId":"7f751217-ef13-4a92-bf50-48a424bcdaba","value":null}}  

<  

2017-05-02 02:27:38,245166 1872 [0x00007f60cd89d700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:422 processMessage()  Message: >{"id":"13","jsonrpc":"2.0","method":"invoke","params":{"object":"ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/2dc7538e-f77b-44c0-90eb-4ea635298eb9_kurento.RecorderEndpoint","operation":"record","sessionId":"7f751217-ef13-4a92-bf50-48a424bcdaba"}}  

< 

2017-05-02 02:27:38,303222 1872 [0x00007f60cd89d700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:424 processMessage()  Response: >{"id":"13","jsonrpc":"2.0","result":{"sessionId":"7f751217-ef13-4a92-bf50-48a424bcdaba","value":null}}  

< 

2017-05-02 02:27:38,312409 1872 [0x00007f60a07f8700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:492 mediaFlowInStateChange() <kmsrecorderendpoint28>  Media Flowing IN in pad default with type audio  

2017-05-02 02:27:39,245340 1872 [0x00007f60cd09c700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:422 processMessage()  Message: >{"id":"14","jsonrpc":"2.0","method":"invoke","params":{"object":"ea2cfde5-7904-4991-bacb-f66440ef194b_kurento.MediaPipeline/eba7c283-34d5-43a1-8cd2-5892ecaddb53_kurento.RecorderEndpoint","operation":"record","sessionId":"7f751217-ef13-4a92-bf50-48a424bcdaba"}}  

<  

2017-05-02 02:27:39,294527 1872 [0x00007f60cd09c700]   debug KurentoWebSocketTransport WebSocketTransport.cpp:424 processMessage()  Response: >{"id":"14","jsonrpc":"2.0","result":{"sessionId":"7f751217-ef13-4a92-bf50-48a424bcdaba","value":null}}  

< 

2017-05-02 02:27:39,309717 1872 [0x00007f60a0ff9700]   debug KurentoMediaElementImpl   MediaElementImpl.cpp:492 mediaFlowInStateChange() <kmsrecorderendpoint29>  Media Flowing IN in pad default with type audio  

Upvotes: 0

Views: 1075

Answers (3)

Throttlehead
Throttlehead

Reputation: 1945

I'm posting an answer here in the case anyone else winds up here wondering what's going on. It is VERY IMPORTANT that the RecorderEndpoint is aware of what media container profile that is being used. My problem was that I had audio turned off on the front end media constraints while developing. The RecorderEndpoint needs to be aware of this by you passing in the correct MediaProfileSpecType.

this.recorder = new RecorderEndpoint.Builder(pipeline, RECORDING_PATH + roomName + '_' + name + RECORDING_EXT)
  .withMediaProfile(MediaProfileSpecType.WEBM)
  .build();

Simply turning back on audio on the front end fixed it, but you can also reference code contained in the other tutorials where the Kurento team has connecting according to some sort of media constraint container logic.

Upvotes: 2

Hone
Hone

Reputation: 11

Thank you all. Kurento only as an audio media server. When I created the recordEndpointer, mediaProfile was not set. However, mediaProfile should be set to 'WEBM_AUDIO_ONLY'. Now it can work.

Upvotes: 1

octavn
octavn

Reputation: 3285

We've been using Kurento to power WebRTC video recording in Chrome at Pipe.

We've also run into the 0 byte video recordings issue. So far we've identified 2 causes:

  1. TURN/STUN protocol is blocked by some 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.
  2. User was able to start recording without interacting with Chrome's Allow/Block camera permission dialog.

Upvotes: 0

Related Questions