Package io.antmedia
Class AppSettings
java.lang.Object
io.antmedia.AppSettings
- All Implemented Interfaces:
Serializable
@Entity("AppSettings")
@Indexes(@Index(fields=@Field("appName"),options=@IndexOptions(unique=true,name="appName_unique_index")))
@PropertySource("/WEB-INF/red5-web.properties")
public class AppSettings
extends Object
implements Serializable
Application Settings for each application running in Ant Media Server.
Each setting should have a default value with @Value annotation. Otherwise it breaks compatibility
These settings are set for each applications and stored in the file /webapps//WEB_INF/red5-web.properties.
Click on any field to see its default value.
With version 2.6.2+, you can give the field name as property directly. 2.6.2 is also backward compatible with the old properties.
Example: click on aacEncodingEnabled --> The line @Value("${aacEncodingEnabled:#{${"+SETTINGS_AAC_ENCODING_ENABLED+":true}}}") means that
You can add aacEncodingEnabled` property to the /webapps//WEB_INF/red5-web.properties as follows
```
aacEncodingEnabled=false
```
SETTINGS_AAC_ENCODING_ENABLED(settings.aacEncodingEnabled) definition provides backward compatibility for old property naming
Pay Attention:
You don't need to change the configuration file manually anymore. You can do all changes through Web Panel.
- Author:
- mekya
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionprivate boolean
If aacEncodingEnabled is true, aac encoding will be active even if mp4 or hls muxing is not enabled, If aacEncodingEnabled is false, aac encoding is only activated if mp4 or hls muxing is enabled in the settings, This value should be true if you're sending stream to RTMP endpoints or enable/disable mp4 recording on the flyprivate float
Packet lost percentage to decide serving video with lower resolutionprivate int
Jitter in ms to decide serving video with higher resolutionprivate float
Packet lost percentage to decide serving video with higher resolutionprivate int
Round trip time in ms to decide serving video with higher resolutionprivate boolean
The control for roomsprivate boolean
The control for publishers It's mandatory, If it is set true you cannot start publishing unless you add the stream id to the database, You can add stream id by REST API.private boolean
It's mandatory, Date and time are added to created .m3u8 and .ts file name, Default value is falseprivate boolean
It's mandatory, Date and time are added to created .mp4 file name, Default value is falseprivate boolean
Add the original hls stream to the playlist if adaptive bitrate setting is enabledprivate String
Comma separated CIDR that server accepts/ingests RTMP streams from, Default value is null which means that it accepts/ingests stream from everywhereprivate String
APN(Apple Push Notification) key Idprivate String
APN(Apple Push Notification) private keyprivate String
(Apple Push Notification) Apple Push Notification Server Default value is development enviroment(api.sandbox.push.apple.com) and production enviroment is api.push.apple.comprivate String
APN(Apple Push Notification) team idprivate String
Applicaiton name for the data store which should exist so that no default value such as LiveApp, WebRTCApp etc.private int
In SFU mode we still transcode the audio to opus and aac This settings determines the audio bitrate for opus and aac It's the bitrate that is used transcoding the audio in AAC and Opus After version(2.3), we directly forward incoming audio to the viewers without transcoding.private String
Key that is being used to validate the requests between communication in the cluster nodes In initialization no matter if spring or field definition is effective, the important thing is that having some random valueprivate String
Constant Rate Factor used by x264, x265, VP8, Use values between 4-51private String
Value of the content security policy header(csp) The new Content-Security-Policy HTTP response header helps you reduce XSS risks on modern browsers by declaring which dynamic resources are allowed to load.private int
It's mandatory, This determines the period (milliseconds) of preview (png) file creation, This file is created into/preview directory. private org.json.simple.JSONObject
private String
DASH extra window size, Number of segments kept outside of the manifest before removing from diskprivate String
Fragments are a property of fragmented MP4 files, Typically a fragment consists of moof + mdat.private String
private boolean
Use http streaming in Low Latency Dash, If it's true, it sends files through http If it's false, it writes files to disk directly In order to have Low Latency http streaming should be usedprivate boolean
Enable/disable dash recordingprivate String
Duration of segments in mpd files, Segments are a property of DASH.private String
DASH window size, Number of files in manifestprivate boolean
Enable/Disable data channel It's disabled by default When data channel is enabled, publisher can send messages to the playersprivate String
Defines the distribution list for player messages it can be none/publisher/all none: player messages are delivered to nobody publisher: player messages are delivered to only publisher all: player messages are delivered to everyone both publisher and all playersprivate String
All data channel messages are delivered to these hook as well So that it'll be integrated to any third party applicationprivate org.bson.types.ObjectId
private boolean
Deprecated.private boolean
If this value is true, dash files(mpd and m4s files) are deleted after the broadcasting has finished.private boolean
It's mandatory, If this value is true, hls files(m3u8 and ts files) are deleted after the broadcasting has finished, Default value is true.private boolean
Enable/Disable IPv6 Candidates for WebRTC It's disabled by defaultprivate boolean
Drop webrtc ingest if no packet received.private boolean
The setting for accepting only time based token(TOTP) subscribers as connections to the streamsprivate boolean
The settings for accepting only time based token(TOTP) subscribers as connections to the streamsprivate String
Encoder level in adaptive bitrateprivate String
Name of the encoder to be used in adaptive bitrate, If there is a GPU, server tries to open h264_nvenc, If there is no GPU, server tries to open libx264 by default Can be h264_nvenc or libx264.private String
Encoder's preset value in adaptive bitrate Libx264 presets are there https://trac.ffmpeg.org/wiki/Encode/H.264 Ant Media Server uses "veryfast" by defaultprivate String
Encoder profile in adaptive bitrate, It's baseline by default.private String
Encoding rate control in adaptive bitrateprivate String
Can be "gpu_and_cpu" or "only_gpu" "only_gpu" only tries to open the GPU for encoding, If it cannot open the gpu codec it returns false "gpu_and_cpu" first tries to open the GPU for encoding if it does not open, it tries to open the CPU for encodingprivate String
Encoder settings in comma separated format This must be set for adaptive streaming, If it is empty SFU mode will be active in WebRTCAppEE, video height, video bitrate, and audio bitrate are set as an example, Ex.private String
Encoder specific configuration for libx264 in adaptive bitrate, This is the x264-params in ffmpeg Specific settings for selected encoder, For libx264 please check https://trac.ffmpeg.org/wiki/Encode/H.264private int
Encoder thread count.private int
Encoder thread type 0: auto 1: frame 2: sliceprivate int
Timeout for encoding If encoder cannot encode a frame in this timeout, streaming is finished by server.private int
Endpoint will try to republish if error occurs, however the error might get fixed internally in case of small issues without republishing This value is the check time for endpoint in 3 trials For example for 2 seconds, there will be 2 checks in 2 second intervals, if each of them fails it will try to republish in 3rd check.private int
This limit is for republishing to a certain endpoint for how many times For example in case we tried to republish 3 times and still got an error We conclude that the endpoint is dead and close it.private boolean
Enable or disable excessive bandwidth algorithmprivate int
The excessive bandwidth call threshold valueprivate int
The excessive bandwidth threshold valueprivate int
private String
The format of output mp4 and ts files.private String
Firebase Service Account Key JSON to send push notification through Firebase Cloud Messagingprivate boolean
This settings forces the aspect ratio to match the incoming aspect ratio perfectly.private boolean
Force stream decoding even if there is no adaptive settingprivate boolean
Generate preview if there is any adaptive settings, Preview generation depends on adaptive settings and it's generated by defaultprivate int
GOP size, AKA key frame interval, GOP size is group of pictures that encoder sends key frame for each group, The unit is not the seconds, Please don't confuse the seconds that are used in key frame intervals If GOP size is 50 and your frame rate is 25, it means that encoder will send key frame for every 2 seconds, Default value is 0 so it uses incoming gop size by default.private boolean
Enable/Disable h264 encoding It's enabled by defaultprivate boolean
Enable/disable H265 Encoding Disabled by defaultprivate String
private String
private String
private String
private String
private boolean
It's mandatory, If it is set true then hash based access control enabled for playing, enable hash control as token for playing operations using shared secret Default value is false.private boolean
It's mandatory, If it is set true then hash based access control enabled for publishing, enable hash control as token for publishing operations using shared secret Default value is false.private int
The height of the stream that is transcoded from incoming WebRTC stream to the RTMP This settings is effective in community edition by default It's also effective WebRTC to RTMP direct forwarding by giving rtmpForward=true in WebSocket communication in Enterprise Editionprivate boolean
Enable hls through DASH muxer, LLHLS is effective if dash is enabled.private String
HLS Encryption key info file full path.private String
HLS Flags for FFmpeg HLS Muxer, Please add value by plus prefix in the properties file like this settings.hlsflags=+program_date_time you can add + separated more options like below settings.hlsflags=+program_date_time+round_durations+append_list Separate with + or -.private String
Http endpoint to push the HLS streamprivate String
Number of segments(chunks) in m3u8 files Set the maximum number of playlist entries, If 0 the list file will contain all the segments,private boolean
Enable/disable hls recording If it is set true then HLS files are created into/streams and HLS playing is enabled, Default value is true private String
It can be event or vod, Check HLS documentation for EXT-X-PLAYLIST-TYPE.private String
HLS Muxer segment type.private String
Duration of segments in m3u8 files Target segment length in seconds, Segment will be cut on the next key frame after this time has passed.private String
Forward the incoming http request to this base urlprivate String
Forwards the http requests with this extension tohttpForwardingBaseURL
It supports comma separated extensions Like mp4,m3u8 Don't add any leading, trailing white spacesprivate boolean
Enable/disable video frame scaling in GPU when there is an adaptive bitrateprivate long
private boolean
Enables the ID3 Tag support for HLSprivate int
Application level total incoming stream limitprivate boolean
Application IP Filter Enabledprivate String
private boolean
Application JWT Control Enabled for accessing the REST API TODO: Remove this field.private String
Application JWT secret key for accessing the REST APIprivate String
Application JWT stream secret key.private String
The URL for action callback You must set this to subscribe some event notifications, For details check: https://antmedia.io/webhook-integration/private boolean
Enable low latency dash, This settings is effective if dash is enabledprivate boolean
Enable low latency hls via dash muxer, LLHLS is effective if dash is enabled.private int
Max analyze duration in for determining video and audio existence in RTMP, SRT and Stream Sourcesprivate int
The maximum audio track in a multitrack playing connection If it is -1 then a new audio track connection is established for each track otherwise, audio connections are established as many as this value and the limited connections are shared between tracks.private int
Max Bitrate value in RTMP streamsprivate int
Max FPS value in RTMP streamsprivate int
Max Resolution value in RTMP streamsprivate int
The maximum video track in a multitrack playing connection If it is -1 then a new video track connection is established for each track otherwise, video connections are established as many as this value and the limited connections are shared between tracks.private boolean
It's mandatory, If it is set true then a mp4 file is created into/streams directory Default value is false private String
This is a script file path that is called by Runtime when muxing is finished, Bash script file path will be called after stream finishes.private String
private boolean
It's mandatory, The directory contains the tensorflow object detection model If it is set true then object detection algorithm is run for streaming video, Default value is false.private int
The maximum idle time between origin and edge connection.private int
packet loss threshold if packetLoss is bigger than this value in ExcessiveBandwidth algorithm, it switches back to lower quality without try every attemptsexcessiveBandwithTryCountBeforeSwitchback
private boolean
The settings for enabling jwt token filter mechanism for accessing resources and playingprivate boolean
The settings for enabling one-time token control mechanism for accessing resources and publishing It's mandatory, This enables token control, Check for details: https://antmedia.io/secure-video-streaming/.private boolean
This setting prevents playing stream id more than once in the same websocket/webrtc session.private int
Port Allocator Flags for WebRTC PORTALLOCATOR_DISABLE_UDP = 0x01, PORTALLOCATOR_DISABLE_STUN = 0x02, PORTALLOCATOR_DISABLE_RELAY = 0x04,private int
It's mandatory, Determines the height of preview file, Default value is 480private boolean
Overwrite preview files if exist, default value is false If it is set true and new stream starts with the same id, preview of the new one overrides the previous file, If it is false previous file saved with a suffix.private boolean
The settings for enabling jwt token filter mechanism for accessing resources and publishingprivate boolean
The settings for enabling one-time token control mechanism for accessing resources and publishing Check for details: https://antmedia.io/secure-video-streaming/.private boolean
Set to true when the app settings are only created for pulling the war file.private String
Subfolder for the recording files (mp4 and webm)private boolean
Relay RTMP metadata to muxers.private String
Comma separated CIDR that rest services are allowed to response Allowed IP addresses to reach REST API, It must be in CIDR format as a.b.c.d/xprivate boolean
Replace candidate addr with server addr, In order to use it you should set serverName in conf/red5.propertiesprivate int
Period of restarting stream fetchers automaticallyin seconds.private long
RTMP ingesting buffer time in Milliseconds Server buffer this amount of video packet in order to compensate when stream is not received for some timeprivate boolean
RTMP playback is not maintained and its support will be removed completely.private String
Specify the rtsp transport type in pulling IP Camera or RTSP sources It can have string or integer values.private int
Specify the rtspTimeoutDurationMs in pulling IP Camera or RTSP sourcesprivate int
rtt measurement threshold diff if rttMeasurement is bigger than this value in ExcessiveBandwidth algorithm, it switches back to lower quality without try every attempts#setTryCountBeforeSwitchback(int)
private String
S3 Access keyprivate String
S3 Bucket Nameprivate String
S3 Cache Control Metadataprivate String
S3 Endpointprivate String
private String
It's S3 stream PNG files storage name .private boolean
Application JWT Control Enabledprivate String
S3 Region Nameprivate String
S3 Secret Keyprivate String
private String
It's S3 streams MP4, WEBM and HLS files storage name .private boolean
If it's false, jwt token should be send in analytic events to the AnalyticsEventLogger.private boolean
Ant Media Server can get the audio level from incoming RTP Header in WebRTC streaming and send to the viewers.private static final long
private String
This is for using another Ant Media instance as signaling server.private boolean
This is for making this instance run also as a signaling server.private String
Password of the stalker portal DB User Database password of IP TV Ministra platform.private String
Address of the Stalker Portal DB server Database host address of IP TV Ministra platform.private String
Username of stalker portal DB Database user name of IP TV Ministra platform.private boolean
Flag to specify Stream sources whether to start automatically when server is started.private boolean
Enables the WebRTC statistics based Adaptive Bitrate switch algorithmprivate int
Stream fetcher buffer time in milliseconds, Stream is buffered for this duration and after that it will be started.private String
STUN or TURN Server URI STUN server URI used for WebRTC ICE candidates You can check: https://antmedia.io/learn-webrtc-basics-components/, Default value is stun:stun.l.google.com:19302 STUN or TURN URL can be set for this properoyprivate String
This is JWT Secret to authenticate the user for push notifications.private String
Latency of the DASH streaming,private int
period for the generated time tokenprivate String
TOTP(Time-based One Time Password) Token Secret for Playing.private String
TOTP(Time-based One Time Password) Token Secret for Publishing.private boolean
The settings for accepting only time based token subscribers as connections to the streamsprivate boolean
Set to true when you want to delete an applicationprivate String
The secret string used for creating hash based tokens The key that used in hash generation for hash-based access control.private String
TURN server credentai for WebRTC ICE candidates.private String
TURN server username for WebRTC ICE candidates.private long
Update time of the setting in the clusterprivate int
Binary entity for uploading the extensions 0 means does not upload, 1 means upload Least significant digit switches mp4 files upload to s3 Second digit switches HLS files upload to s3 Most significant digit switches PNG files upload to s3 Example: 5 ( 101 in binary ) means upload mp4 and PNG but not HLS HLS files still will be saved on the server if deleteHLSFilesOnEnded flag is falseprivate boolean
The flag that sets using the original webrtc stream in streaming, This setting is effective if there is any adaptive bitrate setting, For instance assume that there is adaptive bitrate with 480p and incoming stream is 720p Then if this setting is true, there are two bitrates for playing 720p and 480p, In this case if this setting is false, there is one bitrate for playing that is 480pprivate boolean
Use timeline in dash muxing.private String
The path for manually saved used VoDs Determines the directory to store VOD files.private String
This is a script file path that is called by Runtime when VoD upload is finished, Bash script file path will be called after upload process finishes.private boolean
Enable/Disable vp8 encoding It's disabled by defaultprivate String
VP8 Encoder deadline: best good realtimeprivate int
Set quality/speed ratio modifier, Higher values speed up the encode at the cost of quality.private int
VP8 Encoder thread count.private String
Address of the original place of the war file.private String
Enable Webhook Authentication when publishing streamsprivate String
The content type that is used in the webhook POST request It's added for backward compatibility.private String
Webhook webrtc play authentication url.private int
Retry count on webhook POST failureprivate long
Delay in milliseconds between webhook attempts on POST failure.private boolean
Enable/Disable WebM recordingprivate int
If webrtc client(publish or play) is not started in this time, it'll close automatically.private boolean
Enable/disable webrtc, It's mandatory, If it is set true then WebRTC playing is enabled, Default value is falseprivate int
It's mandatory, Determines the frame rate of video publishing to the WebRTC players, Default value is 30 because users are complaining about the 20fps(previous value) and may not know to change itprivate int
WebRTC Keyframe Time, Ant Media Server asks key frame for every webRTCKeyframeTime in SFU mode, It's in millisecondsprivate int
Max port number of the port range of WebRTC, It's effective when user publishes stream In order to port range port this value should be higher thanwebRTCPortRangeMin
private int
Min port number of the port range of WebRTC, It's effective when user publishes stream, This value should be less than thewebRTCPortRangeMax
Determines the minimum port number for WebRTC connections, Default value is 0.private String
WebRTC SDP Semantics It can "planB" or "unifiedPlan"private boolean
It's mandatory, TCP candidates are enabled/disabled.It's effective when user publishes stream It's disabled by default If it is set true then TCP candidates can be used for WebRTC connection, If it is false only UDP port will be used, Default value is true.private int
Application level WebRTC viewer limitprivate boolean
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic String
encodersList2Str
(List<EncoderSettings> encoderSettingsList) static List<EncoderSettings>
encodersStr2List
(String encoderSettingsString) fillFromInput
(String input, Queue<org.apache.catalina.util.NetMask> target) Fill aNetMask
list from a string input containing a comma-separated list of (hopefully valid)NetMask
s.float
int
float
int
Queue<org.apache.catalina.util.NetMask>
Queue<org.apache.catalina.util.NetMask>
int
int
getCustomSetting
(String key) org.json.simple.JSONObject
org.bson.types.ObjectId
getDbId()
int
int
int
int
int
int
int
int
int
int
long
int
int
int
int
int
int
int
int
int
int
int
long
int
int
int
int
long
int
int
int
int
long
int
int
int
int
int
int
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
Deprecated.boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
void
void
setAacEncodingEnabled
(boolean aacEncodingEnabled) void
setAbrDownScalePacketLostRatio
(float abrDownScalePacketLostRatio) void
setAbrUpScaleJitterMs
(int abrUpScaleJitterMs) void
setAbrUpScalePacketLostRatio
(float abrUpScalePacketLostRatio) void
setAbrUpScaleRTTMs
(int abrUpScaleRTTMs) void
setAcceptOnlyRoomsInDataStore
(boolean acceptOnlyRoomsInDataStore) void
setAcceptOnlyStreamsInDataStore
(boolean acceptOnlyStreamsInDataStore) void
setAddDateTimeToHlsFileName
(boolean addDateTimeToHlsFileName) void
setAddDateTimeToMp4FileName
(boolean addDateTimeToMp4FileName) void
setAddOriginalMuxerIntoHLSPlaylist
(boolean addOriginalMuxerIntoHLSPlaylist) void
setAllowedPublisherCIDR
(String allowedPublisherCIDR) void
setApnKeyId
(String apnKeyId) void
setApnPrivateKey
(String apnPrivateKey) void
setApnsServer
(String apnsServer) void
setApnTeamId
(String apnTeamId) void
setAppName
(String appName) void
setAudioBitrateSFU
(int audioBitrateSFU) void
setClusterCommunicationKey
(String clusterCommunicationKey) void
setConstantRateFactor
(String constantRateFactor) void
setContentSecurityPolicyHeaderValue
(String contentSecurityPolicyHeaderValue) void
setCreatePreviewPeriod
(int period) void
setCustomSetting
(String key, Object value) void
setCustomSettings
(org.json.simple.JSONObject customSettings) void
setDashExtraWindowSize
(String dashExtraWindowSize) void
setDashFragmentDuration
(String dashFragmentDuration) void
setDashHttpEndpoint
(String dashHttpEndpoint) void
setDashHttpStreaming
(boolean dashHttpStreaming) void
setDashMuxingEnabled
(boolean dashMuxingEnabled) void
setDashSegDuration
(String dashSegDuration) void
setDashWindowSize
(String dashWindowSize) void
setDataChannelEnabled
(boolean dataChannelEnabled) void
setDataChannelPlayerDistribution
(String dataChannelPlayerDistribution) void
setDataChannelWebHookURL
(String dataChannelWebHookURL) void
setDefaultDecodersEnabled
(boolean defaultDecodersEnabled) void
setDeleteDASHFilesOnEnded
(boolean deleteDASHFilesOnEnded) void
setDeleteHLSFilesOnEnded
(boolean deleteHLSFilesOnEnded) void
setDisableIPv6Candidates
(boolean disableIPv6Candidates) void
setDropWebRTCIngestIfNoPacketReceived
(boolean dropWebRTCIngestIfNoPacketReceived) void
setEnableTimeTokenForPlay
(boolean enableTimeTokenForPlay) void
setEnableTimeTokenForPublish
(boolean enableTimeTokenForPublish) void
setEncoderLevel
(String encoderLevel) void
setEncoderName
(String encoderName) void
setEncoderPreset
(String encoderPreset) void
setEncoderProfile
(String encoderProfile) void
setEncoderRc
(String encoderRc) void
setEncoderSelectionPreference
(String encoderSelectionPreference) void
setEncoderSettings
(List<EncoderSettings> settings) void
setEncoderSettingsString
(String encoderSettingsString) void
setEncoderSpecific
(String encoderSpecific) void
setEncoderThreadCount
(int encoderThreadCount) void
setEncoderThreadType
(int encoderThreadType) void
setEncodingTimeout
(int encodingTimeout) void
setEndpointHealthCheckPeriodMs
(int endpointHealthCheckPeriodMs) void
setEndpointRepublishLimit
(int endpointRepublishLimit) void
setExcessiveBandwidthAlgorithmEnabled
(boolean excessiveBandwidthAlgorithmEnabled) void
setExcessiveBandwidthCallThreshold
(int excessiveBandwidthCallThreshold) void
setExcessiveBandwidthValue
(int excessiveBandwidthValue) void
setExcessiveBandwithTryCountBeforeSwitchback
(int excessiveBandwithTryCountBeforeSwitchback) void
setFileNameFormat
(String fileNameFormat) void
setFirebaseAccountKeyJSON
(String firebaseAccountKeyJSON) void
setForceAspectRatioInTranscoding
(boolean forceAspectRatioInTranscoding) void
setForceDecoding
(boolean forceDecoding) void
setGeneratePreview
(boolean generatePreview) void
setGopSize
(int gopSize) void
setH264Enabled
(boolean h264Enabled) void
setH265Enabled
(boolean h265Enabled) void
setH265EncoderLevel
(String encoderLevel) void
setH265EncoderPreset
(String preset) void
setH265EncoderProfile
(String profile) void
setH265EncoderRc
(String encoderRc) void
setH265EncoderSpecific
(String encoderSpecific) void
setHashControlPlayEnabled
(boolean hashControlPlayEnabled) void
setHashControlPublishEnabled
(boolean hashControlPublishEnabled) void
setHeightRtmpForwarding
(int heightRtmpForwarding) void
setHlsEnabledViaDash
(boolean hlsEnabledViaDash) void
setHlsEncryptionKeyInfoFile
(String hlsEncryptionKeyInfoFile) void
setHlsflags
(String hlsflags) void
setHlsHttpEndpoint
(String hlsHttpEndpoint) void
setHlsListSize
(String hlsListSize) void
setHlsMuxingEnabled
(boolean hlsMuxingEnabled) void
setHlsPlayListType
(String hlsPlayListType) void
setHlsSegmentType
(String hlsSegmentType) void
setHlsTime
(String hlsTime) void
setHttpForwardingBaseURL
(String httpForwardingBaseURL) void
setHttpForwardingExtension
(String httpForwardingExtension) void
setHwScalingEnabled
(boolean hwScalingEnabled) void
setIceGatheringTimeoutMs
(long iceGatheringTimeoutMs) void
setId3TagEnabled
(boolean id3TagEnabled) void
setIngestingStreamLimit
(int ingestingStreamLimit) void
setIpFilterEnabled
(boolean ipFilterEnabled) void
setJwksURL
(String jwksURL) void
setJwtControlEnabled
(boolean jwtControlEnabled) void
setJwtSecretKey
(String jwtSecretKey) void
setJwtStreamSecretKey
(String jwtStreamSecretKey) void
setListenerHookURL
(String listenerHookURL) void
setlLDashEnabled
(boolean lLDashEnabled) void
setlLHLSEnabled
(boolean lLHLSEnabled) void
setMaxAnalyzeDurationMS
(int maxAnalyzeDurationMS) void
setMaxAudioTrackCount
(int maxAudioTrackCount) void
setMaxFpsAccept
(int maxFpsAccept) void
setMaxResolutionAccept
(int maxResolutionAccept) void
setMaxVideoTrackCount
(int maxVideoTrackCount) void
setMp4MuxingEnabled
(boolean mp4MuxingEnabled) void
setMuxerFinishScript
(String muxerFinishScript) void
setMySqlClientPath
(String mySqlClientPath) void
setObjectDetectionEnabled
(boolean objectDetectionEnabled) void
setOriginEdgeIdleTimeout
(int originEdgeIdleTimeout) void
setPacketLossDiffThresholdForSwitchback
(int packetLossDiffThresholdForSwitchback) void
setPlayJwtControlEnabled
(boolean playJwtControlEnabled) void
setPlayTokenControlEnabled
(boolean playTokenControlEnabled) void
setPlayWebRTCStreamOnceForEachSession
(boolean playWebRTCStreamOnceForEachSession) void
setPortAllocatorFlags
(int flags) void
setPreviewHeight
(int previewHeight) void
setPreviewOverwrite
(boolean previewOverwrite) void
setPublishJwtControlEnabled
(boolean publishJwtControlEnabled) void
setPublishTokenControlEnabled
(boolean publishTokenControlEnabled) void
setPullWarFile
(boolean pullWarFile) void
setRecordingSubfolder
(String recordingSubfolder) void
setRelayRTMPMetaDataToMuxers
(boolean relayRTMPMetaDataToMuxers) void
setRemoteAllowedCIDR
(String remoteAllowedCIDR) the getAllowedCIDRList and setAllowedCIDRList are synchronized because ArrayList may throw concurrent modificationvoid
setReplaceCandidateAddrWithServerAddr
(boolean replaceCandidateAddrWithServerAddr) void
setRestartStreamFetcherPeriod
(int restartStreamFetcherPeriod) void
setRtmpIngestBufferTimeMs
(long rtmpIngestBufferTimeMs) void
setRtmpPlaybackEnabled
(boolean rtmpPlaybackEnabled) void
setRtspPullTransportType
(String rtspPullTransportType) void
setRtspTimeoutDurationMs
(int rtspTimeoutDurationMs) void
setRttMeasurementDiffThresholdForSwitchback
(int rttMeasurementDiffThresholdForSwitchback) void
setS3AccessKey
(String s3AccessKey) void
setS3BucketName
(String s3BucketName) void
setS3CacheControl
(String s3CacheControl) void
setS3Endpoint
(String s3Endpoint) void
setS3Permission
(String s3Permission) void
setS3PreviewsFolderPath
(String s3PreviewsFolderPath) void
setS3RecordingEnabled
(boolean s3RecordingEnabled) void
setS3RegionName
(String s3RegionName) void
setS3SecretKey
(String s3SecretKey) void
setS3StorageClass
(String s3StorageClass) void
setS3StreamsFolderPath
(String s3StreamsFolderPath) void
setSecureAnalyticEndpoint
(boolean secureAnalyticEndpoint) void
setSendAudioLevelToViewers
(boolean sendAudioLevelToViewers) void
setSignalingAddress
(String signalingAddress) void
setSignalingEnabled
(boolean signalingEnabled) void
setStalkerDBPassword
(String stalkerDBPassword) void
setStalkerDBServer
(String stalkerDBServer) void
setStalkerDBUsername
(String stalkerDBUsername) void
setStartStreamFetcherAutomatically
(boolean startStreamFetcherAutomatically) void
setStatsBasedABREnabled
(boolean statsBasedABREnabled) void
setStreamFetcherBufferTime
(int streamFetcherBufferTime) void
setStunServerURI
(String stunServerURI) void
setSubscriberAuthenticationKey
(String subscriberAuthenticationKey) void
setTargetLatency
(String targetLatency) void
setTimeTokenPeriod
(int timeTokenPeriod) void
setTimeTokenSecretForPlay
(String timeTokenSecretForPlay) void
setTimeTokenSecretForPublish
(String timeTokenSecretForPublish) void
setTimeTokenSubscriberOnly
(boolean timeTokenSubscriberOnly) Deprecated.void
setToBeDeleted
(boolean toBeDeleted) void
setTokenHashSecret
(String tokenHashSecret) void
setTurnServerCredential
(String turnServerCredential) void
setTurnServerUsername
(String turnServerUsername) void
setUpdateTime
(long updateTime) void
setUploadExtensionsToS3
(int uploadExtensionsToS3) void
setUseOriginalWebRTCEnabled
(boolean useOriginalWebRTCEnabled) void
setUseTimelineDashMuxing
(boolean useTimelineDashMuxing) void
setVodFolder
(String vodFolder) void
setVodUploadFinishScript
(String vodUploadFinishScript) void
setVp8Enabled
(boolean vp8Enabled) void
setVp8EncoderDeadline
(String vp8EncoderDeadline) void
setVp8EncoderSpeed
(int vp8EncoderSpeed) void
setVp8EncoderThreadCount
(int vp8EncoderThreadCount) void
setWarFileOriginServerAddress
(String warFileOriginServerAddress) void
setWebhookAuthenticateURL
(String webhookAuthenticateURL) void
setWebhookContentType
(String webhookContentType) void
setWebhookPlayAuthUrl
(String webhookPlayAuthUrl) void
setWebhookRetryCount
(int webhookRetryCount) void
setWebhookRetryDelay
(long webhookRetryDelay) void
setWebMMuxingEnabled
(boolean webMMuxingEnabled) void
setWebRTCClientStartTimeoutMs
(int webRTCClientStartTimeout) void
setWebRTCEnabled
(boolean webRTCEnabled) void
setWebRTCFrameRate
(int webRTCFrameRate) void
setWebRTCKeyframeTime
(int webRTCKeyframeTime) void
setWebRTCPortRangeMax
(int webRTCPortRangeMax) void
setWebRTCPortRangeMin
(int webRTCPortRangeMin) void
setWebRTCSdpSemantics
(String webRTCSdpSemantics) void
setWebRTCTcpCandidatesEnabled
(boolean webRTCTcpCandidatesEnabled) void
setWebRTCViewerLimit
(int webRTCViewerLimit) void
setWriteStatsToDatastore
(boolean writeStatsToDatastore)
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
dbId
@Id private org.bson.types.ObjectId dbId -
remoteAllowedCIDR
@Value("${remoteAllowedCIDR:${settings.remoteAllowedCIDR:127.0.0.1}}") private String remoteAllowedCIDRComma separated CIDR that rest services are allowed to response Allowed IP addresses to reach REST API, It must be in CIDR format as a.b.c.d/x -
mp4MuxingEnabled
It's mandatory, If it is set true then a mp4 file is created into/streams directory Default value is false -
webMMuxingEnabled
@Value("${webMMuxingEnabled:${settings.webMMuxingEnabled:false}}") private boolean webMMuxingEnabledEnable/Disable WebM recording -
addDateTimeToMp4FileName
@Value("${addDateTimeToMp4FileName:${settings.addDateTimeToMp4FileName:false}}") private boolean addDateTimeToMp4FileNameIt's mandatory, Date and time are added to created .mp4 file name, Default value is false -
fileNameFormat
The format of output mp4 and ts files. To add resolution like stream1_240p.mp4, add %r to the string To add bitrate like stream1_500kbps, add %b to the string Add both for stream1_240p500kbps -
hlsMuxingEnabled
Enable/disable hls recording If it is set true then HLS files are created into/streams and HLS playing is enabled, Default value is true -
encoderSettingsString
@Value("${encoderSettingsString:${settings.encoderSettingsString:}}") private String encoderSettingsStringEncoder settings in comma separated format This must be set for adaptive streaming, If it is empty SFU mode will be active in WebRTCAppEE, video height, video bitrate, and audio bitrate are set as an example, Ex. 480,300000,96000,360,200000,64000. -
signalingEnabled
This is for making this instance run also as a signaling server. Signaling Server lets Ant Media Server instances behind NAT stream its content to the peer in the Internet -
signalingAddress
This is for using another Ant Media instance as signaling server. If your server is behind a NAT it will allow possible connection. It should be full qualified URI like this ws://107.23.25.77:5080/WebRTCAppEE/websocket/signaling -
hlsListSize
Number of segments(chunks) in m3u8 files Set the maximum number of playlist entries, If 0 the list file will contain all the segments, -
hlsTime
Duration of segments in m3u8 files Target segment length in seconds, Segment will be cut on the next key frame after this time has passed. -
uploadExtensionsToS3
@Value("${uploadExtensionsToS3:${settings.uploadExtensionsToS3:7}}") private int uploadExtensionsToS3Binary entity for uploading the extensions 0 means does not upload, 1 means upload Least significant digit switches mp4 files upload to s3 Second digit switches HLS files upload to s3 Most significant digit switches PNG files upload to s3 Example: 5 ( 101 in binary ) means upload mp4 and PNG but not HLS HLS files still will be saved on the server if deleteHLSFilesOnEnded flag is false -
s3StorageClass
-
endpointHealthCheckPeriodMs
@Value("${endpointHealthCheckPeriodMs:${settings.endpoint.healthCheckPeriodMs:2000}}") private int endpointHealthCheckPeriodMsEndpoint will try to republish if error occurs, however the error might get fixed internally in case of small issues without republishing This value is the check time for endpoint in 3 trials For example for 2 seconds, there will be 2 checks in 2 second intervals, if each of them fails it will try to republish in 3rd check. -
endpointRepublishLimit
@Value("${endpointRepublishLimit:${settings.endpoint.republishLimit:3}}") private int endpointRepublishLimitThis limit is for republishing to a certain endpoint for how many times For example in case we tried to republish 3 times and still got an error We conclude that the endpoint is dead and close it. -
dashSegDuration
Duration of segments in mpd files, Segments are a property of DASH. A segment is the minimal download unit. -
dashFragmentDuration
@Value("${dashFragmentDuration:${settings.dashFragmentDuration:0.5}}") private String dashFragmentDurationFragments are a property of fragmented MP4 files, Typically a fragment consists of moof + mdat. -
targetLatency
Latency of the DASH streaming, -
dashWindowSize
DASH window size, Number of files in manifest -
dashExtraWindowSize
@Value("${dashExtraWindowSize:${settings.dashExtraWindowSize:5}}") private String dashExtraWindowSizeDASH extra window size, Number of segments kept outside of the manifest before removing from disk -
lLDashEnabled
Enable low latency dash, This settings is effective if dash is enabled -
lLHLSEnabled
Enable low latency hls via dash muxer, LLHLS is effective if dash is enabled. -
hlsEnabledViaDash
Enable hls through DASH muxer, LLHLS is effective if dash is enabled. -
useTimelineDashMuxing
@Value("${useTimelineDashMuxing:${settings.dash.useTimeline:false}}") private boolean useTimelineDashMuxingUse timeline in dash muxing. -
webRTCEnabled
Enable/disable webrtc, It's mandatory, If it is set true then WebRTC playing is enabled, Default value is false -
useOriginalWebRTCEnabled
@Value("${useOriginalWebRTCEnabled:${settings.useOriginalWebRTCEnabled:false}}") private boolean useOriginalWebRTCEnabledThe flag that sets using the original webrtc stream in streaming, This setting is effective if there is any adaptive bitrate setting, For instance assume that there is adaptive bitrate with 480p and incoming stream is 720p Then if this setting is true, there are two bitrates for playing 720p and 480p, In this case if this setting is false, there is one bitrate for playing that is 480p -
deleteHLSFilesOnEnded
@Value("${deleteHLSFilesOnEnded:${settings.deleteHLSFilesOnEnded:true}}") private boolean deleteHLSFilesOnEndedIt's mandatory, If this value is true, hls files(m3u8 and ts files) are deleted after the broadcasting has finished, Default value is true. -
deleteDASHFilesOnEnded
@Value("${deleteDASHFilesOnEnded:${settings.deleteDASHFilesOnEnded:true}}") private boolean deleteDASHFilesOnEndedIf this value is true, dash files(mpd and m4s files) are deleted after the broadcasting has finished. -
tokenHashSecret
The secret string used for creating hash based tokens The key that used in hash generation for hash-based access control. -
hashControlPublishEnabled
@Value("${hashControlPublishEnabled:${settings.hashControlPublishEnabled:false}}") private boolean hashControlPublishEnabledIt's mandatory, If it is set true then hash based access control enabled for publishing, enable hash control as token for publishing operations using shared secret Default value is false. -
hashControlPlayEnabled
@Value("${hashControlPlayEnabled:${settings.hashControlPlayEnabled:false}}") private boolean hashControlPlayEnabledIt's mandatory, If it is set true then hash based access control enabled for playing, enable hash control as token for playing operations using shared secret Default value is false. -
listenerHookURL
The URL for action callback You must set this to subscribe some event notifications, For details check: https://antmedia.io/webhook-integration/ -
acceptOnlyStreamsInDataStore
@Value("${acceptOnlyStreamsInDataStore:${settings.acceptOnlyStreamsInDataStore:false}}") private boolean acceptOnlyStreamsInDataStoreThe control for publishers It's mandatory, If it is set true you cannot start publishing unless you add the stream id to the database, You can add stream id by REST API. Default value is false. -
acceptOnlyRoomsInDataStore
@Value("${acceptOnlyRoomsInDataStore:${settings.acceptOnlyRoomsInDataStore:false}}") private boolean acceptOnlyRoomsInDataStoreThe control for rooms -
publishTokenControlEnabled
@Value("${publishTokenControlEnabled:${settings.publishTokenControlEnabled:false}}") private boolean publishTokenControlEnabledThe settings for enabling one-time token control mechanism for accessing resources and publishing Check for details: https://antmedia.io/secure-video-streaming/. Default value is false. -
playTokenControlEnabled
@Value("${playTokenControlEnabled:${settings.playTokenControlEnabled:false}}") private boolean playTokenControlEnabledThe settings for enabling one-time token control mechanism for accessing resources and publishing It's mandatory, This enables token control, Check for details: https://antmedia.io/secure-video-streaming/. Default value is false. -
timeTokenSubscriberOnly
@Value("${timeTokenSubscriberOnly:${settings.timeTokenSubscriberOnly:false}}") private boolean timeTokenSubscriberOnlyThe settings for accepting only time based token subscribers as connections to the streams -
enableTimeTokenForPlay
@Value("${enableTimeTokenForPlay:${settings.enableTimeTokenForPlay:false}}") private boolean enableTimeTokenForPlayThe setting for accepting only time based token(TOTP) subscribers as connections to the streams -
timeTokenSecretForPlay
TOTP(Time-based One Time Password) Token Secret for Playing. If subscriber is not available in database, server checks the TOTP code against this value -
enableTimeTokenForPublish
@Value("${enableTimeTokenForPublish:${settings.enableTimeTokenForPublish:false}}") private boolean enableTimeTokenForPublishThe settings for accepting only time based token(TOTP) subscribers as connections to the streams -
timeTokenSecretForPublish
TOTP(Time-based One Time Password) Token Secret for Publishing. If subscriber is not available in database, server checks the TOTP code against this value -
timeTokenPeriod
period for the generated time token -
hlsPlayListType
It can be event or vod, Check HLS documentation for EXT-X-PLAYLIST-TYPE. -
hlsSegmentType
HLS Muxer segment type. It can be "mpegts" or "fmp4" fmp4 is compatible to play the HEVC HLS Streams -
vodFolder
The path for manually saved used VoDs Determines the directory to store VOD files. -
previewOverwrite
Overwrite preview files if exist, default value is false If it is set true and new stream starts with the same id, preview of the new one overrides the previous file, If it is false previous file saved with a suffix. -
stalkerDBServer
Address of the Stalker Portal DB server Database host address of IP TV Ministra platform. -
stalkerDBUsername
Username of stalker portal DB Database user name of IP TV Ministra platform. -
stalkerDBPassword
Password of the stalker portal DB User Database password of IP TV Ministra platform. -
objectDetectionEnabled
@Value("${objectDetectionEnabled:${settings.objectDetectionEnabled:false}}") private boolean objectDetectionEnabledIt's mandatory, The directory contains the tensorflow object detection model If it is set true then object detection algorithm is run for streaming video, Default value is false. -
createPreviewPeriod
@Value("${createPreviewPeriod:${settings.createPreviewPeriod:5000}}") private int createPreviewPeriodIt's mandatory, This determines the period (milliseconds) of preview (png) file creation, This file is created into/preview directory. Default value is 5000. -
restartStreamFetcherPeriod
@Value("${restartStreamFetcherPeriod:${settings.streamFetcherRestartPeriod:0}}") private int restartStreamFetcherPeriodPeriod of restarting stream fetchers automaticallyin seconds. If it's more than 0, stream fetcher (aka. stream source) are restarted every seconds that is specified in this parameter. Restart time for fetched streams from external sources, Default value is 0 -
startStreamFetcherAutomatically
Flag to specify Stream sources whether to start automatically when server is started. If it is true, stream sources are started automatically when server is started If it's false, stream sources need to be started programmatically or manually by the user -
streamFetcherBufferTime
Stream fetcher buffer time in milliseconds, Stream is buffered for this duration and after that it will be started. It's also good for re-ordering packets. 0 means no buffer, Default value is 0 -
hlsflags
@Value("${hlsflags:${settings.hlsflags:delete_segments+program_date_time}}") private String hlsflagsHLS Flags for FFmpeg HLS Muxer, Please add value by plus prefix in the properties file like this settings.hlsflags=+program_date_time you can add + separated more options like below settings.hlsflags=+program_date_time+round_durations+append_list Separate with + or -. Check for details: https://ffmpeg.org/ffmpeg-formats.html#Options-6 -
mySqlClientPath
-
muxerFinishScript
This is a script file path that is called by Runtime when muxing is finished, Bash script file path will be called after stream finishes. -
webRTCFrameRate
It's mandatory, Determines the frame rate of video publishing to the WebRTC players, Default value is 30 because users are complaining about the 20fps(previous value) and may not know to change it -
webRTCPortRangeMin
@Value("${webRTCPortRangeMin:${settings.webrtc.portRangeMin:50000}}") private int webRTCPortRangeMinMin port number of the port range of WebRTC, It's effective when user publishes stream, This value should be less than thewebRTCPortRangeMax
Determines the minimum port number for WebRTC connections, Default value is 0. -
webRTCPortRangeMax
@Value("${webRTCPortRangeMax:${settings.webrtc.portRangeMax:60000}}") private int webRTCPortRangeMaxMax port number of the port range of WebRTC, It's effective when user publishes stream In order to port range port this value should be higher thanwebRTCPortRangeMin
-
stunServerURI
@Value("${stunServerURI:${settings.webrtc.stunServerURI:stun:stun1.l.google.com:19302}}") private String stunServerURISTUN or TURN Server URI STUN server URI used for WebRTC ICE candidates You can check: https://antmedia.io/learn-webrtc-basics-components/, Default value is stun:stun.l.google.com:19302 STUN or TURN URL can be set for this properoy -
turnServerUsername
@Value("${turnServerUsername:${settings.webrtc.turnServerUsername:}}") private String turnServerUsernameTURN server username for WebRTC ICE candidates. In order to be effective,#stunServerURI
and#turnServerCredential
should be set -
turnServerCredential
@Value("${turnServerCredential:${settings.webrtc.turnServerCredential:}}") private String turnServerCredentialTURN server credentai for WebRTC ICE candidates. In order to be effective,#stunServerURI
and#turnServerUsername
should be set -
webRTCTcpCandidatesEnabled
@Value("${webRTCTcpCandidatesEnabled:${settings.webrtc.tcpCandidateEnabled:false}}") private boolean webRTCTcpCandidatesEnabledIt's mandatory, TCP candidates are enabled/disabled.It's effective when user publishes stream It's disabled by default If it is set true then TCP candidates can be used for WebRTC connection, If it is false only UDP port will be used, Default value is true. -
webRTCSdpSemantics
@Value("${webRTCSdpSemantics:${settings.webrtc.sdpSemantics:unifiedPlan}}") private String webRTCSdpSemanticsWebRTC SDP Semantics It can "planB" or "unifiedPlan" -
portAllocatorFlags
Port Allocator Flags for WebRTC PORTALLOCATOR_DISABLE_UDP = 0x01, PORTALLOCATOR_DISABLE_STUN = 0x02, PORTALLOCATOR_DISABLE_RELAY = 0x04, -
encoderName
Name of the encoder to be used in adaptive bitrate, If there is a GPU, server tries to open h264_nvenc, If there is no GPU, server tries to open libx264 by default Can be h264_nvenc or libx264. If you set h264_nvenc but it cannot be opened then libx264 will be used, Name of the encoder to be used in adaptive bitrate, If there is a GPU, server tries to open h264_nvenc, If there is no GPU, server tries to open libx264 by default -
encoderPreset
Encoder's preset value in adaptive bitrate Libx264 presets are there https://trac.ffmpeg.org/wiki/Encode/H.264 Ant Media Server uses "veryfast" by default -
encoderProfile
Encoder profile in adaptive bitrate, It's baseline by default. -
encoderLevel
Encoder level in adaptive bitrate -
encoderRc
Encoding rate control in adaptive bitrate -
encoderSpecific
Encoder specific configuration for libx264 in adaptive bitrate, This is the x264-params in ffmpeg Specific settings for selected encoder, For libx264 please check https://trac.ffmpeg.org/wiki/Encode/H.264 -
encoderThreadCount
Encoder thread count. -
encoderThreadType
Encoder thread type 0: auto 1: frame 2: slice -
vp8EncoderSpeed
Set quality/speed ratio modifier, Higher values speed up the encode at the cost of quality. -
vp8EncoderDeadline
@Value("${vp8EncoderDeadline:${settings.encoding.vp8.deadline:realtime}}") private String vp8EncoderDeadlineVP8 Encoder deadline: best good realtime -
vp8EncoderThreadCount
@Value("${vp8EncoderThreadCount:${settings.encoding.vp8.threadCount:1}}") private int vp8EncoderThreadCountVP8 Encoder thread count. -
previewHeight
It's mandatory, Determines the height of preview file, Default value is 480 -
generatePreview
Generate preview if there is any adaptive settings, Preview generation depends on adaptive settings and it's generated by default -
writeStatsToDatastore
@Value("${writeStatsToDatastore:${settings.writeStatsToDatastore:true}}") private boolean writeStatsToDatastore -
encoderSelectionPreference
@Value("${encoderSelectionPreference:${settings.encoderSelectionPreference:gpu_and_cpu}}") private String encoderSelectionPreferenceCan be "gpu_and_cpu" or "only_gpu" "only_gpu" only tries to open the GPU for encoding, If it cannot open the gpu codec it returns false "gpu_and_cpu" first tries to open the GPU for encoding if it does not open, it tries to open the CPU for encoding -
allowedPublisherCIDR
@Value("${allowedPublisherCIDR:${settings.allowedPublisherCIDR:}}") private String allowedPublisherCIDRComma separated CIDR that server accepts/ingests RTMP streams from, Default value is null which means that it accepts/ingests stream from everywhere -
excessiveBandwidthValue
@Value("${excessiveBandwidthValue:${settings.excessiveBandwidth.threshold:300000}}") private int excessiveBandwidthValueThe excessive bandwidth threshold value -
excessiveBandwidthCallThreshold
@Value("${excessiveBandwidthCallThreshold:${settings.excessiveBandwidth.call.threshold:3}}") private int excessiveBandwidthCallThresholdThe excessive bandwidth call threshold value -
excessiveBandwithTryCountBeforeSwitchback
@Value("${excessiveBandwithTryCountBeforeSwitchback:${settings.excessiveBandwith.tryCount.beforeSwitchback:4}}") private int excessiveBandwithTryCountBeforeSwitchback -
excessiveBandwidthAlgorithmEnabled
@Value("${excessiveBandwidthAlgorithmEnabled:${settings.excessiveBandwidth_enabled:false}}") private boolean excessiveBandwidthAlgorithmEnabledEnable or disable excessive bandwidth algorithm -
packetLossDiffThresholdForSwitchback
@Value("${packetLossDiffThresholdForSwitchback:${settings.excessiveBandwidth.packetLossDiffThreshold.forSwitchback:10}}") private int packetLossDiffThresholdForSwitchbackpacket loss threshold if packetLoss is bigger than this value in ExcessiveBandwidth algorithm, it switches back to lower quality without try every attemptsexcessiveBandwithTryCountBeforeSwitchback
-
rttMeasurementDiffThresholdForSwitchback
@Value("${rttMeasurementDiffThresholdForSwitchback:${settings.excessiveBandwidth.rttMeasurementDiffThreshold.forSwitchback:20}}") private int rttMeasurementDiffThresholdForSwitchbackrtt measurement threshold diff if rttMeasurement is bigger than this value in ExcessiveBandwidth algorithm, it switches back to lower quality without try every attempts#setTryCountBeforeSwitchback(int)
-
replaceCandidateAddrWithServerAddr
@Value("${replaceCandidateAddrWithServerAddr:${settings.replaceCandidateAddrWithServerAddr:false}}") private boolean replaceCandidateAddrWithServerAddrReplace candidate addr with server addr, In order to use it you should set serverName in conf/red5.properties -
appName
Applicaiton name for the data store which should exist so that no default value such as LiveApp, WebRTCApp etc. -
encodingTimeout
Timeout for encoding If encoder cannot encode a frame in this timeout, streaming is finished by server. -
webRTCClientStartTimeoutMs
@Value("${webRTCClientStartTimeoutMs:${settings.webrtc.client.start.timeoutMs:10000}}") private int webRTCClientStartTimeoutMsIf webrtc client(publish or play) is not started in this time, it'll close automatically. It's also being used as a timeout to let publisher reconnect in fluctuating networks or ungraceful termination such as closing the browser without closing the connection. -
defaultDecodersEnabled
@Deprecated @Value("${defaultDecodersEnabled:${settings.defaultDecodersEnabled:false}}") private boolean defaultDecodersEnabledDeprecated.Set true to enable WebRTC default decoders(such as VP8, VP9) Set false to only enable h264 decoder If it is set true, WebRTC using default decoders(such as VP8, VP9). If it is set false, WebRTC using only default h264 decoder. Default value is false. Deprecated: Usevp8Enabled
andh264enabled
-
updateTime
private long updateTimeUpdate time of the setting in the cluster -
httpForwardingExtension
@Value("${httpForwardingExtension:${settings.httpforwarding.extension:}}") private String httpForwardingExtensionForwards the http requests with this extension tohttpForwardingBaseURL
It supports comma separated extensions Like mp4,m3u8 Don't add any leading, trailing white spaces -
httpForwardingBaseURL
@Value("${httpForwardingBaseURL:${settings.httpforwarding.baseURL:}}") private String httpForwardingBaseURLForward the incoming http request to this base url -
maxAnalyzeDurationMS
@Value("${maxAnalyzeDurationMS:${settings.rtmp.maxAnalyzeDurationMS:1500}}") private int maxAnalyzeDurationMSMax analyze duration in for determining video and audio existence in RTMP, SRT and Stream Sources -
disableIPv6Candidates
@Value("${disableIPv6Candidates:${settings.disableIPv6Candidates:true}}") private boolean disableIPv6CandidatesEnable/Disable IPv6 Candidates for WebRTC It's disabled by default -
rtspPullTransportType
@Value("${rtspPullTransportType:${settings.rtspPullTransportType:3}}") private String rtspPullTransportTypeSpecify the rtsp transport type in pulling IP Camera or RTSP sources It can have string or integer values. One value can be given at a time as string. It can be udp, tcp udp_multicast, http, https Multiple values can be given at a time by OR operation udp -> 1 << 0 = 1 tcp -> 1 << 1 = 2 udp_multicast -> 1 << 2 = 4 http -> 1 << 8 = 256 https -> 1 << 9 = 512 Default value is 3 which is udp(1) OR tcp(2) 0x01 | 0x10 = 0x11 = 3 -
rtspTimeoutDurationMs
@Value("${rtspTimeoutDurationMs:${settings.rtspTimeoutDurationMs:5000}}") private int rtspTimeoutDurationMsSpecify the rtspTimeoutDurationMs in pulling IP Camera or RTSP sources -
maxFpsAccept
Max FPS value in RTMP streams -
maxResolutionAccept
Max Resolution value in RTMP streams -
maxBitrateAccept
Max Bitrate value in RTMP streams -
h264Enabled
Enable/Disable h264 encoding It's enabled by default -
vp8Enabled
Enable/Disable vp8 encoding It's disabled by default -
h265Enabled
Enable/disable H265 Encoding Disabled by default -
dataChannelEnabled
@Value("${dataChannelEnabled:${settings.dataChannelEnabled:true}}") private boolean dataChannelEnabledEnable/Disable data channel It's disabled by default When data channel is enabled, publisher can send messages to the players -
dataChannelPlayerDistribution
@Value("${dataChannelPlayerDistribution:${settings.dataChannelPlayerDistrubution:all}}") private String dataChannelPlayerDistributionDefines the distribution list for player messages it can be none/publisher/all none: player messages are delivered to nobody publisher: player messages are delivered to only publisher all: player messages are delivered to everyone both publisher and all players -
rtmpIngestBufferTimeMs
@Value("${rtmpIngestBufferTimeMs:${settings.rtmpIngestBufferTimeMs:0}}") private long rtmpIngestBufferTimeMsRTMP ingesting buffer time in Milliseconds Server buffer this amount of video packet in order to compensate when stream is not received for some time -
dataChannelWebHookURL
@Value("${dataChannelWebHookURL:${settings.dataChannelWebHook:}}") private String dataChannelWebHookURLAll data channel messages are delivered to these hook as well So that it'll be integrated to any third party application -
h265EncoderPreset
-
h265EncoderProfile
-
h265EncoderRc
-
h265EncoderSpecific
-
h265EncoderLevel
-
heightRtmpForwarding
@Value("${heightRtmpForwarding:${settings.heightRtmpForwarding:360}}") private int heightRtmpForwardingThe height of the stream that is transcoded from incoming WebRTC stream to the RTMP This settings is effective in community edition by default It's also effective WebRTC to RTMP direct forwarding by giving rtmpForward=true in WebSocket communication in Enterprise Edition -
audioBitrateSFU
In SFU mode we still transcode the audio to opus and aac This settings determines the audio bitrate for opus and aac It's the bitrate that is used transcoding the audio in AAC and Opus After version(2.3), we directly forward incoming audio to the viewers without transcoding. -
dashMuxingEnabled
@Value("${dashMuxingEnabled:${settings.dashMuxingEnabled:false}}") private boolean dashMuxingEnabledEnable/disable dash recording -
aacEncodingEnabled
@Value("${aacEncodingEnabled:${settings.aacEncodingEnabled:true}}") private boolean aacEncodingEnabledIf aacEncodingEnabled is true, aac encoding will be active even if mp4 or hls muxing is not enabled, If aacEncodingEnabled is false, aac encoding is only activated if mp4 or hls muxing is enabled in the settings, This value should be true if you're sending stream to RTMP endpoints or enable/disable mp4 recording on the fly -
gopSize
GOP size, AKA key frame interval, GOP size is group of pictures that encoder sends key frame for each group, The unit is not the seconds, Please don't confuse the seconds that are used in key frame intervals If GOP size is 50 and your frame rate is 25, it means that encoder will send key frame for every 2 seconds, Default value is 0 so it uses incoming gop size by default. -
constantRateFactor
Constant Rate Factor used by x264, x265, VP8, Use values between 4-51 -
webRTCViewerLimit
Application level WebRTC viewer limit -
toBeDeleted
private boolean toBeDeletedSet to true when you want to delete an application -
pullWarFile
private boolean pullWarFileSet to true when the app settings are only created for pulling the war file. -
warFileOriginServerAddress
Address of the original place of the war file. -
jwtSecretKey
Application JWT secret key for accessing the REST API -
jwtControlEnabled
@Value("${jwtControlEnabled:${settings.jwtControlEnabled:false}}") private boolean jwtControlEnabledApplication JWT Control Enabled for accessing the REST API TODO: Remove this field. Just check if jwtSecretKey is not empty then it means jwt filter is enabled -
ipFilterEnabled
Application IP Filter Enabled -
ingestingStreamLimit
@Value("${ingestingStreamLimit:${settings.ingestingStreamLimit:-1}}") private int ingestingStreamLimitApplication level total incoming stream limit -
webRTCKeyframeTime
WebRTC Keyframe Time, Ant Media Server asks key frame for every webRTCKeyframeTime in SFU mode, It's in milliseconds -
jwtStreamSecretKey
Application JWT stream secret key. Provide 32 character or more in length -
publishJwtControlEnabled
@Value("${publishJwtControlEnabled:${settings.publishJwtControlEnabled:false}}") private boolean publishJwtControlEnabledThe settings for enabling jwt token filter mechanism for accessing resources and publishing -
playJwtControlEnabled
@Value("${playJwtControlEnabled:${settings.playJwtControlEnabled:false}}") private boolean playJwtControlEnabledThe settings for enabling jwt token filter mechanism for accessing resources and playing -
dashHttpStreaming
@Value("${dashHttpStreaming:${settings.dash.httpStreaming:true}}") private boolean dashHttpStreamingUse http streaming in Low Latency Dash, If it's true, it sends files through http If it's false, it writes files to disk directly In order to have Low Latency http streaming should be used -
s3StreamsFolderPath
@Value("${s3StreamsFolderPath:${settings.s3.streams.folder.path:streams}}") private String s3StreamsFolderPathIt's S3 streams MP4, WEBM and HLS files storage name . It's streams by default. -
s3PreviewsFolderPath
@Value("${s3PreviewsFolderPath:${settings.s3.previews.folder.path:previews}}") private String s3PreviewsFolderPathIt's S3 stream PNG files storage name . It's previews by default. -
dashHttpEndpoint
-
hlsHttpEndpoint
Http endpoint to push the HLS stream -
forceDecoding
Force stream decoding even if there is no adaptive setting -
addOriginalMuxerIntoHLSPlaylist
@Value("${addOriginalMuxerIntoHLSPlaylist:${settings.addOriginalMuxerIntoHlsPlaylist:true}}") private boolean addOriginalMuxerIntoHLSPlaylistAdd the original hls stream to the playlist if adaptive bitrate setting is enabled -
s3RecordingEnabled
@Value("${s3RecordingEnabled:${settings.s3RecordingEnabled:false}}") private boolean s3RecordingEnabledApplication JWT Control Enabled -
s3AccessKey
S3 Access key -
s3SecretKey
S3 Secret Key -
s3BucketName
S3 Bucket Name -
s3RegionName
S3 Region Name -
s3Endpoint
S3 Endpoint -
s3CacheControl
@Value("${s3CacheControl:${settings.s3CacheControl:no-store, no-cache, must-revalidate, max-age=0}}") private String s3CacheControlS3 Cache Control Metadata -
s3Permission
-
hlsEncryptionKeyInfoFile
@Value("${hlsEncryptionKeyInfoFile:${settings.hlsEncryptionKeyInfoFile:}}") private String hlsEncryptionKeyInfoFileHLS Encryption key info file full path. Format of the file ``` key URI key file path IV (optional) `` The first line of key_info_file specifies the key URI written to the playlist. The key URL is used to access the encryption key during playback. The second line specifies the path to the key file used to obtain the key during the encryption process. The key file is read as a single packed array of 16 octets in binary format. The optional third line specifies the initialization vector (IV) as a hexadecimal string to be used instead of the segment sequence number (default) for encryption. Changes to key_info_file will result in segment encryption with the new key/IV and an entry in the playlist for the new key URI/IV if hls_flags periodic_rekey is enabled. Key info file example: ``` http://server/file.key /path/to/file.key 0123456789ABCDEF0123456789ABCDEF ``` -
jwksURL
-
forceAspectRatioInTranscoding
@Value("${forceAspectRatioInTranscoding:${settings.forceAspectRationInTranscoding:false}}") private boolean forceAspectRatioInTranscodingThis settings forces the aspect ratio to match the incoming aspect ratio perfectly. For instance, if the incoming source is 1280x720 and there is an adaptive bitrate with 480p There is no integer value that makes this equation true 1280/720 = x/480 -> x = 853.333 So Ant Media Server can change the video height to match the aspect ratio perfectly. This is critical when there are multi-bitrates in the dash streaming. Because dash requires perfect match of aspect ratios of all streams The disadvantage of this approach is that there may be have some uncommon resolutions at the result of the transcoding. So that default value is false -
webhookAuthenticateURL
@Value("${webhookAuthenticateURL:${settings.webhookAuthenticateURL:}}") private String webhookAuthenticateURLEnable Webhook Authentication when publishing streams -
maxAudioTrackCount
The maximum audio track in a multitrack playing connection If it is -1 then a new audio track connection is established for each track otherwise, audio connections are established as many as this value and the limited connections are shared between tracks. -
maxVideoTrackCount
The maximum video track in a multitrack playing connection If it is -1 then a new video track connection is established for each track otherwise, video connections are established as many as this value and the limited connections are shared between tracks. -
vodUploadFinishScript
@Value("${vodUploadFinishScript:${settings.vodUploadFinishScript:}}") private String vodUploadFinishScriptThis is a script file path that is called by Runtime when VoD upload is finished, Bash script file path will be called after upload process finishes. -
contentSecurityPolicyHeaderValue
@Value("${contentSecurityPolicyHeaderValue:${settings.contentSecurityPolicyHeaderValue:}}") private String contentSecurityPolicyHeaderValueValue of the content security policy header(csp) The new Content-Security-Policy HTTP response header helps you reduce XSS risks on modern browsers by declaring which dynamic resources are allowed to load. https://content-security-policy.com/ -
rtmpPlaybackEnabled
@Value("${rtmpPlaybackEnabled:${settings.rtmpPlaybackEnabled:false}}") private boolean rtmpPlaybackEnabledRTMP playback is not maintained and its support will be removed completely. It also causes some stability issues on the server side. We highly recommend users to use CMAF(DASH) instead of RTMP playback -
originEdgeIdleTimeout
@Value("${originEdgeConnectionIdleTimeout:${settings.originEdgeIdleTimeout:2}}") private int originEdgeIdleTimeoutThe maximum idle time between origin and edge connection. After this timeout connection will be re-established if the stream is still active on origin. -
addDateTimeToHlsFileName
@Value("${addDateTimeToHlsFileName:${settings.addDateTimeToHlsFileName:false}}") private boolean addDateTimeToHlsFileNameIt's mandatory, Date and time are added to created .m3u8 and .ts file name, Default value is false -
playWebRTCStreamOnceForEachSession
@Value("${playWebRTCStreamOnceForEachSession:${settings.playWebRTCStreamOnceForEachSession:true}}") private boolean playWebRTCStreamOnceForEachSessionThis setting prevents playing stream id more than once in the same websocket/webrtc session. If it is true, trying to play stream id more than once in the same websocket session will produce 'already playing' error Default value is true. It uses session id to match subscriber -
statsBasedABREnabled
@Value("${statsBasedABRAlgorithmEnabled:${settings.statsBasedABREnabled:true}}") private boolean statsBasedABREnabledEnables the WebRTC statistics based Adaptive Bitrate switch algorithm -
abrDownScalePacketLostRatio
@Value("${abrDownScalePacketLostRatio:${settings.abrDownScalePacketLostRatio:1}}") private float abrDownScalePacketLostRatioPacket lost percentage to decide serving video with lower resolution -
abrUpScalePacketLostRatio
@Value("${abrUpScalePacketLostRatio:${settings.abrUpScalePacketLostRatio:0.1f}}") private float abrUpScalePacketLostRatioPacket lost percentage to decide serving video with higher resolution -
abrUpScaleRTTMs
Round trip time in ms to decide serving video with higher resolution -
abrUpScaleJitterMs
Jitter in ms to decide serving video with higher resolution -
clusterCommunicationKey
@Value("${clusterCommunicationKey:${settings.clusterCommunicationKey:#{ T(org.apache.commons.lang3.RandomStringUtils).randomAlphanumeric(32)}}}") private String clusterCommunicationKeyKey that is being used to validate the requests between communication in the cluster nodes In initialization no matter if spring or field definition is effective, the important thing is that having some random value -
id3TagEnabled
Enables the ID3 Tag support for HLS -
sendAudioLevelToViewers
Ant Media Server can get the audio level from incoming RTP Header in WebRTC streaming and send to the viewers. It's very useful in video conferencing to detect if user speaks. Ant Media Server sends audio level through webrtc data channel with JSON format { "streamId":${streamId}, "eventType": "UPDATE_AUDIO_LEVEL", "audioLevel": ${audioLevel}, "command": "event" } ${streamId} is the id of the stream that this messages carries its audio level ${audioLevel} is the audio level of the stream. It's between 0 and 127. If it's 0, it means audio level is max. If it's 127, it means it's audio level is min. Ant Media Server sends audio level 5 times in a second -
hwScalingEnabled
@Value("${hwScalingEnabled:${settings.encoding.hwScalingEnabled:false}}") private boolean hwScalingEnabledEnable/disable video frame scaling in GPU when there is an adaptive bitrate -
firebaseAccountKeyJSON
Firebase Service Account Key JSON to send push notification through Firebase Cloud Messaging -
subscriberAuthenticationKey
@Value("${subscriberAuthenticationKey:#{ T(org.apache.commons.lang3.RandomStringUtils).randomAlphanumeric(32)}}") private String subscriberAuthenticationKeyThis is JWT Secret to authenticate the user for push notifications. JWT token should be generated with the following secret: subscriberId(username, email, etc.) + subscriberAuthenticationKey -
apnsServer
(Apple Push Notification) Apple Push Notification Server Default value is development enviroment(api.sandbox.push.apple.com) and production enviroment is api.push.apple.com -
apnTeamId
APN(Apple Push Notification) team id -
apnPrivateKey
APN(Apple Push Notification) private key -
apnKeyId
APN(Apple Push Notification) key Id -
webhookRetryCount
Retry count on webhook POST failure -
secureAnalyticEndpoint
If it's false, jwt token should be send in analytic events to the AnalyticsEventLogger. It usesjwtSecretKey
for the secret key -
webhookRetryDelay
Delay in milliseconds between webhook attempts on POST failure. -
webhookPlayAuthUrl
Webhook webrtc play authentication url. -
recordingSubfolder
Subfolder for the recording files (mp4 and webm) -
webhookContentType
@Value("${webhookContentType:#{ T(org.apache.http.entity.ContentType).APPLICATION_JSON.getMimeType() }}") private String webhookContentTypeThe content type that is used in the webhook POST request It's added for backward compatibility. Default value is application/json. Older version is using application/x-www-form-urlencoded as content type. If you don't want to change the content type, you can set this value to application/x-www-form-urlencoded -
iceGatheringTimeoutMs
-
customSettings
-
relayRTMPMetaDataToMuxers
Relay RTMP metadata to muxers. It's true by default RTMP can have metadata and it can be used for playback synchronization. If it's true, Ant Media Server relays the metadata to muxers. Currently, HLSMuxer supports this feature throughMuxer.writeMetaData(String, long)
-
dropWebRTCIngestIfNoPacketReceived
@Value("${dropWebRTCIngestIfNoPacketReceived:false}") private boolean dropWebRTCIngestIfNoPacketReceivedDrop webrtc ingest if no packet received. It's false by default because video or audio may be disabled in the stream It checks the audio/video packets in the WebRTC ingest stream. If no audio or no video packets are received in thewebRTCClientStartTimeoutMs
, it drops the stream.
-
-
Constructor Details
-
AppSettings
public AppSettings()
-
-
Method Details
-
isWriteStatsToDatastore
public boolean isWriteStatsToDatastore() -
getCustomSetting
-
setCustomSetting
-
setWriteStatsToDatastore
public void setWriteStatsToDatastore(boolean writeStatsToDatastore) -
isAddDateTimeToMp4FileName
public boolean isAddDateTimeToMp4FileName() -
setAddDateTimeToMp4FileName
public void setAddDateTimeToMp4FileName(boolean addDateTimeToMp4FileName) -
isMp4MuxingEnabled
public boolean isMp4MuxingEnabled() -
setMp4MuxingEnabled
public void setMp4MuxingEnabled(boolean mp4MuxingEnabled) -
setFileNameFormat
-
getFileNameFormat
-
isHlsMuxingEnabled
public boolean isHlsMuxingEnabled() -
setHlsMuxingEnabled
public void setHlsMuxingEnabled(boolean hlsMuxingEnabled) -
isDashMuxingEnabled
public boolean isDashMuxingEnabled() -
setSignalingEnabled
public void setSignalingEnabled(boolean signalingEnabled) -
isSignalingEnabled
public boolean isSignalingEnabled() -
setSignalingAddress
-
getSignalingAddress
-
setDashMuxingEnabled
public void setDashMuxingEnabled(boolean dashMuxingEnabled) -
getEndpointRepublishLimit
public int getEndpointRepublishLimit() -
setEndpointRepublishLimit
public void setEndpointRepublishLimit(int endpointRepublishLimit) -
getEndpointHealthCheckPeriodMs
public int getEndpointHealthCheckPeriodMs() -
setEndpointHealthCheckPeriodMs
public void setEndpointHealthCheckPeriodMs(int endpointHealthCheckPeriodMs) -
getHlsPlayListType
-
setHlsPlayListType
-
setUploadExtensionsToS3
public void setUploadExtensionsToS3(int uploadExtensionsToS3) -
getUploadExtensionsToS3
public int getUploadExtensionsToS3() -
setS3StorageClass
-
getS3StorageClass
-
getHlsTime
-
setHlsTime
-
getHlsListSize
-
setHlsListSize
-
isWebRTCEnabled
public boolean isWebRTCEnabled() -
setWebRTCEnabled
public void setWebRTCEnabled(boolean webRTCEnabled) -
encodersList2Str
-
encodersStr2List
-
getEncoderSettingsString
-
getEncoderSettings
-
setEncoderSettings
-
setEncoderSettingsString
-
isDeleteHLSFilesOnEnded
public boolean isDeleteHLSFilesOnEnded() -
setDeleteHLSFilesOnEnded
public void setDeleteHLSFilesOnEnded(boolean deleteHLSFilesOnEnded) -
getListenerHookURL
-
setListenerHookURL
-
isAcceptOnlyStreamsInDataStore
public boolean isAcceptOnlyStreamsInDataStore() -
setAcceptOnlyStreamsInDataStore
public void setAcceptOnlyStreamsInDataStore(boolean acceptOnlyStreamsInDataStore) -
isAcceptOnlyRoomsInDataStore
public boolean isAcceptOnlyRoomsInDataStore() -
setAcceptOnlyRoomsInDataStore
public void setAcceptOnlyRoomsInDataStore(boolean acceptOnlyRoomsInDataStore) -
isObjectDetectionEnabled
public boolean isObjectDetectionEnabled() -
getVodFolder
-
setVodFolder
-
getCreatePreviewPeriod
public int getCreatePreviewPeriod() -
setCreatePreviewPeriod
public void setCreatePreviewPeriod(int period) -
isPreviewOverwrite
public boolean isPreviewOverwrite() -
setPreviewOverwrite
public void setPreviewOverwrite(boolean previewOverwrite) -
getStalkerDBServer
-
setStalkerDBServer
-
getStalkerDBUsername
-
setStalkerDBUsername
-
getStalkerDBPassword
-
setStalkerDBPassword
-
getRestartStreamFetcherPeriod
public int getRestartStreamFetcherPeriod() -
setRestartStreamFetcherPeriod
public void setRestartStreamFetcherPeriod(int restartStreamFetcherPeriod) -
getStreamFetcherBufferTime
public int getStreamFetcherBufferTime() -
setStreamFetcherBufferTime
public void setStreamFetcherBufferTime(int streamFetcherBufferTime) -
getHlsflags
-
setHlsflags
-
getMySqlClientPath
-
setMySqlClientPath
-
isPublishTokenControlEnabled
public boolean isPublishTokenControlEnabled() -
setPublishTokenControlEnabled
public void setPublishTokenControlEnabled(boolean publishTokenControlEnabled) -
isPlayTokenControlEnabled
public boolean isPlayTokenControlEnabled() -
setPlayTokenControlEnabled
public void setPlayTokenControlEnabled(boolean playTokenControlEnabled) -
isTimeTokenSubscriberOnly
Deprecated.- Returns:
-
setTimeTokenSubscriberOnly
Deprecated. -
isEnableTimeTokenForPlay
public boolean isEnableTimeTokenForPlay() -
setEnableTimeTokenForPlay
public void setEnableTimeTokenForPlay(boolean enableTimeTokenForPlay) -
isEnableTimeTokenForPublish
public boolean isEnableTimeTokenForPublish() -
setEnableTimeTokenForPublish
public void setEnableTimeTokenForPublish(boolean enableTimeTokenForPublish) -
getMuxerFinishScript
-
setMuxerFinishScript
-
getWebRTCFrameRate
public int getWebRTCFrameRate() -
setWebRTCFrameRate
public void setWebRTCFrameRate(int webRTCFrameRate) -
getTokenHashSecret
-
setTokenHashSecret
-
isHashControlPlayEnabled
public boolean isHashControlPlayEnabled() -
setHashControlPlayEnabled
public void setHashControlPlayEnabled(boolean hashControlPlayEnabled) -
isHashControlPublishEnabled
public boolean isHashControlPublishEnabled() -
setHashControlPublishEnabled
public void setHashControlPublishEnabled(boolean hashControlPublishEnabled) -
resetDefaults
public void resetDefaults() -
getWebRTCPortRangeMax
public int getWebRTCPortRangeMax() -
setWebRTCPortRangeMax
public void setWebRTCPortRangeMax(int webRTCPortRangeMax) -
getWebRTCPortRangeMin
public int getWebRTCPortRangeMin() -
setWebRTCPortRangeMin
public void setWebRTCPortRangeMin(int webRTCPortRangeMin) -
getStunServerURI
-
setStunServerURI
-
isWebRTCTcpCandidatesEnabled
public boolean isWebRTCTcpCandidatesEnabled() -
setWebRTCTcpCandidatesEnabled
public void setWebRTCTcpCandidatesEnabled(boolean webRTCTcpCandidatesEnabled) -
getEncoderName
-
setEncoderName
-
getEncoderPreset
-
setEncoderPreset
-
getEncoderProfile
-
setEncoderProfile
-
getEncoderLevel
-
setEncoderLevel
-
getEncoderRc
-
setEncoderRc
-
getEncoderSpecific
-
setEncoderSpecific
-
getPreviewHeight
public int getPreviewHeight() -
setPreviewHeight
public void setPreviewHeight(int previewHeight) -
isUseOriginalWebRTCEnabled
public boolean isUseOriginalWebRTCEnabled() -
setUseOriginalWebRTCEnabled
public void setUseOriginalWebRTCEnabled(boolean useOriginalWebRTCEnabled) -
getRemoteAllowedCIDR
-
setRemoteAllowedCIDR
the getAllowedCIDRList and setAllowedCIDRList are synchronized because ArrayList may throw concurrent modification- Parameters:
remoteAllowedCIDR
-
-
getAllowedCIDRList
-
getAllowedPublisherCIDR
-
setAllowedPublisherCIDR
-
getAllowedPublisherCIDRList
-
fillFromInput
Fill aNetMask
list from a string input containing a comma-separated list of (hopefully valid)NetMask
s.- Parameters:
input
- The input stringtarget
- The list to fill- Returns:
- a string list of processing errors (empty when no errors)
-
getEncoderSelectionPreference
-
setEncoderSelectionPreference
-
getExcessiveBandwidthCallThreshold
public int getExcessiveBandwidthCallThreshold() -
setExcessiveBandwidthCallThreshold
public void setExcessiveBandwidthCallThreshold(int excessiveBandwidthCallThreshold) -
getExcessiveBandwidthValue
public int getExcessiveBandwidthValue() -
setExcessiveBandwidthValue
public void setExcessiveBandwidthValue(int excessiveBandwidthValue) -
getPortAllocatorFlags
public int getPortAllocatorFlags() -
setPortAllocatorFlags
public void setPortAllocatorFlags(int flags) -
getExcessiveBandwithTryCountBeforeSwitchback
public int getExcessiveBandwithTryCountBeforeSwitchback() -
isExcessiveBandwidthAlgorithmEnabled
public boolean isExcessiveBandwidthAlgorithmEnabled() -
getPacketLossDiffThresholdForSwitchback
public int getPacketLossDiffThresholdForSwitchback() -
getRttMeasurementDiffThresholdForSwitchback
public int getRttMeasurementDiffThresholdForSwitchback() -
setExcessiveBandwithTryCountBeforeSwitchback
public void setExcessiveBandwithTryCountBeforeSwitchback(int excessiveBandwithTryCountBeforeSwitchback) -
setExcessiveBandwidthAlgorithmEnabled
public void setExcessiveBandwidthAlgorithmEnabled(boolean excessiveBandwidthAlgorithmEnabled) -
setPacketLossDiffThresholdForSwitchback
public void setPacketLossDiffThresholdForSwitchback(int packetLossDiffThresholdForSwitchback) -
setRttMeasurementDiffThresholdForSwitchback
public void setRttMeasurementDiffThresholdForSwitchback(int rttMeasurementDiffThresholdForSwitchback) -
isReplaceCandidateAddrWithServerAddr
public boolean isReplaceCandidateAddrWithServerAddr() -
setReplaceCandidateAddrWithServerAddr
public void setReplaceCandidateAddrWithServerAddr(boolean replaceCandidateAddrWithServerAddr) -
getUpdateTime
public long getUpdateTime() -
setUpdateTime
public void setUpdateTime(long updateTime) -
setAppName
-
getAppName
-
getEncodingTimeout
public int getEncodingTimeout() -
setEncodingTimeout
public void setEncodingTimeout(int encodingTimeout) -
isDefaultDecodersEnabled
public boolean isDefaultDecodersEnabled() -
setDefaultDecodersEnabled
public void setDefaultDecodersEnabled(boolean defaultDecodersEnabled) -
getHttpForwardingExtension
-
setHttpForwardingExtension
-
getHttpForwardingBaseURL
-
setHttpForwardingBaseURL
-
getMaxAnalyzeDurationMS
public int getMaxAnalyzeDurationMS() -
setMaxAnalyzeDurationMS
public void setMaxAnalyzeDurationMS(int maxAnalyzeDurationMS) -
isGeneratePreview
public boolean isGeneratePreview() -
setGeneratePreview
public void setGeneratePreview(boolean generatePreview) -
isDisableIPv6Candidates
public boolean isDisableIPv6Candidates() -
setDisableIPv6Candidates
public void setDisableIPv6Candidates(boolean disableIPv6Candidates) -
getRtspPullTransportType
-
setRtspPullTransportType
-
getRtspTimeoutDurationMs
public int getRtspTimeoutDurationMs() -
setRtspTimeoutDurationMs
public void setRtspTimeoutDurationMs(int rtspTimeoutDurationMs) -
getMaxResolutionAccept
public int getMaxResolutionAccept() -
setMaxResolutionAccept
public void setMaxResolutionAccept(int maxResolutionAccept) -
isH264Enabled
public boolean isH264Enabled() -
setH264Enabled
public void setH264Enabled(boolean h264Enabled) -
isVp8Enabled
public boolean isVp8Enabled() -
setVp8Enabled
public void setVp8Enabled(boolean vp8Enabled) -
isH265Enabled
public boolean isH265Enabled() -
setH265Enabled
public void setH265Enabled(boolean h265Enabled) -
isDataChannelEnabled
public boolean isDataChannelEnabled() -
setDataChannelEnabled
public void setDataChannelEnabled(boolean dataChannelEnabled) -
getDataChannelPlayerDistribution
-
setDataChannelPlayerDistribution
-
getRtmpIngestBufferTimeMs
public long getRtmpIngestBufferTimeMs() -
setRtmpIngestBufferTimeMs
public void setRtmpIngestBufferTimeMs(long rtmpIngestBufferTimeMs) -
setDataChannelWebHookURL
-
getEncoderThreadCount
public int getEncoderThreadCount() -
setEncoderThreadCount
public void setEncoderThreadCount(int encoderThreadCount) -
getEncoderThreadType
public int getEncoderThreadType() -
setEncoderThreadType
public void setEncoderThreadType(int encoderThreadType) -
getWebRTCClientStartTimeoutMs
public int getWebRTCClientStartTimeoutMs() -
setWebRTCClientStartTimeoutMs
public void setWebRTCClientStartTimeoutMs(int webRTCClientStartTimeout) -
getH265EncoderProfile
-
getH265EncoderPreset
-
getH265EncoderLevel
-
getH265EncoderSpecific
-
getH265EncoderRc
-
setH265EncoderLevel
-
setH265EncoderPreset
-
setH265EncoderProfile
-
setH265EncoderRc
-
setH265EncoderSpecific
-
isWebMMuxingEnabled
public boolean isWebMMuxingEnabled() -
setWebMMuxingEnabled
public void setWebMMuxingEnabled(boolean webMMuxingEnabled) -
getVp8EncoderSpeed
public int getVp8EncoderSpeed() -
setVp8EncoderSpeed
public void setVp8EncoderSpeed(int vp8EncoderSpeed) -
getVp8EncoderDeadline
-
setVp8EncoderDeadline
-
getVp8EncoderThreadCount
public int getVp8EncoderThreadCount() -
setVp8EncoderThreadCount
public void setVp8EncoderThreadCount(int vp8EncoderThreadCount) -
getWebRTCSdpSemantics
-
setWebRTCSdpSemantics
-
isStartStreamFetcherAutomatically
public boolean isStartStreamFetcherAutomatically() -
setStartStreamFetcherAutomatically
public void setStartStreamFetcherAutomatically(boolean startStreamFetcherAutomatically) -
isDeleteDASHFilesOnEnded
public boolean isDeleteDASHFilesOnEnded() -
setDeleteDASHFilesOnEnded
public void setDeleteDASHFilesOnEnded(boolean deleteDASHFilesOnEnded) -
getTargetLatency
-
setTargetLatency
-
getHeightRtmpForwarding
public int getHeightRtmpForwarding() -
setHeightRtmpForwarding
public void setHeightRtmpForwarding(int heightRtmpForwarding) -
getAudioBitrateSFU
public int getAudioBitrateSFU() -
setAudioBitrateSFU
public void setAudioBitrateSFU(int audioBitrateSFU) -
setAacEncodingEnabled
public void setAacEncodingEnabled(boolean aacEncodingEnabled) -
isAacEncodingEnabled
public boolean isAacEncodingEnabled() -
getGopSize
public int getGopSize() -
setGopSize
public void setGopSize(int gopSize) -
getConstantRateFactor
-
setConstantRateFactor
-
getWebRTCViewerLimit
public int getWebRTCViewerLimit() -
setWebRTCViewerLimit
public void setWebRTCViewerLimit(int webRTCViewerLimit) -
getDashFragmentDuration
-
setDashFragmentDuration
-
getDashSegDuration
-
setDashSegDuration
-
getDashWindowSize
-
setDashWindowSize
-
getDashExtraWindowSize
-
setDashExtraWindowSize
-
getJwtSecretKey
-
setJwtSecretKey
-
isJwtControlEnabled
public boolean isJwtControlEnabled() -
setJwtControlEnabled
public void setJwtControlEnabled(boolean jwtControlEnabled) -
isIpFilterEnabled
public boolean isIpFilterEnabled() -
setIpFilterEnabled
public void setIpFilterEnabled(boolean ipFilterEnabled) -
getIngestingStreamLimit
public int getIngestingStreamLimit() -
setIngestingStreamLimit
public void setIngestingStreamLimit(int ingestingStreamLimit) -
getTimeTokenPeriod
public int getTimeTokenPeriod() -
setTimeTokenPeriod
public void setTimeTokenPeriod(int timeTokenPeriod) -
isToBeDeleted
public boolean isToBeDeleted() -
setToBeDeleted
public void setToBeDeleted(boolean toBeDeleted) -
isPullWarFile
public boolean isPullWarFile() -
setPullWarFile
public void setPullWarFile(boolean pullWarFile) -
getWebRTCKeyframeTime
public int getWebRTCKeyframeTime() -
setWebRTCKeyframeTime
public void setWebRTCKeyframeTime(int webRTCKeyframeTime) -
getJwtStreamSecretKey
-
setJwtStreamSecretKey
-
isPublishJwtControlEnabled
public boolean isPublishJwtControlEnabled() -
setPublishJwtControlEnabled
public void setPublishJwtControlEnabled(boolean publishJwtControlEnabled) -
isPlayJwtControlEnabled
public boolean isPlayJwtControlEnabled() -
setPlayJwtControlEnabled
public void setPlayJwtControlEnabled(boolean playJwtControlEnabled) -
islLDashEnabled
public boolean islLDashEnabled() -
setlLDashEnabled
public void setlLDashEnabled(boolean lLDashEnabled) -
islLHLSEnabled
public boolean islLHLSEnabled() -
setlLHLSEnabled
public void setlLHLSEnabled(boolean lLHLSEnabled) -
isHlsEnabledViaDash
public boolean isHlsEnabledViaDash() -
setHlsEnabledViaDash
public void setHlsEnabledViaDash(boolean hlsEnabledViaDash) -
isUseTimelineDashMuxing
public boolean isUseTimelineDashMuxing() -
setUseTimelineDashMuxing
public void setUseTimelineDashMuxing(boolean useTimelineDashMuxing) -
isDashHttpStreaming
public boolean isDashHttpStreaming() -
setDashHttpStreaming
public void setDashHttpStreaming(boolean dashHttpStreaming) -
getS3StreamsFolderPath
-
getDashHttpEndpoint
-
isS3RecordingEnabled
public boolean isS3RecordingEnabled() -
setS3RecordingEnabled
public void setS3RecordingEnabled(boolean s3RecordingEnabled) -
getS3SecretKey
-
setS3SecretKey
-
getS3AccessKey
-
setS3AccessKey
-
getS3RegionName
-
setS3RegionName
-
getS3BucketName
-
setS3BucketName
-
getS3Endpoint
-
setS3Endpoint
-
getS3CacheControl
-
setS3CacheControl
-
setDashHttpEndpoint
-
getHlsEncryptionKeyInfoFile
-
setHlsEncryptionKeyInfoFile
-
setS3StreamsFolderPath
-
getS3PreviewsFolderPath
-
setS3PreviewsFolderPath
-
isForceDecoding
public boolean isForceDecoding() -
setForceDecoding
public void setForceDecoding(boolean forceDecoding) -
isAddOriginalMuxerIntoHLSPlaylist
public boolean isAddOriginalMuxerIntoHLSPlaylist() -
setAddOriginalMuxerIntoHLSPlaylist
public void setAddOriginalMuxerIntoHLSPlaylist(boolean addOriginalMuxerIntoHLSPlaylist) -
getJwksURL
-
setJwksURL
-
getWebhookAuthenticateURL
-
setWebhookAuthenticateURL
-
isForceAspectRatioInTranscoding
public boolean isForceAspectRatioInTranscoding() -
setForceAspectRatioInTranscoding
public void setForceAspectRatioInTranscoding(boolean forceAspectRatioInTranscoding) -
getS3Permission
-
setS3Permission
-
getMaxAudioTrackCount
public int getMaxAudioTrackCount() -
setMaxAudioTrackCount
public void setMaxAudioTrackCount(int maxAudioTrackCount) -
getWarFileOriginServerAddress
-
setWarFileOriginServerAddress
-
setVodUploadFinishScript
-
getMaxVideoTrackCount
public int getMaxVideoTrackCount() -
setMaxVideoTrackCount
public void setMaxVideoTrackCount(int maxVideoTrackCount) -
getContentSecurityPolicyHeaderValue
-
setContentSecurityPolicyHeaderValue
-
getTurnServerUsername
-
setTurnServerUsername
-
getTurnServerCredential
-
setTurnServerCredential
-
getHlsHttpEndpoint
-
setHlsHttpEndpoint
-
isRtmpPlaybackEnabled
public boolean isRtmpPlaybackEnabled() -
setRtmpPlaybackEnabled
public void setRtmpPlaybackEnabled(boolean rtmpPlaybackEnabled) -
getOriginEdgeIdleTimeout
public int getOriginEdgeIdleTimeout() -
setOriginEdgeIdleTimeout
public void setOriginEdgeIdleTimeout(int originEdgeIdleTimeout) -
isAddDateTimeToHlsFileName
public boolean isAddDateTimeToHlsFileName() -
setAddDateTimeToHlsFileName
public void setAddDateTimeToHlsFileName(boolean addDateTimeToHlsFileName) -
isPlayWebRTCStreamOnceForEachSession
public boolean isPlayWebRTCStreamOnceForEachSession() -
setPlayWebRTCStreamOnceForEachSession
public void setPlayWebRTCStreamOnceForEachSession(boolean playWebRTCStreamOnceForEachSession) -
isStatsBasedABREnabled
public boolean isStatsBasedABREnabled() -
setStatsBasedABREnabled
public void setStatsBasedABREnabled(boolean statsBasedABREnabled) -
getAbrDownScalePacketLostRatio
public float getAbrDownScalePacketLostRatio() -
setAbrDownScalePacketLostRatio
public void setAbrDownScalePacketLostRatio(float abrDownScalePacketLostRatio) -
getAbrUpScalePacketLostRatio
public float getAbrUpScalePacketLostRatio() -
setAbrUpScalePacketLostRatio
public void setAbrUpScalePacketLostRatio(float abrUpScalePacketLostRatio) -
getAbrUpScaleRTTMs
public int getAbrUpScaleRTTMs() -
setAbrUpScaleRTTMs
public void setAbrUpScaleRTTMs(int abrUpScaleRTTMs) -
getAbrUpScaleJitterMs
public int getAbrUpScaleJitterMs() -
setAbrUpScaleJitterMs
public void setAbrUpScaleJitterMs(int abrUpScaleJitterMs) -
getClusterCommunicationKey
-
setClusterCommunicationKey
-
getMaxFpsAccept
public int getMaxFpsAccept() -
setMaxFpsAccept
public void setMaxFpsAccept(int maxFpsAccept) -
getDataChannelWebHookURL
-
getVodUploadFinishScript
-
setObjectDetectionEnabled
public void setObjectDetectionEnabled(boolean objectDetectionEnabled) -
isId3TagEnabled
public boolean isId3TagEnabled() -
setId3TagEnabled
public void setId3TagEnabled(boolean id3TagEnabled) -
isSendAudioLevelToViewers
public boolean isSendAudioLevelToViewers() -
setSendAudioLevelToViewers
public void setSendAudioLevelToViewers(boolean sendAudioLevelToViewers) -
getTimeTokenSecretForPublish
-
setTimeTokenSecretForPublish
-
getTimeTokenSecretForPlay
-
setTimeTokenSecretForPlay
-
isHwScalingEnabled
public boolean isHwScalingEnabled() -
setHwScalingEnabled
public void setHwScalingEnabled(boolean hwScalingEnabled) -
getFirebaseAccountKeyJSON
-
setFirebaseAccountKeyJSON
-
getSubscriberAuthenticationKey
-
setSubscriberAuthenticationKey
-
getApnsServer
-
getApnPrivateKey
-
getApnKeyId
-
getApnTeamId
-
setApnTeamId
-
setApnPrivateKey
-
setApnKeyId
-
setApnsServer
-
getWebhookRetryCount
public int getWebhookRetryCount() -
setWebhookRetryCount
public void setWebhookRetryCount(int webhookRetryCount) -
getWebhookRetryDelay
public long getWebhookRetryDelay() -
setWebhookRetryDelay
public void setWebhookRetryDelay(long webhookRetryDelay) -
isWebhookPlayAuthEnabled
public boolean isWebhookPlayAuthEnabled() -
getWebhookPlayAuthUrl
-
setWebhookPlayAuthUrl
-
isSecureAnalyticEndpoint
public boolean isSecureAnalyticEndpoint() -
setSecureAnalyticEndpoint
public void setSecureAnalyticEndpoint(boolean secureAnalyticEndpoint) -
getHlsSegmentType
-
setHlsSegmentType
-
getRecordingSubfolder
-
setRecordingSubfolder
-
getWebhookContentType
-
setWebhookContentType
-
getIceGatheringTimeoutMs
public long getIceGatheringTimeoutMs() -
setIceGatheringTimeoutMs
public void setIceGatheringTimeoutMs(long iceGatheringTimeoutMs) -
getCustomSettings
public org.json.simple.JSONObject getCustomSettings() -
setCustomSettings
public void setCustomSettings(org.json.simple.JSONObject customSettings) -
isRelayRTMPMetaDataToMuxers
public boolean isRelayRTMPMetaDataToMuxers()- Returns:
- the relayRTMPMetaDataToMuxers
-
setRelayRTMPMetaDataToMuxers
public void setRelayRTMPMetaDataToMuxers(boolean relayRTMPMetaDataToMuxers) - Parameters:
relayRTMPMetaDataToMuxers
- the relayRTMPMetaDataToMuxers to set
-
isDropWebRTCIngestIfNoPacketReceived
public boolean isDropWebRTCIngestIfNoPacketReceived()- Returns:
- the dropWebRTCIngestIfNoPacketReceived
-
setDropWebRTCIngestIfNoPacketReceived
public void setDropWebRTCIngestIfNoPacketReceived(boolean dropWebRTCIngestIfNoPacketReceived) - Parameters:
dropWebRTCIngestIfNoPacketReceived
- the dropWebRTCIngestIfNoPacketReceived to set
-
getDbId
public org.bson.types.ObjectId getDbId()- Returns:
- the dbId
-