Prerequisites
These are MANDATORY, otherwise the issue will be automatically closed.
Issue description
- Can't recording 720P .mp4 (H264) video, recording video resolution always 640 x 480,
even change conferenceroom.js media constraints.
var constraints = {
audio: true,
video: {
mandatory: {
width: 1280,
height: 720,
framerate: {
max: 30,
min: 30,
}
}
}
};
Context
I'm trying to accomplish this:
Assuming there are 10 participants in one room, including a host, only the .mp4 (H264) video of the host will be recorded,
and audio of the host along with the audio of the other 9 participants mixed by hubport without their video,
separate and store as two individual files.
-
Application Server: Demo Project revised from Tutorial-GroupCall & focal-gstreamer-build-from-source (docker image)
- Java: 11
- Spring Boot: 2.7
- Kurento-Java-Client: 7.0.0
- Kurento Media Server: 7.0
- Ubuntu:focal (20.04)
- Gstreamer:
GStreamer Core Library version 1.16.3
- WebCam: Logitech C310 HD / OBS Studio Virtual Camera 1280 x 720 MP4
-
I pull media server image for test recording: docker pull kurento/kurento-media-server
, and setup my own media server on AWS EC2 test recording separately.
- When attempting to record in 720P resolution, I consistently encounter failures,
Both server's video resolution always 640 x 480.
-
At Fisrt, I thought was Browser or JS WebRTC API problem, use different client to call application server
- Browser: Chrome 114: JavaScripts
- Unity WebRTC: C#
-
Browser Result:
When first participant join room and room Created immediately recording
Application Server Log & Media info
4415 0x7f3a880022a0 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:689:MediaElementImpl: Configured target video bitrate for media transcoding: 6000000 bps
4415 0x7f3a880022a0 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:694:MediaElementImpl: Configured minimum video bitrate for media transcoding: 2000000 bps
4415 0x7f3a880022a0 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:699:MediaElementImpl: Configured maximum video bitrate for media transcoding: 6000000 bps
4415 0x7f3a64001b60 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:526:mediaFlowOutStateChanged:<kmshubport0> MediaFlowOutStateChanged: FLOWING, pad: 'default', type: 'audio'
4415 0x7f3a84002240 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:689:MediaElementImpl: Configured target video bitrate for media transcoding: 6000000 bps
4415 0x7f3a84002240 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:694:MediaElementImpl: Configured minimum video bitrate for media transcoding: 2000000 bps
4415 0x7f3a84002240 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:699:MediaElementImpl: Configured maximum video bitrate for media transcoding: 6000000 bps
4415 0x7f3a84002240 DEBUG KurentoBaseRtpEndpointImpl BaseRtpEndpointImpl.cpp:114:BaseRtpEndpointImpl: No predefined RTP MTU found in config; using default
4415 0x7f3a84002240 INFO KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:160:generateDefaultCertificates: Unable to load the RSA certificate from file. Using the default certificate.
4415 0x7f3a84002240 INFO KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:169:generateDefaultCertificates: Unable to load the ECDSA certificate from file. Using the default certificate.
4415 0x7f3a84002240 INFO KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:572:WebRtcEndpointImpl: No QOS-DSCP value set
4415 0x7f3a84002240 INFO KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:112:remove_not_supported_codecs_from_array:<kmswebrtcendpoint0> Removing not supported codec 'AMR/8000'
4415 0x7f3a84002240 DEBUG KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:599:WebRtcEndpointImpl: No predefined external IPv4 address found in config; you can set one or default to STUN automatic discovery
4415 0x7f3a84002240 DEBUG KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:610:WebRtcEndpointImpl: No predefined external IPv6 address found in config; you can set one or default to STUN automatic discovery
4415 0x7f3a84002240 DEBUG KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:621:WebRtcEndpointImpl: No predefined network interfaces found in config; you can set one or default to ICE automatic discovery
4415 0x7f3a84002240 DEBUG KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:631:WebRtcEndpointImpl: ICE-TCP option not found in config; you can set it or default to 1 (TRUE)
4415 0x7f3a84002240 INFO KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:645:WebRtcEndpointImpl: Predefined STUN server: stun.l.google.com:19302:3478
4415 0x7f3a84002240 DEBUG KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:667:WebRtcEndpointImpl: TURN relay server not found in config
4415 0x55d40c833c30 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:689:MediaElementImpl: Configured target video bitrate for media transcoding: 6000000 bps
4415 0x55d40c833c30 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:694:MediaElementImpl: Configured minimum video bitrate for media transcoding: 2000000 bps
4415 0x55d40c833c30 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:699:MediaElementImpl: Configured maximum video bitrate for media transcoding: 6000000 bps
4415 0x7f3aa0002320 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:1004:connect: Connecting 7118bdbf-de57-485d-9242-d5e8e22ad5b6_kurento.MediaPipeline/d15fb059-367d-403d-bd7f-7b5d5b336a20_kurento.WebRtcEndpoint -> 7118bdbf-de57-485d-9242-d5e8e22ad5b6_kurento.MediaPipeline/6ab8de7d-80ee-4f56-a6e8-795062b1e06c_kurento.Composite/a846c979-8972-4f6e-ab90-bae60b993739_kurento.HubPort params AUDIO default default
4415 0x7f3aa8001d80 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:689:MediaElementImpl: Configured target video bitrate for media transcoding: 6000000 bps
4415 0x7f3aa8001d80 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:694:MediaElementImpl: Configured minimum video bitrate for media transcoding: 2000000 bps
4415 0x7f3aa8001d80 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:699:MediaElementImpl: Configured maximum video bitrate for media transcoding: 6000000 bps
4415 0x7f3a60008f00 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:526:mediaFlowOutStateChanged:<kmshubport0> MediaFlowOutStateChanged: FLOWING, pad: 'default', type: 'video'
4415 0x7f3aa8001d80 INFO KurentoRecorderEndpointImpl RecorderEndpointImpl.cpp:133:RecorderEndpointImpl: Set MP4 AUDIO ONLY profile
4415 0x7f3aa800a4c0 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:526:mediaFlowOutStateChanged:<kmshubport1> MediaFlowOutStateChanged: FLOWING, pad: 'default', type: 'audio'
4415 0x7f3aa800a520 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:526:mediaFlowOutStateChanged:<kmshubport1> MediaFlowOutStateChanged: FLOWING, pad: 'default', type: 'video'
4415 0x7f3a90001400 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:689:MediaElementImpl: Configured target video bitrate for media transcoding: 6000000 bps
4415 0x7f3a90001400 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:694:MediaElementImpl: Configured minimum video bitrate for media transcoding: 2000000 bps
4415 0x7f3a90001400 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:699:MediaElementImpl: Configured maximum video bitrate for media transcoding: 6000000 bps
4415 0x7f3a90001400 INFO KurentoRecorderEndpointImpl RecorderEndpointImpl.cpp:127:RecorderEndpointImpl: Set MP4 VIDEO ONLY profile
4415 0x7f3aa40022c0 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:1004:connect: Connecting 7118bdbf-de57-485d-9242-d5e8e22ad5b6_kurento.MediaPipeline/6ab8de7d-80ee-4f56-a6e8-795062b1e06c_kurento.Composite/6157ca5c-8087-4ef9-86b0-78cfcd3a66be_kurento.HubPort -> 7118bdbf-de57-485d-9242-d5e8e22ad5b6_kurento.MediaPipeline/9d6741dd-6e6d-40cf-ba91-093f8bed4bc4_kurento.RecorderEndpoint params AUDIO default default
4415 0x7f3aa40022c0 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:1004:connect: Connecting 7118bdbf-de57-485d-9242-d5e8e22ad5b6_kurento.MediaPipeline/6ab8de7d-80ee-4f56-a6e8-795062b1e06c_kurento.Composite/6157ca5c-8087-4ef9-86b0-78cfcd3a66be_kurento.HubPort -> 7118bdbf-de57-485d-9242-d5e8e22ad5b6_kurento.MediaPipeline/9d6741dd-6e6d-40cf-ba91-093f8bed4bc4_kurento.RecorderEndpoint params VIDEO default default
4415 0x7f3aa40022c0 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:1004:connect: Connecting 7118bdbf-de57-485d-9242-d5e8e22ad5b6_kurento.MediaPipeline/6ab8de7d-80ee-4f56-a6e8-795062b1e06c_kurento.Composite/6157ca5c-8087-4ef9-86b0-78cfcd3a66be_kurento.HubPort -> 7118bdbf-de57-485d-9242-d5e8e22ad5b6_kurento.MediaPipeline/9d6741dd-6e6d-40cf-ba91-093f8bed4bc4_kurento.RecorderEndpoint params DATA default default
4415 0x7f3a90002360 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:1004:connect: Connecting 7118bdbf-de57-485d-9242-d5e8e22ad5b6_kurento.MediaPipeline/d15fb059-367d-403d-bd7f-7b5d5b336a20_kurento.WebRtcEndpoint -> 7118bdbf-de57-485d-9242-d5e8e22ad5b6_kurento.MediaPipeline/2ceb0e96-3795-437b-b9d2-dc69d363382a_kurento.RecorderEndpoint params AUDIO default default
4415 0x7f3a90002360 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:1004:connect: Connecting 7118bdbf-de57-485d-9242-d5e8e22ad5b6_kurento.MediaPipeline/d15fb059-367d-403d-bd7f-7b5d5b336a20_kurento.WebRtcEndpoint -> 7118bdbf-de57-485d-9242-d5e8e22ad5b6_kurento.MediaPipeline/2ceb0e96-3795-437b-b9d2-dc69d363382a_kurento.RecorderEndpoint params VIDEO default default
4415 0x7f3a90002360 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:1004:connect: Connecting 7118bdbf-de57-485d-9242-d5e8e22ad5b6_kurento.MediaPipeline/d15fb059-367d-403d-bd7f-7b5d5b336a20_kurento.WebRtcEndpoint -> 7118bdbf-de57-485d-9242-d5e8e22ad5b6_kurento.MediaPipeline/2ceb0e96-3795-437b-b9d2-dc69d363382a_kurento.RecorderEndpoint params DATA default default
4415 0x7f3a90001400 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:596:onMediaTranscodingStateChanged:<kmshubport0> MediaTranscodingStateChanged: TRANSCODING, bin: 'kmshubport0_kmsagnosticbin2-2', type: 'audio'
4415 0x7f3a64001b60 WARN audio-resampler audio-resampler.c:274:convert_taps_gint16_c: can't find exact taps
4415 0x7f3a90005d20 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:561:mediaFlowInStateChanged:<kmsrecorderendpoint0> MediaFlowInStateChanged: FLOWING, pad: 'default', type: 'audio'
4415 0x7f3a90005c60 WARN qtmux gstqtmux.c:2981:gst_qt_mux_start_file:<mp4mux0> Robust muxing requires reserved-moov-update-period to be set
4415 0x7f3a10005ea0 DEBUG KurentoRecorderEndpointImpl RecorderEndpointImpl.cpp:199:onStateChanged:<kmsrecorderendpoint0> State changed to Recording
4415 0x7f3a10005ea0 INFO KurentoWorkerPool WorkerPool.cpp:67:WorkerPool: Worker thread pool size: 12
4415 0x7f3a7c00e240 DEBUG KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:293:newSelectedPairFull:<kmswebrtcendpoint0> New candidate pair selected, local: 'candidate:4 1 UDP 1847591167 192.168.1.191 57344 typ prflx raddr 172.17.0.2 rport 6667', remote: 'candidate:874158666 1 UDP 2122260223 192.168.1.191 61620 typ host', stream_id: '1', component_id: 1
4415 0x7f3aa800a5e0 DEBUG KurentoBaseRtpEndpointImpl BaseRtpEndpointImpl.cpp:202:updateConnectionState:<kmswebrtcendpoint0> ConnectionState changed to 'CONNECTED'
4415 0x7f3a980871e0 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:526:mediaFlowOutStateChanged:<kmswebrtcendpoint0> MediaFlowOutStateChanged: FLOWING, pad: 'default', type: 'audio'
4415 0x7f3a980871e0 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:596:onMediaTranscodingStateChanged:<kmswebrtcendpoint0> MediaTranscodingStateChanged: TRANSCODING, bin: 'kmswebrtcendpoint0_kmsagnosticbin2-5', type: 'audio'
4415 0x7f3a980871e0 WARN kmsutils kmsutils.c:1452:kms_utils_depayloader_adjust_pts_out:<rtpopusdepay0> Fix PTS not strictly increasing, last: 0:00:02.796658336, current: 0:00:02.796658336, fixed = last + 1: 0:00:02.797658336
4415 0x7f39e000ac60 WARN audio-resampler audio-resampler.c:274:convert_taps_gint16_c: can't find exact taps
4415 0x7f39dc010c00 WARN audio-resampler audio-resampler.c:274:convert_taps_gint16_c: can't find exact taps
4415 0x7f39e000ac60 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:561:mediaFlowInStateChanged:<kmshubport1> MediaFlowInStateChanged: FLOWING, pad: 'default', type: 'audio'
4415 0x7f3a98087360 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:601:onMediaTranscodingStateChanged:<kmswebrtcendpoint0> MediaTranscodingStateChanged: NOT TRANSCODING, bin: 'kmswebrtcendpoint0_kmsagnosticbin2-6', type: 'video'
4415 0x7f3a98087360 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:526:mediaFlowOutStateChanged:<kmswebrtcendpoint0> MediaFlowOutStateChanged: FLOWING, pad: 'default', type: 'video'
4415 0x7f39d800a580 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:561:mediaFlowInStateChanged:<kmsrecorderendpoint1> MediaFlowInStateChanged: FLOWING, pad: 'default', type: 'video'
4415 0x7f3aa0008cc0 WARN qtmux gstqtmux.c:2981:gst_qt_mux_start_file:<mp4mux1> Robust muxing requires reserved-moov-update-period to be set
4415 0x7f39c8004ea0 DEBUG KurentoRecorderEndpointImpl RecorderEndpointImpl.cpp:199:onStateChanged:<kmsrecorderendpoint1> State changed to Recording
4415 0x7f3aa800a5e0 DEBUG KurentoBaseRtpEndpointImpl BaseRtpEndpointImpl.cpp:165:updateMediaState:<kmswebrtcendpoint0> MediaState changed to 'CONNECTED'
4415 0x7f3a7c001d80 DEBUG KurentoMediaSet MediaSet.cpp:121:doGarbageCollection: Running garbage collector
4415 0x7f3a84002240 DEBUG KurentoServerMethods ServerMethods.cpp:815:ping: WebSocket Ping/Pong with sessionId 37fd2f63-f344-407a-9572-b47cece23923
General
Format : MPEG-4
Format profile : Base Media / Version 2
Codec ID : mp42 (mp42/mp41/isom/iso2)
File size : 121 MiB
Duration : 10 min 4 s
Overall bit rate : 1 683 kb/s
Frame rate : 29.708 FPS
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Constrained Baseline@L3
Format settings : 1 Ref Frames
Format settings, CABAC : No
Format settings, Reference frames : 1 frame
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 10 min 4 s
Bit rate : 1 681 kb/s
Width : 640 pixels
Height : 480 pixels
Display aspect ratio : 4:3
Frame rate mode : Variable
Frame rate : 29.708 FPS
Minimum frame rate : 12.500 FPS
Maximum frame rate : 33.223 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.184
Stream size : 121 MiB (100%)
Codec configuration box : avcC
- Unity Result:
Media Constraints set over 480P, then call application server, media server will occur errors.
Application Server Error Message:
INFO 26856 --- [nio-8443-exec-3] o.k.t.helloworld.HelloWorldRecHandler : Msg = {"sdpOffer":"v=0\r\no=- 7534497441325278218 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE 0 1\r\na=extmap-allow-mixed\r\na=msid-semantic: WMS e23689bd-a398-45e5-983c-61500e37ef58\r\nm=audio 9 UDP/TLS/RTP/SAVPF 96 97 98 99 102 103 104 9 0 8 100 101 107 108 109 114 106 105 13 110 112 113 126\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:eE2Z\r\na=ice-pwd:EWlMKIfJRI3O8aRCPsGkRL/J\r\na=ice-options:trickle\r\na=fingerprint:sha-256 0F:EF:EE:49:1D:0D:CF:E7:1D:93:23:14:7C:B5:5A:48:C4:E8:F0:B5:F5:53:58:A7:B1:77:13:D9:51:D1:E1:57\r\na=setup:actpass\r\na=mid:0\r\na=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level\r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=sendonly\r\na=msid:e23689bd-a398-45e5-983c-61500e37ef58 40b0900d-5984-4f21-9760-e92fae3dadec\r\na=rtcp-mux\r\na=rtpmap:96 opus/48000/2\r\na=rtcp-fb:96 transport-cc\r\na=fmtp:96 minptime=10;sprop-stereo=1;stereo=1;useinbandfec=1\r\na=rtpmap:97 red/48000/2\r\na=fmtp:97 96/96\r\na=rtpmap:98 multiopus/48000/6\r\na=fmtp:98 channel_mapping=0,4,1,2,3,5;coupled_streams=2;minptime=10;num_streams=4;useinbandfec=1\r\na=rtpmap:99 multiopus/48000/8\r\na=fmtp:99 channel_mapping=0,6,1,2,3,4,5,7;coupled_streams=3;minptime=10;num_streams=5;useinbandfec=1\r\na=rtpmap:102 ILBC/8000\r\na=rtpmap:103 ISAC/16000\r\na=rtpmap:104 ISAC/32000\r\na=rtpmap:9 G722/8000\r\na=rtpmap:0 PCMU/8000\r\na=rtpmap:8 PCMA/8000\r\na=rtpmap:100 L16/8000\r\na=rtpmap:101 L16/16000\r\na=rtpmap:107 L16/32000\r\na=rtpmap:108 L16/8000/2\r\na=rtpmap:109 L16/16000/2\r\na=rtpmap:114 L16/32000/2\r\na=rtpmap:106 CN/32000\r\na=rtpmap:105 CN/16000\r\na=rtpmap:13 CN/8000\r\na=rtpmap:110 telephone-event/48000\r\na=rtpmap:112 telephone-event/32000\r\na=rtpmap:113 telephone-event/16000\r\na=rtpmap:126 telephone-event/8000\r\na=ssrc:1764116073 cname:7BLBakQZ05pz0K96\r\na=ssrc:1764116073 msid:e23689bd-a398-45e5-983c-61500e37ef58 40b0900d-5984-4f21-9760-e92fae3dadec\r\nm=video 9 UDP/TLS/RTP/SAVPF 123 122 121 120\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:eE2Z\r\na=ice-pwd:EWlMKIfJRI3O8aRCPsGkRL/J\r\na=ice-options:trickle\r\na=fingerprint:sha-256 0F:EF:EE:49:1D:0D:CF:E7:1D:93:23:14:7C:B5:5A:48:C4:E8:F0:B5:F5:53:58:A7:B1:77:13:D9:51:D1:E1:57\r\na=setup:actpass\r\na=mid:1\r\na=extmap:14 urn:ietf:params:rtp-hdrext:toffset\r\na=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time\r\na=extmap:13 urn:3gpp:video-orientation\r\na=extmap:3 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01\r\na=extmap:5 http://www.webrtc.org/experiments/rtp-hdrext/playout-delay\r\na=extmap:6 http://www.webrtc.org/experiments/rtp-hdrext/video-content-type\r\na=extmap:7 http://www.webrtc.org/experiments/rtp-hdrext/video-timing\r\na=extmap:8 http://www.webrtc.org/experiments/rtp-hdrext/color-space\r\na=extmap:4 urn:ietf:params:rtp-hdrext:sdes:mid\r\na=extmap:10 urn:ietf:params:rtp-hdrext:sdes:rtp-stream-id\r\na=extmap:11 urn:ietf:params:rtp-hdrext:sdes:repaired-rtp-stream-id\r\na=sendonly\r\na=msid:e23689bd-a398-45e5-983c-61500e37ef58 435f9231-b06e-430a-9c89-4253a07dd83c\r\na=rtcp-mux\r\na=rtcp-rsize\r\na=rtpmap:123 H264/90000\r\na=rtcp-fb:123 goog-remb\r\na=rtcp-fb:123 transport-cc\r\na=rtcp-fb:123 ccm fir\r\na=rtcp-fb:123 nack\r\na=rtcp-fb:123 nack pli\r\na=fmtp:123 implementation_name=NvCodec;level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e033\r\na=rtpmap:122 H264/90000\r\na=rtcp-fb:122 goog-remb\r\na=rtcp-fb:122 transport-cc\r\na=rtcp-fb:122 ccm fir\r\na=rtcp-fb:122 nack\r\na=rtcp-fb:122 nack pli\r\na=fmtp:122 implementation_name=NvCodec;level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=420033\r\na=rtpmap:121 H264/90000\r\na=rtcp-fb:121 goog-remb\r\na=rtcp-fb:121 transport-cc\r\na=rtcp-fb:121 ccm fir\r\na=rtcp-fb:121 nack\r\na=rtcp-fb:121 nack pli\r\na=fmtp:121 implementation_name=NvCodec;level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640033\r\na=rtpmap:120 H264/90000\r\na=rtcp-fb:120 goog-remb\r\na=rtcp-fb:120 transport-cc\r\na=rtcp-fb:120 ccm fir\r\na=rtcp-fb:120 nack\r\na=rtcp-fb:120 nack pli\r\na=fmtp:120 implementation_name=NvCodec;level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0033\r\na=ssrc:2589173544 cname:7BLBakQZ05pz0K96\r\na=ssrc:2589173544 msid:e23689bd-a398-45e5-983c-61500e37ef58 435f9231-b06e-430a-9c89-4253a07dd83c\r\n","mode":"both","id":"start"}
2023-07-18 17:52:15.108 INFO 26856 --- [nio-8443-exec-3] o.k.t.helloworld.HelloWorldRecHandler : Answer = v=0
o=- 3898662735 3898662735 IN IP4 0.0.0.0
s=Kurento Media Server
c=IN IP4 0.0.0.0
t=0 0
a=extmap-allow-mixed
a=msid-semantic: WMS e23689bd-a398-45e5-983c-61500e37ef58
a=group:BUNDLE 0 1
m=audio 1 UDP/TLS/RTP/SAVPF 96 0
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=recvonly
a=mid:0
a=rtcp:9 IN IP4 0.0.0.0
a=rtpmap:96 opus/48000/2
a=rtpmap:0 PCMU/8000
a=setup:active
a=rtcp-mux
a=fmtp:96 minptime=10;sprop-stereo=1;stereo=1;useinbandfec=1
a=ssrc:463513865 cname:user2910986067@host-fc420bb3
a=ice-ufrag:zi4s
a=ice-pwd:lrJN7V1sNGZBwVdQQjGaKQ
a=fingerprint:sha-256 C3:8F:8C:12:C6:AA:11:ED:2E:24:A4:86:35:56:04:32:94:83:26:7B:40:8B:13:69:8B:E8:2F:2C:CA:2F:9A:E5
m=video 1 UDP/TLS/RTP/SAVPF 123 122 121 120
a=extmap:2 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
a=recvonly
a=mid:1
a=rtcp:9 IN IP4 0.0.0.0
a=rtpmap:123 H264/90000
a=rtpmap:122 H264/90000
a=rtpmap:121 H264/90000
a=rtpmap:120 H264/90000
a=rtcp-fb:123 goog-remb
a=rtcp-fb:123 ccm fir
a=rtcp-fb:123 nack
a=rtcp-fb:123 nack pli
a=rtcp-fb:122 goog-remb
a=rtcp-fb:122 ccm fir
a=rtcp-fb:122 nack
a=rtcp-fb:122 nack pli
a=rtcp-fb:121 goog-remb
a=rtcp-fb:121 ccm fir
a=rtcp-fb:121 nack
a=rtcp-fb:121 nack pli
a=rtcp-fb:120 goog-remb
a=rtcp-fb:120 ccm fir
a=rtcp-fb:120 nack
a=rtcp-fb:120 nack pli
a=setup:active
a=rtcp-mux
a=fmtp:123 implementation_name=NvCodec;level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e033
a=fmtp:122 implementation_name=NvCodec;level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=420033
a=fmtp:121 implementation_name=NvCodec;level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640033
a=fmtp:120 implementation_name=NvCodec;level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d0033
a=ssrc:3347471582 cname:user2910986067@host-fc420bb3
a=ice-ufrag:zi4s
a=ice-pwd:lrJN7V1sNGZBwVdQQjGaKQ
a=fingerprint:sha-256 C3:8F:8C:12:C6:AA:11:ED:2E:24:A4:86:35:56:04:32:94:83:26:7B:40:8B:13:69:8B:E8:2F:2C:CA:2F:9A:E5
ERROR 26856 --- [EventExec-e2-t7] o.k.t.helloworld.HelloWorldRecHandler : [RecorderEndpoint::ErrorEvent] Error code 1: 'STREAM_ERROR_FAILED', source: d9431e68-3a83-46e3-b50b-ecfcde68d2e3_kurento.MediaPipeline/640aeaa9-a655-4066-b5c9-f6103d819010_kurento.RecorderEndpoint, timestamp: 1689673935353, tags: [], description: Error code 1: Internal data stream error., source: kmsrecorderendpoint2, element: kmsrecorderendpoint2, debug info: gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline4/GstAppSrc:videoSrc:
streaming stopped, reason not-negotiated (-4)
632 0x7fe1d8002240 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:689:MediaElementImpl: Configured target video bitrate for media transcoding: 6000000 bps
632 0x7fe1d8002240 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:694:MediaElementImpl: Configured minimum video bitrate for media transcoding: 2000000 bps
632 0x7fe1d8002240 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:699:MediaElementImpl: Configured maximum video bitrate for media transcoding: 6000000 bps
632 0x7fe1d8002240 DEBUG KurentoBaseRtpEndpointImpl BaseRtpEndpointImpl.cpp:114:BaseRtpEndpointImpl: No predefined RTP MTU found in config; using default
632 0x7fe1d8002240 INFO KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:572:WebRtcEndpointImpl: No QOS-DSCP value set
632 0x7fe1d8002240 INFO KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:112:remove_not_supported_codecs_from_array:<kmswebrtcendpoint1> Removing not supported codec 'AMR/8000'
632 0x7fe1d8002240 DEBUG KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:599:WebRtcEndpointImpl: No predefined external IPv4 address found in config; you can set one or default to STUN automatic discovery
632 0x7fe1d8002240 DEBUG KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:610:WebRtcEndpointImpl: No predefined external IPv6 address found in config; you can set one or default to STUN automatic discovery
632 0x7fe1d8002240 DEBUG KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:621:WebRtcEndpointImpl: No predefined network interfaces found in config; you can set one or default to ICE automatic discovery
632 0x7fe1d8002240 DEBUG KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:631:WebRtcEndpointImpl: ICE-TCP option not found in config; you can set it or default to 1 (TRUE)
632 0x7fe1d8002240 INFO KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:645:WebRtcEndpointImpl: Predefined STUN server: stun.l.google.com:19302:3478
632 0x7fe1d8002240 DEBUG KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:667:WebRtcEndpointImpl: TURN relay server not found in config
632 0x55c84ddb6640 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:689:MediaElementImpl: Configured target video bitrate for media transcoding: 6000000 bps
632 0x55c84ddb6640 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:694:MediaElementImpl: Configured minimum video bitrate for media transcoding: 2000000 bps
632 0x55c84ddb6640 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:699:MediaElementImpl: Configured maximum video bitrate for media transcoding: 6000000 bps
632 0x55c84ddb6640 INFO KurentoRecorderEndpointImpl RecorderEndpointImpl.cpp:92:RecorderEndpointImpl: Set MP4 profile
632 0x7fe1dc001400 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:1004:connect: Connecting d9431e68-3a83-46e3-b50b-ecfcde68d2e3_kurento.MediaPipeline/28f7702f-e53f-4e8d-9fe3-00237a07ecca_kurento.WebRtcEndpoint -> d9431e68-3a83-46e3-b50b-ecfcde68d2e3_kurento.MediaPipeline/640aeaa9-a655-4066-b5c9-f6103d819010_kurento.RecorderEndpoint params AUDIO default default
632 0x7fe1e0002300 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:1004:connect: Connecting d9431e68-3a83-46e3-b50b-ecfcde68d2e3_kurento.MediaPipeline/28f7702f-e53f-4e8d-9fe3-00237a07ecca_kurento.WebRtcEndpoint -> d9431e68-3a83-46e3-b50b-ecfcde68d2e3_kurento.MediaPipeline/640aeaa9-a655-4066-b5c9-f6103d819010_kurento.RecorderEndpoint params VIDEO default default
632 0x7fe1d806ab60 DEBUG KurentoWebRtcEndpointImpl WebRtcEndpointImpl.cpp:293:newSelectedPairFull:<kmswebrtcendpoint1> New candidate pair selected, local: 'candidate:4 1 TCP 935330047 192.168.1.191 3080 typ prflx raddr 172.17.0.2 rport 46075 tcptype active', remote: 'candidate:418784936 1 TCP 1518280447 192.168.1.155 63259 typ host tcptype passive', stream_id: '1', component_id: 1
632 0x7fe1b80088c0 DEBUG KurentoBaseRtpEndpointImpl BaseRtpEndpointImpl.cpp:202:updateConnectionState:<kmswebrtcendpoint1> ConnectionState changed to 'CONNECTED'
632 0x7fe1b8008b60 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:526:mediaFlowOutStateChanged:<kmswebrtcendpoint1> MediaFlowOutStateChanged: FLOWING, pad: 'default', type: 'audio'
632 0x7fe1b8008b60 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:596:onMediaTranscodingStateChanged:<kmswebrtcendpoint1> MediaTranscodingStateChanged: TRANSCODING, bin: 'kmswebrtcendpoint1_kmsagnosticbin2-8', type: 'audio'
632 0x7fe1b8008b60 WARN kmsutils kmsutils.c:1452:kms_utils_depayloader_adjust_pts_out:<rtpopusdepay1> Fix PTS not strictly increasing, last: 0:00:00.259455791, current: 0:00:00.259455791, fixed = last + 1: 0:00:00.260455791
632 0x7fe1b8008b60 WARN kmsutils kmsutils.c:1452:kms_utils_depayloader_adjust_pts_out:<rtpopusdepay1> Fix PTS not strictly increasing, last: 0:00:00.260455791, current: 0:00:00.259455791, fixed = last + 1: 0:00:00.261455791
632 0x7fe1b8008b60 WARN kmsutils kmsutils.c:1452:kms_utils_depayloader_adjust_pts_out:<rtpopusdepay1> Fix PTS not strictly increasing, last: 0:00:00.261455791, current: 0:00:00.259455791, fixed = last + 1: 0:00:00.262455791
632 0x7fe1b8008b60 WARN kmsutils kmsutils.c:1452:kms_utils_depayloader_adjust_pts_out:<rtpopusdepay1> Fix PTS not strictly increasing, last: 0:00:00.262455791, current: 0:00:00.259455791, fixed = last + 1: 0:00:00.263455791
632 0x7fe1b8008b60 WARN kmsutils kmsutils.c:1452:kms_utils_depayloader_adjust_pts_out:<rtpopusdepay1> Fix PTS not strictly increasing, last: 0:00:00.263455791, current: 0:00:00.259455791, fixed = last + 1: 0:00:00.264455791
632 0x7fe1b8008b60 WARN audio-resampler audio-resampler.c:274:convert_taps_gint16_c: can't find exact taps
632 0x7fe11c004360 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:601:onMediaTranscodingStateChanged:<kmswebrtcendpoint1> MediaTranscodingStateChanged: NOT TRANSCODING, bin: 'kmswebrtcendpoint1_kmsagnosticbin2-9', type: 'video'
632 0x7fe11c004360 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:526:mediaFlowOutStateChanged:<kmswebrtcendpoint1> MediaFlowOutStateChanged: FLOWING, pad: 'default', type: 'video'
632 0x7fe17400ac60 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:561:mediaFlowInStateChanged:<kmsrecorderendpoint2> MediaFlowInStateChanged: FLOWING, pad: 'default', type: 'video'
632 0x7fe1a0010000 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:561:mediaFlowInStateChanged:<kmsrecorderendpoint2> MediaFlowInStateChanged: FLOWING, pad: 'default', type: 'audio'
632 0x7fe1e00088c0 WARN qtmux gstqtmux.c:2981:gst_qt_mux_start_file:<mp4mux2> Robust muxing requires reserved-moov-update-period to be set
632 0x7fe164005580 DEBUG KurentoRecorderEndpointImpl RecorderEndpointImpl.cpp:199:onStateChanged:<kmsrecorderendpoint2> State changed to Recording
632 0x7fe1e0008920 WARN qtmux gstqtmux.c:5118:gst_qt_mux_can_renegotiate:<mp4mux2> pad video_0 refused renegotiation to video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)0142c033ffe100196742c033959005005bb01100000303e80001ccf08da088464801000468cb8f20, level=(string)5.1, profile=(string)constrained-baseline, pixel-aspect-ratio=(fraction)1/1, width=(int)1280, height=(int)720, framerate=(fraction)0/1, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true
632 0x7fe1e0008920 WARN qtmux gstqtmux.c:5118:gst_qt_mux_can_renegotiate:<mp4mux2> pad video_0 refused renegotiation to video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)0142c033ffe100196742c033959005005bb01100000303e80001ccf08da088464801000468cb8f20, level=(string)5.1, profile=(string)constrained-baseline, pixel-aspect-ratio=(fraction)1/1, width=(int)1280, height=(int)720, framerate=(fraction)0/1, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true
632 0x7fe1e0008920 WARN basesrc gstbasesrc.c:3072:gst_base_src_loop:<videoSrc> error: Internal data stream error.
632 0x7fe1e0008920 WARN basesrc gstbasesrc.c:3072:gst_base_src_loop:<videoSrc> error: streaming stopped, reason not-negotiated (-4)
632 0x7fe1e0008920 WARN qtmux gstqtmux.c:5118:gst_qt_mux_can_renegotiate:<mp4mux2> pad video_0 refused renegotiation to video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)0142c033ffe100196742c033959005005bb01100000303e80001ccf08da088464801000468cb8f20, level=(string)5.1, profile=(string)constrained-baseline, pixel-aspect-ratio=(fraction)1/1, width=(int)1280, height=(int)720, framerate=(fraction)0/1, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true
632 0x7fe1e0008920 WARN qtmux gstqtmux.c:5118:gst_qt_mux_can_renegotiate:<mp4mux2> pad video_0 refused renegotiation to video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)0142c033ffe100196742c033959005005bb01100000303e80001ccf08da088464801000468cb8f20, level=(string)5.1, profile=(string)constrained-baseline, pixel-aspect-ratio=(fraction)1/1, width=(int)1280, height=(int)720, framerate=(fraction)0/1, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true
632 0x55c84ddb6150 ERROR KurentoMediaElementImpl MediaElementImpl.cpp:456:processBusMessage:<kmsrecorderendpoint2> Error code 1: Internal data stream error., source: kmsrecorderendpoint2, element: kmsrecorderendpoint2, debug info: gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline4/GstAppSrc:videoSrc:
streaming stopped, reason not-negotiated (-4)
632 0x7fe1e0008920 WARN qtmux gstqtmux.c:5118:gst_qt_mux_can_renegotiate:<mp4mux2> pad video_0 refused renegotiation to video/x-h264, stream-format=(string)avc, alignment=(string)au, codec_data=(buffer)0142c033ffe100196742c033959005005bb01100000303e80001ccf08da088464801000468cb8f20, level=(string)5.1, profile=(string)constrained-baseline, pixel-aspect-ratio=(fraction)1/1, width=(int)1280, height=(int)720, framerate=(fraction)0/1, interlace-mode=(string)progressive, chroma-format=(string)4:2:0, bit-depth-luma=(uint)8, bit-depth-chroma=(uint)8, parsed=(boolean)true
632 0x7fe1b80088c0 DEBUG KurentoBaseRtpEndpointImpl BaseRtpEndpointImpl.cpp:165:updateMediaState:<kmswebrtcendpoint1> MediaState changed to 'CONNECTED'
632 0x7fe1dc05a800 DEBUG KurentoMediaSet MediaSet.cpp:121:doGarbageCollection: Running garbage collector
632 0x7fe1640055e0 WARN recorderendpoint kmsrecorderendpoint.c:1346:kms_recorder_endpoint_on_eos:<kmsrecorderendpoint2> Releasing pending pads
632 0x7fe1640055e0 DEBUG KurentoRecorderEndpointImpl RecorderEndpointImpl.cpp:186:onStateChanged:<kmsrecorderendpoint2> State changed to Stopped
632 0x7fe138067210 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:1133:disconnect: Disconnecting d9431e68-3a83-46e3-b50b-ecfcde68d2e3_kurento.MediaPipeline/28f7702f-e53f-4e8d-9fe3-00237a07ecca_kurento.WebRtcEndpoint - d9431e68-3a83-46e3-b50b-ecfcde68d2e3_kurento.MediaPipeline/640aeaa9-a655-4066-b5c9-f6103d819010_kurento.RecorderEndpoint params AUDIO default default
632 0x7fe138067210 DEBUG KurentoMediaElementImpl MediaElementImpl.cpp:1133:disconnect: Disconnecting d9431e68-3a83-46e3-b50b-ecfcde68d2e3_kurento.MediaPipeline/28f7702f-e53f-4e8d-9fe3-00237a07ecca_kurento.WebRtcEndpoint - d9431e68-3a83-46e3-b50b-ecfcde68d2e3_kurento.MediaPipeline/640aeaa9-a655-4066-b5c9-f6103d819010_kurento.RecorderEndpoint params VIDEO default default
632 0x7fe128061980 DEBUG KurentoMediaSet MediaSet.cpp:463:async_delete: Destroying WebRtcEndpoint -> d9431e68-3a83-46e3-b50b-ecfcde68d2e3_kurento.MediaPipeline/28f7702f-e53f-4e8d-9fe3-00237a07ecca_kurento.WebRtcEndpoint
632 0x7fe15c00d590 DEBUG KurentoMediaSet MediaSet.cpp:463:async_delete: Destroying RecorderEndpoint -> d9431e68-3a83-46e3-b50b-ecfcde68d2e3_kurento.MediaPipeline/640aeaa9-a655-4066-b5c9-f6103d819010_kurento.RecorderEndpoint
632 0x7fe128061980 DEBUG KurentoMediaSet MediaSet.cpp:463:async_delete: Destroying MediaPipeline -> d9431e68-3a83-46e3-b50b-ecfcde68d2e3_kurento.MediaPipeline
- Build my own docker image for Upgrade GStreamer Core Library Version to 1.20 / 1.22 Only:
With this approach, it's challenging for me, especially I'm not familiar C programming language and Linux.
I'm unsure if it will work or not, but I give it a try.
However, still unable to recording and identify the root cause of the issue.
with 1.20 / 1.22, Group-Call, media server same Log info:
632 0x7fb6a0002330 WARN GST_ELEMENT_FACTORY gstelementfactory.c:701:gst_element_factory_make_with_properties: no such element factory "compositemixer"!
632 0x7fb6a0002330 ERROR glib GLib-GObject:0:: g_object_ref: assertion 'G_IS_OBJECT (object)' failed
(kurento-media-server:632): GStreamer-CRITICAL **: 06:17:11.080: gst_bin_add: assertion 'GST_IS_ELEMENT (element)' failed
632 0x7fb6940022d0 WARN GST_ELEMENT_FACTORY gstelementfactory.c:701:gst_element_factory_make_with_properties: no such element factory "hubport"!
# After application servver diconnect
632 0x7fb688001600 DEBUG KurentoMediaSet MediaSet.cpp:121:doGarbageCollection: Running garbage collector
632 0x7fb688002360 DEBUG KurentoMediaSet MediaSet.cpp:463:async_delete: Destroying Composite -> da29907d-7dc5-45c6-af84-526f0cc85753_kurento.MediaPipeline/bbf2a5e2-8425-4706-aa66-d82230897238_kurento.Composite
(kurento-media-server:632): GStreamer-CRITICAL **: 06:20:05.630: gst_bin_remove: assertion 'GST_IS_ELEMENT (element)' failed
(kurento-media-server:632): GStreamer-CRITICAL **: 06:20:05.630: gst_element_set_state: assertion 'GST_IS_ELEMENT (element)' failed
632 0x7fb688002360 ERROR glib GLib-GObject:0:: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
632 0x7fb688002360 DEBUG KurentoMediaSet MediaSet.cpp:463:async_delete: Destroying MediaPipeline -> da29907d-7dc5-45c6-af84-526f0cc85753_kurento.MediaPipeline
with 1.20, media server Log info:
# Hello-World-Recording Application Server Error Msg
Cannot create gstreamer element: webrtcendpoint (Code:40108, Type:null, Data: {"type":"MEDIA_OBJECT_NOT_AVAILABLE"})
with 1.22, media server Log info:
# Group-Call Application Server Error Msg
Cannot create gstreamer element: hubport (Code:40108, Type:null, Data: {"type":"MEDIA_OBJECT_NOT_AVAILABLE"})
- I trace similar issues from past to present, I can't find any solution, or perhaps my issues not like these? :
How to reproduce?
Expected & current behavior
(Optional) Possible solution
Info about your environment
configs
stunServerAddress=stun.l.google.com:19302
stunServerPort=3478
{
"numAudioMedias": 1,
"numVideoMedias": 1,
"audioCodecs": [
{
"name": "opus/48000/2",
"//": "Next is an example about how a codec can be configured.",
"//": "WARNING: Usage of properties is not yet supported",
"//properties": {
"//maxcodedaudiobandwidth": "16000",
"//maxaveragebitrate": "20000",
"//stereo": "1",
"//useinbandfec": "1",
"//usedtx": "0"
}
},
{ "name": "PCMU/8000" },
{ "name": "AMR/8000" }
],
"videoCodecs": [
{ "name": "H264/90000" }
]
}
//...
encoderBitrate=6000000
//...
minEncoderBitrate=2000000
//...
maxEncoderBitrate=6000000
About Kurento Media Server
- Kurento version: 7.0.0
- Server OS: Ubuntu 20.04 (Focal)
- Installation method:
About your Application Server
- Programming Language: Java
- Kurento Client version: 7.0.0
About end-user clients
- Device(s): PC
- OS(es): Windows 10
- Browser(s): Chrome 114
Run these commands
gst-inspect-1.0 --gst-version
GStreamer Core Library version 1.16.3
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.6 LTS"
kurento-media-server --version
0:00:00.017338554 4554 0x55f2eba16150 DEBUG KurentoModuleManager ModuleManager.cpp:172:loadModules: Looking for modules in path: /usr/lib/x86_64-linux-gnu/kurento/modules
0:00:00.017453925 4554 0x55f2eba16150 DEBUG KurentoModuleManager ModuleManager.cpp:182:loadModules: Found file: /usr/lib/x86_64-linux-gnu/kurento/modules/libkmscoremodule.so
0:00:00.017879398 4554 0x55f2eba16150 INFO KurentoModuleManager ModuleManager.cpp:89:loadModule: Load file: /usr/lib/x86_64-linux-gnu/kurento/modules/libkmscoremodule.so, module name: /usr/lib/x86_64-linux-gnu/kurento/modules/libkmscoremodule.so
0:00:00.017939089 4554 0x55f2eba16150 INFO KurentoModuleManager ModuleManager.cpp:136:loadModule: Loaded module: core, version: 7.0.0, date: Mar 21 2023 16:57:44
0:00:00.017997539 4554 0x55f2eba16150 DEBUG KurentoModuleManager ModuleManager.cpp:182:loadModules: Found file: /usr/lib/x86_64-linux-gnu/kurento/modules/libkmselementsmodule.so
0:00:00.030635033 4554 0x55f2eba16150 INFO KurentoModuleManager ModuleManager.cpp:89:loadModule: Load file: /usr/lib/x86_64-linux-gnu/kurento/modules/libkmselementsmodule.so, module name: /usr/lib/x86_64-linux-gnu/kurento/modules/libkmselementsmodule.so
0:00:00.030701494 4554 0x55f2eba16150 INFO KurentoModuleManager ModuleManager.cpp:136:loadModule: Loaded module: elements, version: 7.0.0, date: Mar 21 2023 17:03:47
0:00:00.030737904 4554 0x55f2eba16150 DEBUG KurentoModuleManager ModuleManager.cpp:182:loadModules: Found file: /usr/lib/x86_64-linux-gnu/kurento/modules/libkmsfiltersmodule.so
0:00:00.031636361 4554 0x55f2eba16150 INFO KurentoModuleManager ModuleManager.cpp:89:loadModule: Load file: /usr/lib/x86_64-linux-gnu/kurento/modules/libkmsfiltersmodule.so, module name: /usr/lib/x86_64-linux-gnu/kurento/modules/libkmsfiltersmodule.so
0:00:00.031695762 4554 0x55f2eba16150 INFO KurentoModuleManager ModuleManager.cpp:136:loadModule: Loaded module: filters, version: 7.0.0, date: Mar 21 2023 17:09:51
Kurento Media Server version: 7.0.0
Found modules:
'core' version 7.0.0
'elements' version 7.0.0
'filters' version 7.0.0
dpkg -l | grep -Pi 'kurento|kms-|gst.*1.5|nice'
ii gstreamer1.0-nice:amd64 0.1.18-0kurento1 amd64 ICE library (GStreamer plugin)
ii gstreamer1.0-plugins-good:amd64 1:1.16.3-0ubuntu1.1kurento1 amd64 GStreamer plugins from the "good" set
ii gstreamer1.0-plugins-good-kurento 1.0.0-0kurento1ubuntu1 amd64 Dummy package that depends on Kurento patched gstreamer1.0-plugins-good (shared library)
ii kurento-jsonrpc 7.0.0-1kurento1 amd64 Kurento JSON-RPC library
ii kurento-media-server 7.0.0-1kurento1 amd64 Kurento Media Server
ii kurento-module-core 7.0.0-1kurento1 amd64 Core module for use by Kurento Media Server
ii kurento-module-elements 7.0.0-1kurento1 amd64 Kurento Elements module
ii kurento-module-filters 7.0.0-1kurento1 amd64 Kurento Filters module
ii libgstreamer-plugins-good1.0-0:amd64 1:1.16.3-0ubuntu1.1kurento1 amd64 GStreamer development files for libraries from the "good" set
ii libnice10:amd64 0.1.18-0kurento1 amd64 ICE library (shared library)
ii libsrtp-kurento 1.0.0-0kurento1ubuntu1 amd64 Dummy package that depends on Kurento patched libsrtp (shared library)
ii libsrtp2-1:amd64 1:2.3.0-2kurento1 amd64 Secure RTP (SRTP) and UST Reference Implementations - shared library
ii openh264 2.3.0-0kurento1 amd64 OpenH264 Video Codec provided by Cisco Systems, Inc.
ii openh264-gst-plugin 1.0.0-0kurento1ubuntu1 amd64 OpenH264 plugin for GStreamer