-
aacEncodingEnabled
boolean aacEncodingEnabled
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 fly
-
abrDownScalePacketLostRatio
float abrDownScalePacketLostRatio
Packet lost percentage to decide serving video with lower resolution
-
abrUpScaleJitterMs
int abrUpScaleJitterMs
Jitter in ms to decide serving video with higher resolution
-
abrUpScalePacketLostRatio
float abrUpScalePacketLostRatio
Packet lost percentage to decide serving video with higher resolution
-
abrUpScaleRTTMs
int abrUpScaleRTTMs
Round trip time in ms to decide serving video with higher resolution
-
acceptOnlyRoomsInDataStore
boolean acceptOnlyRoomsInDataStore
The control for rooms
-
acceptOnlyStreamsInDataStore
boolean acceptOnlyStreamsInDataStore
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. Default value is false.
-
addDateTimeToHlsFileName
boolean addDateTimeToHlsFileName
It's mandatory, Date and time are added to created .m3u8 and .ts file name, Default value is false
-
addDateTimeToMp4FileName
boolean addDateTimeToMp4FileName
It's mandatory, Date and time are added to created .mp4 file name, Default value is false
-
addOriginalMuxerIntoHLSPlaylist
boolean addOriginalMuxerIntoHLSPlaylist
Add the original hls stream to the playlist if adaptive bitrate setting is enabled
-
allowedPublisherCIDR
String allowedPublisherCIDR
Comma separated CIDR that server accepts/ingests RTMP streams from,
Default value is null which means that it accepts/ingests stream from everywhere
-
apnKeyId
String apnKeyId
APN(Apple Push Notification) key Id
-
apnPrivateKey
String apnPrivateKey
APN(Apple Push Notification) private key
-
apnsServer
String 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
String apnTeamId
APN(Apple Push Notification) team id
-
appInstallationTime
long appInstallationTime
The time when the application is installed
-
appName
String appName
Applicaiton name for the data store which should exist so that no default value
such as LiveApp, WebRTCApp etc.
-
appStatus
String appStatus
Describes the application installation status. Possible values:
Installing: App install Rest method received by host node
Installed: App installation completed on host node
Installation Failed: App installation can not be completed by host node
Deleted: App installation deleted on host node
-
audioBitrateSFU
int 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.
-
clusterCommunicationKey
String clusterCommunicationKey
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 value
-
constantRateFactor
String constantRateFactor
Deprecated.
Constant Rate Factor used by x264, x265, VP8,
Use values between 4-51
-
contentSecurityPolicyHeaderValue
String contentSecurityPolicyHeaderValue
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.
https://content-security-policy.com/
-
createPreviewPeriod
int createPreviewPeriod
It's mandatory,
This determines the period (milliseconds) of preview (png, jpg) file creation,
This file is created into
/preview directory. Default value is 5000.
-
customSettings
Map<String,Object> customSettings
-
dashExtraWindowSize
String dashExtraWindowSize
DASH extra window size, Number of segments kept outside of the manifest before removing from disk
-
dashFragmentDuration
String dashFragmentDuration
Fragments are a property of fragmented MP4 files, Typically a fragment consists of moof + mdat.
-
dashHttpEndpoint
String dashHttpEndpoint
-
dashHttpStreaming
boolean dashHttpStreaming
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 used
-
dashMuxingEnabled
boolean dashMuxingEnabled
Enable/disable dash recording
-
dashSegDuration
String dashSegDuration
Duration of segments in mpd files,
Segments are a property of DASH. A segment is the minimal download unit.
-
dashWindowSize
String dashWindowSize
DASH window size, Number of files in manifest
-
dataChannelEnabled
boolean dataChannelEnabled
Enable/Disable data channel It's disabled by default
When data channel is enabled, publisher can send messages to the players
-
dataChannelPlayerDistribution
String dataChannelPlayerDistribution
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 players
-
dataChannelWebHookURL
String dataChannelWebHookURL
All data channel messages are delivered to these hook as well
So that it'll be integrated to any third party application
-
dbId
org.bson.types.ObjectId dbId
-
defaultDecodersEnabled
boolean defaultDecodersEnabled
Deprecated.
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: Use vp8Enabled
and h264enabled
-
deleteDASHFilesOnEnded
boolean deleteDASHFilesOnEnded
If this value is true, dash files(mpd and m4s files) are deleted after the broadcasting
has finished.
-
deleteHLSFilesOnEnded
boolean deleteHLSFilesOnEnded
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.
-
disableIPv6Candidates
boolean disableIPv6Candidates
Enable/Disable IPv6 Candidates for WebRTC It's disabled by default
-
dropWebRTCIngestIfNoPacketReceived
boolean dropWebRTCIngestIfNoPacketReceived
Drop 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 the
AppSettings.webRTCClientStartTimeoutMs
, it drops the stream.
-
enableTimeTokenForPlay
boolean enableTimeTokenForPlay
The setting for accepting only time based token(TOTP) subscribers as connections to the streams
-
enableTimeTokenForPublish
boolean enableTimeTokenForPublish
The settings for accepting only time based token(TOTP) subscribers as connections to the streams
-
encoderLevel
String encoderLevel
Deprecated.
Encoder level in adaptive bitrate
-
encoderName
String 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 openh264 by default
Can be h264_nvenc or openh264. If you set h264_nvenc and then if it cannot be opened, libx264 will be used,
-
encoderParameters
Map<String,Map<String,String>> encoderParameters
Encoder specific parameters in key-value mapping way with JSON objects.
Keys should match the encoder names officially in ffmpeg for instance libopenh264, h264_nvenc, vpx, hevc_nvenc
Then you can have a json object like this which includes the parameters for the encoder
{
"libopenh264": {
"profile":"main",
},
"vpx": {
"deadline":"realtime",
},
"h264_nvenc": {
"preset":"ll"
}
}
-
encoderPreset
String encoderPreset
Deprecated.
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
String encoderProfile
Deprecated.
Encoder profile in adaptive bitrate,
It's baseline by default.
-
encoderRc
String encoderRc
Deprecated.
Encoding rate control in adaptive bitrate
-
encoderSelectionPreference
String encoderSelectionPreference
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 encoding
-
encoderSettingsString
String encoderSettingsString
Encoder settings in JSON 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.
-
encoderSpecific
String encoderSpecific
Deprecated.
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
int encoderThreadCount
Encoder thread count.
-
encoderThreadType
int encoderThreadType
Encoder thread type
0: auto
1: frame
2: slice
-
encodingQueueSize
int encodingQueueSize
-
encodingTimeout
int encodingTimeout
Timeout for encoding
If encoder cannot encode a frame in this timeout, streaming is finished by server.
-
endpointHealthCheckPeriodMs
int endpointHealthCheckPeriodMs
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.
-
endpointRepublishLimit
int endpointRepublishLimit
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.
-
excessiveBandwidthAlgorithmEnabled
boolean excessiveBandwidthAlgorithmEnabled
Enable or disable excessive bandwidth algorithm
-
excessiveBandwidthCallThreshold
int excessiveBandwidthCallThreshold
The excessive bandwidth call threshold value
-
excessiveBandwidthValue
int excessiveBandwidthValue
The excessive bandwidth threshold value
-
excessiveBandwithTryCountBeforeSwitchback
int excessiveBandwithTryCountBeforeSwitchback
-
fileNameFormat
String fileNameFormat
The format of output mp4 and ts files. Generates an extended filename based on the given parameters and file name format.
-
firebaseAccountKeyJSON
String firebaseAccountKeyJSON
Firebase Service Account Key JSON to send push notification
through Firebase Cloud Messaging
-
forceAspectRatioInTranscoding
boolean forceAspectRatioInTranscoding
This 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
-
forceDecoding
boolean forceDecoding
Force stream decoding even if there is no adaptive setting
-
generatePreview
boolean generatePreview
Generate preview if there is any adaptive settings,
Preview generation depends on adaptive settings and it's generated by default
-
gopSize
int 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.
-
h264Enabled
boolean h264Enabled
Enable/Disable h264 encoding It's enabled by default
-
h265Enabled
boolean h265Enabled
Enable/disable H265 Encoding Disabled by default
-
h265EncoderLevel
String h265EncoderLevel
Deprecated.
-
h265EncoderPreset
String h265EncoderPreset
Deprecated.
-
h265EncoderProfile
String h265EncoderProfile
Deprecated.
-
h265EncoderRc
String h265EncoderRc
Deprecated.
-
h265EncoderSpecific
String h265EncoderSpecific
Deprecated.
-
hashControlPlayEnabled
boolean hashControlPlayEnabled
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.
-
hashControlPublishEnabled
boolean hashControlPublishEnabled
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.
-
heightRtmpForwarding
int heightRtmpForwarding
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 Edition
-
hlsEnabledViaDash
boolean hlsEnabledViaDash
Enable hls through DASH muxer, LLHLS is effective if dash is enabled.
-
hlsEncryptionKeyInfoFile
String hlsEncryptionKeyInfoFile
HLS 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
```
-
hlsflags
String hlsflags
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 -.
Check for details: https://ffmpeg.org/ffmpeg-formats.html#Options-6
-
hlsHttpEndpoint
String hlsHttpEndpoint
Http endpoint to push the HLS stream
-
hlsListSize
String 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,
-
hlsMuxingEnabled
boolean 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
-
hlsPlayListType
String hlsPlayListType
It can be event or vod, Check HLS documentation for EXT-X-PLAYLIST-TYPE.
-
hlsSegmentFileSuffixFormat
String hlsSegmentFileSuffixFormat
HLS segment file suffix format.
By default: %09d which means 9 digit incremental
To add time: It can be like %Y%m%d-%s
If you want to use both incrementing numbers and date together
- Please use double % for the incrementing number suffix like: %s-%%09d
- +second_level_segment_index to HLS flags
-
hlsSegmentType
String hlsSegmentType
HLS Muxer segment type. It can be "mpegts" or "fmp4"
fmp4 is compatible to play the HEVC HLS Streams
-
hlsTime
String 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.
-
httpForwardingBaseURL
String httpForwardingBaseURL
Forward the incoming http request to this base url
-
httpForwardingExtension
String httpForwardingExtension
Forwards the http requests with this extension to
AppSettings.httpForwardingBaseURL
It supports comma separated extensions Like mp4,m3u8
Don't add any leading, trailing white spaces
-
hwScalingEnabled
boolean hwScalingEnabled
Enable/disable video frame scaling in GPU when there is an adaptive bitrate.
It's disabled by default. If you want to use this feature, ask from Ant Media Support to have the build that supports this feature - mekya
-
iceGatheringTimeoutMs
long iceGatheringTimeoutMs
-
id3TagEnabled
boolean id3TagEnabled
Enables the ID3 Tag support for HLS
-
ingestingStreamLimit
int ingestingStreamLimit
Application level total incoming stream limit
-
ipFilterEnabled
boolean ipFilterEnabled
Application IP Filter Enabled
-
jwksURL
String jwksURL
-
jwtControlEnabled
boolean jwtControlEnabled
Application 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
-
jwtSecretKey
String jwtSecretKey
Application JWT secret key for accessing the REST API
-
jwtStreamSecretKey
String jwtStreamSecretKey
Application JWT stream secret key. Provide 32 character or more in length
-
listenerHookURL
String listenerHookURL
The URL for action callback
You must set this to subscribe some event notifications,
For details check: https://antmedia.io/webhook-integration/
-
lLDashEnabled
boolean lLDashEnabled
Enable low latency dash, This settings is effective if dash is enabled
-
lLHLSEnabled
boolean lLHLSEnabled
Enable low latency hls via dash muxer, LLHLS is effective if dash is enabled.
-
maxAnalyzeDurationMS
int maxAnalyzeDurationMS
Max analyze duration in for determining video and audio existence in RTMP, SRT and Stream Sources
-
maxAudioTrackCount
int 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.
-
maxBitrateAccept
int maxBitrateAccept
Max Bitrate value in RTMP streams
-
maxFpsAccept
int maxFpsAccept
Max FPS value in RTMP streams
-
maxResolutionAccept
int maxResolutionAccept
Max Resolution value in RTMP streams
-
maxVideoTrackCount
int 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.
-
mp4MuxingEnabled
boolean mp4MuxingEnabled
It's mandatory, If it is set true then a mp4 file is created into
/streams directory
Default value is false
-
muxerFinishScript
String 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.
-
mySqlClientPath
String mySqlClientPath
-
objectDetectionEnabled
boolean objectDetectionEnabled
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.
-
originEdgeIdleTimeout
int originEdgeIdleTimeout
The maximum idle time between origin and edge connection.
After this timeout connection will be re-established if
the stream is still active on origin.
-
packetLossDiffThresholdForSwitchback
int packetLossDiffThresholdForSwitchback
-
participantVisibilityMatrix
Map<String,List<String>> participantVisibilityMatrix
Participant Visibility Matrix for WebRTC Clients. These are roles and each role can see the roles in this list
-
playJwtControlEnabled
boolean playJwtControlEnabled
The settings for enabling jwt token filter mechanism for accessing resources and playing
-
playTokenControlEnabled
boolean playTokenControlEnabled
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/. Default value is false.
-
playWebRTCStreamOnceForEachSession
boolean playWebRTCStreamOnceForEachSession
This 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
-
portAllocatorFlags
int portAllocatorFlags
Port Allocator Flags for WebRTC
PORTALLOCATOR_DISABLE_UDP = 0x01,
PORTALLOCATOR_DISABLE_STUN = 0x02,
PORTALLOCATOR_DISABLE_RELAY = 0x04,
-
previewFormat
String previewFormat
Preview format can be png or jpg
-
previewHeight
int previewHeight
It's mandatory,
Determines the height of preview file,
Default value is 480
-
previewOverwrite
boolean 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.
-
previewQuality
int previewQuality
Preview quality. It's valid for JPG and WEBP formats.
JPG: The range is between 2 to 31. 2 is the best quality, largest file size and 31 is the worst quality and lowest file size. Recommended value is 5
WEBP: The range is between 0 to 100. 0 is the worst quality, smallest file size and 100 is the best quality and largest file size.Recommended value is 75
Pay attention that the quality parameter is not valid for PNG and default value for this preview is for WebP format. You need to change for JPG format
-
publishJwtControlEnabled
boolean publishJwtControlEnabled
The settings for enabling jwt token filter mechanism for accessing resources and publishing
-
publishTokenControlEnabled
boolean publishTokenControlEnabled
The 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.
-
pullWarFile
boolean pullWarFile
Set to true when the app settings are only created for pulling the war file.
-
recordingSubfolder
String recordingSubfolder
Subfolder for the recording files (mp4 and webm)
-
relayRTMPMetaDataToMuxers
boolean 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 through
Muxer.writeMetaData(String, long)
-
remoteAllowedCIDR
String remoteAllowedCIDR
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/x
-
replaceCandidateAddrWithServerAddr
boolean replaceCandidateAddrWithServerAddr
Replace candidate addr with server addr,
In order to use it you should set serverName in conf/red5.properties
-
restartStreamFetcherPeriod
int restartStreamFetcherPeriod
Period 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
-
rtmpIngestBufferTimeMs
long rtmpIngestBufferTimeMs
RTMP ingesting buffer time in Milliseconds Server buffer this amount of video packet in order to compensate
when stream is not received for some time
-
rtmpPlaybackEnabled
boolean rtmpPlaybackEnabled
RTMP 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
-
rtspPullTransportType
String rtspPullTransportType
Specify 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
int rtspTimeoutDurationMs
Specify the rtspTimeoutDurationMs in pulling IP Camera or RTSP sources
-
rttMeasurementDiffThresholdForSwitchback
int rttMeasurementDiffThresholdForSwitchback
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)
-
s3AccessKey
String s3AccessKey
S3 Access key
-
s3BucketName
String s3BucketName
S3 Bucket Name
-
s3CacheControl
String s3CacheControl
S3 Cache Control Metadata
-
s3Endpoint
String s3Endpoint
S3 Endpoint
-
s3PathStyleAccessEnabled
boolean s3PathStyleAccessEnabled
S3 Path Syle Access Enabled
-
s3Permission
String s3Permission
-
s3PreviewsFolderPath
String s3PreviewsFolderPath
It's S3 stream PNG files storage name.
It's previews by default.
-
s3RecordingEnabled
boolean s3RecordingEnabled
Application JWT Control Enabled
-
s3RegionName
String s3RegionName
S3 Region Name
-
s3SecretKey
String s3SecretKey
S3 Secret Key
-
s3StorageClass
String s3StorageClass
-
s3StreamsFolderPath
String s3StreamsFolderPath
It's S3 streams MP4, WEBM and HLS files storage name.
It's streams by default.
-
s3TransferBufferSizeInBytes
int s3TransferBufferSizeInBytes
S3 Transfer Buffer Size
This describes to buffer size to keep transferring data. It should be
bigger than ts segment file size for HLS continuous upload.
Otherwise chunk update may cannot be retried in case of any network break.
-
secureAnalyticEndpoint
boolean secureAnalyticEndpoint
If it's false, jwt token should be send in analytic events to the AnalyticsEventLogger.
It uses
AppSettings.jwtSecretKey
for the secret key
-
sendAudioLevelToViewers
boolean 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
-
signalingAddress
String 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
-
signalingEnabled
boolean 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
-
srtReceiveLatencyInMs
int srtReceiveLatencyInMs
-
stalkerDBPassword
String stalkerDBPassword
Password of the stalker portal DB User
Database password of IP TV Ministra platform.
-
stalkerDBServer
String stalkerDBServer
Address of the Stalker Portal DB server
Database host address of IP TV Ministra platform.
-
stalkerDBUsername
String stalkerDBUsername
Username of stalker portal DB
Database user name of IP TV Ministra platform.
-
startStreamFetcherAutomatically
boolean 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
-
statsBasedABREnabled
boolean statsBasedABREnabled
Enables the WebRTC statistics based Adaptive Bitrate switch algorithm
-
streamFetcherBufferTime
int 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
-
stunServerURI
String stunServerURI
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 properoy
-
subFolder
String subFolder
Configures the sub folder path for storing media files.
This setting is appended to s3StreamsFolderPath in case of S3 upload.
For instance if s3StreamsFolderPath is "streams"(default value) and subFolder is "someRoom", files will appear as
streams/someRoom/0001.ts
Path configuration supports dynamic placeholders for files:
- '%m': Replaces with main track ID if exists
- '%s': Replaces with stream ID
This is particularly useful for storing conference participant stream HLS recordings in separate folders.
Examples of path configurations in S3 assuming s3StreamsFolderPath is "streams":
- "" (default) → Basic folder → streams/0001.ts
- "%m" → Use main track ID as sub folder → streams/mainTrackId/0001.ts
- "myStreams/%m/%s" → Nested folders with track and stream IDs → streams/myStreams/mainTrackId/streamId/0001.ts
- "conference/videos/%m/%s" → Custom path with prefixes → streams/conference/videos/mainTrackId/streamId/0001.ts
If main track ID or stream ID are null, they are omitted.
-
subscriberAuthenticationKey
String subscriberAuthenticationKey
This is JWT Secret to authenticate the user for push notifications.
JWT token should be generated with the following secret: subscriberId(username, email, etc.) + subscriberAuthenticationKey
-
targetLatency
String targetLatency
Latency of the DASH streaming,
-
timeTokenPeriod
int timeTokenPeriod
period for the generated time token
-
timeTokenSecretForPlay
String 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
-
timeTokenSecretForPublish
String 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
-
timeTokenSubscriberOnly
boolean timeTokenSubscriberOnly
Deprecated.
The settings for accepting only time based token subscribers as connections to the streams
-
toBeDeleted
boolean toBeDeleted
Deprecated, for removal: This API element is subject to removal in a future version.
Set to true when you want to delete an application
-
tokenHashSecret
String tokenHashSecret
The secret string used for creating hash based tokens
The key that used in hash generation for hash-based access control.
-
turnServerCredential
String turnServerCredential
TURN server credentai for WebRTC ICE candidates.
In order to be effective, #stunServerURI
and #turnServerUsername
should be set
-
turnServerUsername
String turnServerUsername
TURN server username for WebRTC ICE candidates.
In order to be effective, #stunServerURI
and #turnServerCredential
should be set
-
updateTime
long updateTime
Update time of the setting in the cluster
-
uploadExtensionsToS3
int uploadExtensionsToS3
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 preview(png, jpeg) files upload to s3
Example: 5 ( 101 in binary ) means upload mp4 and previews but not HLS
HLS files still will be saved on the server if deleteHLSFilesOnEnded flag is false
-
useOriginalWebRTCEnabled
boolean useOriginalWebRTCEnabled
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 480p
-
useTimelineDashMuxing
boolean useTimelineDashMuxing
Use timeline in dash muxing.
-
vodFolder
String vodFolder
Deprecated.
The path for manually saved used VoDs
Determines the directory to store VOD files.
-
vodUploadFinishScript
String vodUploadFinishScript
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.
-
vp8Enabled
boolean vp8Enabled
Enable/Disable vp8 encoding It's disabled by default
-
vp8EncoderDeadline
String vp8EncoderDeadline
Deprecated.
VP8 Encoder deadline:
best
good
realtime
-
vp8EncoderSpeed
int vp8EncoderSpeed
Deprecated.
Set quality/speed ratio modifier, Higher values speed up the encode at the cost of quality.
-
vp8EncoderThreadCount
int vp8EncoderThreadCount
VP8 Encoder thread count.
-
warFileOriginServerAddress
String warFileOriginServerAddress
Address of the original place of the war file.
-
webhookAuthenticateURL
String webhookAuthenticateURL
Enable Webhook Authentication when publishing streams
-
webhookContentType
String webhookContentType
The 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
-
webhookPlayAuthUrl
String webhookPlayAuthUrl
Webhook webrtc play authentication url.
-
webhookRetryCount
int webhookRetryCount
Retry count on webhook POST failure
-
webhookRetryDelay
long webhookRetryDelay
Delay in milliseconds between webhook attempts on POST failure.
-
webhookStreamStatusUpdatePeriodMs
long webhookStreamStatusUpdatePeriodMs
The period that server send stream status to the webhook
Default value is -1 which means disabled.
Consume the webhook as soon as possible and don't make it wait.
Min recommended value is 5000 ms which means 5 seconds
-
webMMuxingEnabled
boolean webMMuxingEnabled
Enable/Disable WebM recording
-
webRTCClientStartTimeoutMs
int webRTCClientStartTimeoutMs
If 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.
-
webRTCEnabled
boolean webRTCEnabled
Enable/disable webrtc,
It's mandatory, If it is set true then WebRTC playing is enabled, Default value is false
-
webRTCFrameRate
int 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
-
webRTCKeyframeTime
int webRTCKeyframeTime
WebRTC Keyframe Time, Ant Media Server asks key frame for every webRTCKeyframeTime in SFU mode,
It's in milliseconds
-
webRTCPortRangeMax
int webRTCPortRangeMax
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 than
AppSettings.webRTCPortRangeMin
-
webRTCPortRangeMin
int webRTCPortRangeMin
Min port number of the port range of WebRTC, It's effective when user publishes stream,
This value should be less than the
AppSettings.webRTCPortRangeMax
Determines the minimum port number for WebRTC connections, Default value is 0.
-
webRTCSdpSemantics
String webRTCSdpSemantics
WebRTC SDP Semantics
It can "planB" or "unifiedPlan"
-
webRTCTcpCandidatesEnabled
boolean webRTCTcpCandidatesEnabled
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.
-
webRTCViewerLimit
int webRTCViewerLimit
Application level WebRTC viewer limit
-
writeStatsToDatastore
boolean writeStatsToDatastore
Whether to write viewers(HLS, WebRTC) count to the data store, it's true by default.
If you set it to false, it decreases the number of write operations to the data store and you don't see the viewer count in datastore
-
writeSubscriberEventsToDatastore
boolean writeSubscriberEventsToDatastore
Write subscriber events to datastore. It's false by default
Subscriber events are when they are connected/disconnected. Alternatively, you can get these events from analytics logs by default
AppSettings.encoderParameters