Constructor
new PlayerEndpoint()
Fires:
Extends
Members
(static) constructorParams
Properties:
Name | Type | Attributes | Description |
---|---|---|---|
mediaPipeline |
module:core.MediaPipeline | The MediaPipeline this PlayerEndpoint belongs to. | |
networkCache |
external:Integer |
<optional> |
RTSP buffer length.
When receiving media from an RTSP source, the streamed video can suffer spikes or stuttering, caused by hardware or network issues. Having a reception buffer helps alleviate these problems, because it smoothes the stream of incoming data to the receiving endpoint. Finding a buffer length that works best for your connection might take some tweaking, which can be done with this optional property. Note that a longer buffer will be able to fix bigger network spikes, but at the cost of introducing more latency to the media playback.
|
uri |
external:String | URI pointing to the video. It has to be accessible to the KMS process.
|
|
useEncodedMedia |
external:Boolean |
<optional> |
Feed an encoded media as-is to the Media Pipeline, instead of first decoding
This property is disabled by default. The input media gets always decoded into a raw format upon receiving it, before being processed by the rest of the Media Pipeline. This is done to ensure that Kurento is able to keep track of lost keyframes among other quality-control measurements. Of course, having to decode the media has a cost in terms of CPU usage, but ensures that the output streaming will be more robust and reliable. When this property is enabled, Kurento simply passes the encoded media as-is to the rest of the Media Pipeline, without decoding. Enabling this mode of operation could have a severe effect on stability, because lost video keyframes will not be regenerated; however, not having to encode the video greatly reduces the CPU load. Keep in mind that if this property is enabled, the original source media MUST already be in a format that is compatible with the destination target. For example: Given a Pipeline that reads a file and then streams browser such as Chrome, the file must already be encoded with a VP8 or H.264 codec profile, which Chrome is able to decode. Of special note is that you cannot feed any random combination of H.264 encoding options to a web browser; instead, they tend to support only a very specific subset of the codec features (also known as 'profiles'). The most compatible config for H.264 is Constrained Baseline profile, level 3.1. Code examples:
|
(static) events
Methods
(static) play(callbackopt) → {external:Promise}
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
module:elements.PlayerEndpoint~playCallback |
<optional> |
Returns:
- Type
- external:Promise
getChildren(callbackopt) → {external:Promise}
MediaObject
.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
module:core/abstracts.MediaObject~getChildrenCallback |
<optional> |
- Inherited From:
- Source:
Returns:
- Type
- external:Promise
getCreationTime(callbackopt) → {external:Promise}
MediaObject
creation time in seconds since Epoch.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
module:core/abstracts.MediaObject~getCreationTimeCallback |
<optional> |
- Inherited From:
- Source:
Returns:
- Type
- external:Promise
getElementGstreamerDot(callbackopt) → {external:Promise}
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
module:elements.PlayerEndpoint~getElementGstreamerDotCallback |
<optional> |
Returns:
- Type
- external:Promise
getEncoderBitrate(callbackopt) → {external:Promise}
The bitrate of a video has a direct impact on its perceived image quality. Higher bitrate means higher quality, but also a larger amount of bytes to transmit or store. Use this parameter to set the desired average bitrate in videos that are transcoded by the media server.
This parameter is most useful for :rom:cls:`RecorderEndpoint` and :rom:cls:`RtpEndpoint`: when media is being transcoded (either for streaming or storing on disk), the resulting quality is directly controlled with this value.
For :rom:cls:`WebRtcEndpoint`, this value should be left as default, as remote WebRTC receivers will already send feedback to inform the media server about what is the optimal bitrate to send.
Setting a value will only work if done before the media starts to flow.
- Unit: bps (bits per second).
- Default: 300000 (300 kbps).
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
module:core/abstracts.MediaElement~getEncoderBitrateCallback |
<optional> |
- Inherited From:
- Source:
Returns:
- Type
- external:Promise
getMaxEncoderBitrate(callbackopt) → {external:Promise}
This parameter can be used to fine tune the automatic bitrate selection that normally takes place within elements that are able to dynamically change the encoding bitrate according to the conditions of the streaming, such as :rom:cls:`WebRtcEndpoint`.
This should be left as default in most cases, given that remote WebRTC receivers already send feedback to inform the media server about what is the optimal bitrate to send. Otherwise, this parameter could be used for example to limit the total bitrate that is handled by the server, by setting a low maximum output for all endpoints.
This should be left as default in most cases, given that remote WebRTC receivers already send feedback to inform the media server about what is the optimal bitrate to send. Otherwise, this parameter could be used for example to limit the total bitrate that is handled by the server, by setting a low maximum output for all endpoints.
Setting a value will only work if done before the media starts to flow.
- Unit: bps (bits per second).
- Default: 0.
- 0 = unlimited. Encoding performed with bitrate as requested by receivers.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
module:core/abstracts.MediaElement~getMaxEncoderBitrateCallback |
<optional> |
- Inherited From:
- Source:
Returns:
- Type
- external:Promise
getMediaPipeline(callbackopt) → {external:Promise}
MediaObject
belongs. It
returns itself when invoked for a pipeline object.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
module:core/abstracts.MediaObject~getMediaPipelineCallback |
<optional> |
- Inherited From:
- Source:
Returns:
- Type
- external:Promise
getMinEncoderBitrate(callbackopt) → {external:Promise}
This parameter can be used to fine tune the automatic bitrate selection that normally takes place within elements that are able to dynamically change the encoding bitrate according to the conditions of the streaming, such as :rom:cls:`WebRtcEndpoint`.
This should be left as default in most cases, given that remote WebRTC receivers already send feedback to inform the media server about what is the optimal bitrate to send. Otherwise, this parameter could be used for example to force a higher bitrate than what is being requested by receivers.
Setting a value will only work if done before the media starts to flow.
- Unit: bps (bits per second).
- Default: 0.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
module:core/abstracts.MediaElement~getMinEncoderBitrateCallback |
<optional> |
- Inherited From:
- Source:
Returns:
- Type
- external:Promise
getName(callbackopt) → {external:Promise}
MediaObject
's name.
This is just sugar to simplify developers' life debugging, it is not used internally for indexing nor identifying the objects. By default, it's the object's ID.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
module:core/abstracts.MediaObject~getNameCallback |
<optional> |
- Inherited From:
- Source:
Returns:
- Type
- external:Promise
getParent(callbackopt) → {external:Promise}
MediaObject
.
The parent of a Hub or a MediaElement is its MediaPipeline. A MediaPipeline has no parent, so this property will be null.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
module:core/abstracts.MediaObject~getParentCallback |
<optional> |
- Inherited From:
- Source:
Returns:
- Type
- external:Promise
getPosition(callbackopt) → {external:Promise}
Note Setting the position only works for seekable videos
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
module:elements.PlayerEndpoint~getPositionCallback |
<optional> |
Returns:
- Type
- external:Promise
getSendTagsInEvents(callbackopt) → {external:Promise}
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
module:core/abstracts.MediaObject~getSendTagsInEventsCallback |
<optional> |
- Inherited From:
- Source:
Returns:
- Type
- external:Promise
getState(callbackopt) → {external:Promise}
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
module:core/abstracts.UriEndpoint~getStateCallback |
<optional> |
- Inherited From:
- Source:
Returns:
- Type
- external:Promise
getUri(callbackopt) → {external:Promise}
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
module:core/abstracts.UriEndpoint~getUriCallback |
<optional> |
- Inherited From:
- Source:
Returns:
- Type
- external:Promise
getVideoInfo(callbackopt) → {external:Promise}
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
callback |
module:elements.PlayerEndpoint~getVideoInfoCallback |
<optional> |
Returns:
- Type
- external:Promise
setEncoderBitrate(encoderBitrate, callbackopt) → {external:Promise}
The bitrate of a video has a direct impact on its perceived image quality. Higher bitrate means higher quality, but also a larger amount of bytes to transmit or store. Use this parameter to set the desired average bitrate in videos that are transcoded by the media server.
This parameter is most useful for :rom:cls:`RecorderEndpoint` and :rom:cls:`RtpEndpoint`: when media is being transcoded (either for streaming or storing on disk), the resulting quality is directly controlled with this value.
For :rom:cls:`WebRtcEndpoint`, this value should be left as default, as remote WebRTC receivers will already send feedback to inform the media server about what is the optimal bitrate to send.
Setting a value will only work if done before the media starts to flow.
- Unit: bps (bits per second).
- Default: 300000 (300 kbps).
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
encoderBitrate |
external:Integer | ||
callback |
module:core/abstracts.MediaElement~setEncoderBitrateCallback |
<optional> |
- Inherited From:
- Source:
Returns:
- Type
- external:Promise
setMaxEncoderBitrate(maxEncoderBitrate, callbackopt) → {external:Promise}
This parameter can be used to fine tune the automatic bitrate selection that normally takes place within elements that are able to dynamically change the encoding bitrate according to the conditions of the streaming, such as :rom:cls:`WebRtcEndpoint`.
This should be left as default in most cases, given that remote WebRTC receivers already send feedback to inform the media server about what is the optimal bitrate to send. Otherwise, this parameter could be used for example to limit the total bitrate that is handled by the server, by setting a low maximum output for all endpoints.
This should be left as default in most cases, given that remote WebRTC receivers already send feedback to inform the media server about what is the optimal bitrate to send. Otherwise, this parameter could be used for example to limit the total bitrate that is handled by the server, by setting a low maximum output for all endpoints.
Setting a value will only work if done before the media starts to flow.
- Unit: bps (bits per second).
- Default: 0.
- 0 = unlimited. Encoding performed with bitrate as requested by receivers.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
maxEncoderBitrate |
external:Integer | ||
callback |
module:core/abstracts.MediaElement~setMaxEncoderBitrateCallback |
<optional> |
- Inherited From:
- Source:
Returns:
- Type
- external:Promise
setMinEncoderBitrate(minEncoderBitrate, callbackopt) → {external:Promise}
This parameter can be used to fine tune the automatic bitrate selection that normally takes place within elements that are able to dynamically change the encoding bitrate according to the conditions of the streaming, such as :rom:cls:`WebRtcEndpoint`.
This should be left as default in most cases, given that remote WebRTC receivers already send feedback to inform the media server about what is the optimal bitrate to send. Otherwise, this parameter could be used for example to force a higher bitrate than what is being requested by receivers.
Setting a value will only work if done before the media starts to flow.
- Unit: bps (bits per second).
- Default: 0.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
minEncoderBitrate |
external:Integer | ||
callback |
module:core/abstracts.MediaElement~setMinEncoderBitrateCallback |
<optional> |
- Inherited From:
- Source:
Returns:
- Type
- external:Promise
setName(name, callbackopt) → {external:Promise}
MediaObject
's name.
This is just sugar to simplify developers' life debugging, it is not used internally for indexing nor identifying the objects. By default, it's the object's ID.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
name |
external:String | ||
callback |
module:core/abstracts.MediaObject~setNameCallback |
<optional> |
- Inherited From:
- Source:
Returns:
- Type
- external:Promise
setPosition(position, callbackopt) → {external:Promise}
Note Setting the position only works for seekable videos
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
position |
external:int64 | ||
callback |
module:elements.PlayerEndpoint~setPositionCallback |
<optional> |
Returns:
- Type
- external:Promise
setSendTagsInEvents(sendTagsInEvents, callbackopt) → {external:Promise}
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
sendTagsInEvents |
external:Boolean | ||
callback |
module:core/abstracts.MediaObject~setSendTagsInEventsCallback |
<optional> |
- Inherited From:
- Source:
Returns:
- Type
- external:Promise
Type Definitions
getElementGstreamerDotCallback(error, result)
Parameters:
Name | Type | Description |
---|---|---|
error |
external:Error | |
result |
external:String |
getPositionCallback(error, result)
Parameters:
Name | Type | Description |
---|---|---|
error |
external:Error | |
result |
external:int64 |
getVideoInfoCallback(error, result)
Parameters:
Name | Type | Description |
---|---|---|
error |
external:Error | |
result |
module:elements/complexTypes.VideoInfo |
playCallback(error)
Parameters:
Name | Type | Description |
---|---|---|
error |
external:Error |
setPositionCallback(error)
Parameters:
Name | Type | Description |
---|---|---|
error |
external:Error |