Skip to content

Instantly share code, notes, and snippets.

@mzupan
Created June 14, 2015 15:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mzupan/02f9dcfb036f67e2ace8 to your computer and use it in GitHub Desktop.
Save mzupan/02f9dcfb036f67e2ace8 to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="UTF-8"?>
<Root version="1">
<Application>
<Name>live</Name>
<AppType>LiveHTTPOrigin</AppType>
<Description></Description>
<!-- Uncomment to set application level timeout values
<ApplicationTimeout>60000</ApplicationTimeout>
<PingTimeout>12000</PingTimeout>
<ValidationFrequency>8000</ValidationFrequency>
<MaximumPendingWriteBytes>0</MaximumPendingWriteBytes>
<MaximumSetBufferTime>60000</MaximumSetBufferTime>
<MaximumStorageDirDepth>25</MaximumStorageDirDepth>
-->
<Connections>
<AutoAccept>true</AutoAccept>
<AllowDomains></AllowDomains>
</Connections>
<!--
StorageDir path variables
${com.wowza.wms.AppHome} - Application home directory
${com.wowza.wms.ConfigHome} - Configuration home directory
${com.wowza.wms.context.VHost} - Virtual host name
${com.wowza.wms.context.VHostConfigHome} - Virtual host home directory
${com.wowza.wms.context.Application} - Application name
${com.wowza.wms.context.ApplicationInstance} - Application instance name
-->
<Streams>
<StreamType>live</StreamType>
<StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</StorageDir>
<KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir>
<!-- LiveStreamPacketizers (separate with commas): cupertinostreamingpacketizer, smoothstreamingpacketizer, sanjosestreamingpacketizer, mpegdashstreamingpacketizer, cupertinostreamingrepeater, smoothstreamingrepeater, sanjosestreamingrepeater, mpegdashstreamingrepeater, dvrstreamingpacketizer, dvrstreamingrepeater -->
<LiveStreamPacketizers>cupertinostreamingpacketizer, sanjosestreamingpacketizer</LiveStreamPacketizers>
<!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application -->
<Properties>
</Properties>
</Streams>
<Transcoder>
<!-- To turn on transcoder set to: transcoder -->
<LiveStreamTranscoder>transcoder</LiveStreamTranscoder>
<!-- [templatename].xml or ${SourceStreamName}.xml -->
<Templates>${SourceStreamName}.xml,transrate.xml</Templates>
<ProfileDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/profiles</ProfileDir>
<TemplateDir>${com.wowza.wms.context.VHostConfigHome}/transcoder/templates</TemplateDir>
<Properties>
</Properties>
</Transcoder>
<DVR>
<!-- As a single server or as an origin, use dvrstreamingpacketizer in LiveStreamPacketizers above -->
<!-- Or, in an origin-edge configuration, edges use dvrstreamingrepeater in LiveStreamPacketizers above -->
<!-- As an origin, also add dvrchunkstreaming to HTTPStreamers below -->
<!-- If this is a dvrstreamingrepeater, define Application/Repeater/OriginURL to point back to the origin -->
<!-- To turn on DVR recording set Recorders to dvrrecorder. This works with dvrstreamingpacketizer -->
<Recorders></Recorders>
<!-- As a single server or as an origin, set the Store to dvrfilestorage-->
<!-- edges should have this empty -->
<Store></Store>
<!-- Window Duration is length of live DVR window in seconds. 0 means the window is never trimmed. -->
<WindowDuration>0</WindowDuration>
<!-- Storage Directory is top level location where dvr is stored. e.g. c:/temp/dvr -->
<StorageDir>${com.wowza.wms.context.VHostConfigHome}/dvr</StorageDir>
<!-- valid ArchiveStrategy values are append, version, delete -->
<ArchiveStrategy>append</ArchiveStrategy>
<!-- Properties for DVR -->
<Properties>
</Properties>
</DVR>
<TimedText>
<!-- VOD caption providers (separate with commas): vodcaptionprovidermp4_3gpp, vodcaptionproviderttml, vodcaptionproviderwebvtt, vodcaptionprovidersrt, vodcaptionproviderscc -->
<VODTimedTextProviders></VODTimedTextProviders>
<!-- Properties for TimedText -->
<Properties>
</Properties>
</TimedText>
<!-- HTTPStreamers (separate with commas): cupertinostreaming, smoothstreaming, sanjosestreaming, mpegdashstreaming, dvrchunkstreaming -->
<HTTPStreamers>cupertinostreaming, sanjosestreaming</HTTPStreamers>
<MediaCache>
<MediaCacheSourceList></MediaCacheSourceList>
</MediaCache>
<SharedObjects>
<StorageDir>${com.wowza.wms.context.VHostConfigHome}/applications/${com.wowza.wms.context.Application}/sharedobjects/${com.wowza.wms.context.ApplicationInstance}</StorageDir>
</SharedObjects>
<Client>
<IdleFrequency>-1</IdleFrequency>
<Access>
<StreamReadAccess></StreamReadAccess>
<StreamWriteAccess>*</StreamWriteAccess>
<StreamAudioSampleAccess></StreamAudioSampleAccess>
<StreamVideoSampleAccess></StreamVideoSampleAccess>
<SharedObjectReadAccess>*</SharedObjectReadAccess>
<SharedObjectWriteAccess>*</SharedObjectWriteAccess>
</Access>
</Client>
<RTP>
<!-- RTP/Authentication/[type]Methods defined in Authentication.xml. Default setup includes; none, basic, digest -->
<Authentication>
<PublishMethod>digest</PublishMethod>
<PlayMethod>block</PlayMethod>
</Authentication>
<!-- RTP/AVSyncMethod. Valid values are: senderreport, systemclock, rtptimecode -->
<AVSyncMethod>senderreport</AVSyncMethod>
<MaxRTCPWaitTime>12000</MaxRTCPWaitTime>
<IdleFrequency>75</IdleFrequency>
<RTSPSessionTimeout>90000</RTSPSessionTimeout>
<RTSPMaximumPendingWriteBytes>0</RTSPMaximumPendingWriteBytes>
<RTSPBindIpAddress></RTSPBindIpAddress>
<RTSPConnectionIpAddress>0.0.0.0</RTSPConnectionIpAddress>
<RTSPOriginIpAddress>127.0.0.1</RTSPOriginIpAddress>
<IncomingDatagramPortRanges>*</IncomingDatagramPortRanges>
<!-- Properties defined here will override any properties defined in conf/RTP.xml for any depacketizers loaded by this application -->
<Properties>
<Property>
<Name>rtpDePacketizerPacketSorterBufferTime</Name>
<Value>1500</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>rtpDePacketizerPacketSorterFlushTime</Name>
<Value>15</Value>
<Type>Integer</Type>
</Property>
</Properties>
</RTP>
<MediaCaster>
<RTP>
<RTSP>
<!-- udp, interleave -->
<RTPTransportMode>interleave</RTPTransportMode>
</RTSP>
</RTP>
<StreamValidator></StreamValidator>
<!-- Properties defined here will override any properties defined in conf/MediaCasters.xml for any MediaCasters loaded by this applications -->
<Properties>
</Properties>
</MediaCaster>
<MediaReader>
<!-- Properties defined here will override any properties defined in conf/MediaReaders.xml for any MediaReaders loaded by this applications -->
<Properties>
</Properties>
</MediaReader>
<MediaWriter>
<!-- Properties defined here will override any properties defined in conf/MediaWriter.xml for any MediaWriter loaded by this applications -->
<Properties>
</Properties>
</MediaWriter>
<LiveStreamPacketizer>
<!-- Properties defined here will override any properties defined in conf/LiveStreamPacketizers.xml for any LiveStreamPacketizers loaded by this applications -->
<Properties>
<Property>
<Name>httpRandomizeMediaName</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>cupertinoChunkDurationTarget</Name>
<Value>5000</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>maxChunkLogCount</Name>
<Value>0</Value>
<Type>Integer</Type>
</Property>
</Properties>
</LiveStreamPacketizer>
<HTTPStreamer>
<!-- Properties defined here will override any properties defined in conf/HTTPStreamers.xml for any HTTPStreamer loaded by this applications -->
<Properties>
<Property>
<Name>httpOriginMode</Name>
<Value>on</Value>
<Type>String</Type>
</Property>
<Property>
<Name>cupertinoCacheControlPlaylist</Name>
<Value>max-age=1</Value>
<Type>String</Type>
</Property>
<Property>
<Name>cupertinoCacheControlMediaChunk</Name>
<Value>max-age=3600</Value>
<Type>String</Type>
</Property>
<Property>
<Name>smoothCacheControlPlaylist</Name>
<Value>max-age=1</Value>
<Type>String</Type>
</Property>
<Property>
<Name>smoothCacheControlMediaChunk</Name>
<Value>max-age=3600</Value>
<Type>String</Type>
</Property>
<Property>
<Name>smoothCacheControlDataChunk</Name>
<Value>max-age=3600</Value>
<Type>String</Type>
</Property>
<Property>
<Name>smoothStreamingEncryptionRandomIV</Name>
<Value>false</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>sanjoseCacheControlPlaylist</Name>
<Value>max-age=1</Value>
<Type>String</Type>
</Property>
<Property>
<Name>sanjoseCacheControlMediaChunk</Name>
<Value>max-age=3600</Value>
<Type>String</Type>
</Property>
<Property>
<Name>mpegdashCacheControlPlaylist</Name>
<Value>max-age=1</Value>
<Type>String</Type>
</Property>
<Property>
<Name>mpegdashCacheControlMediaChunk</Name>
<Value>max-age=3600</Value>
<Type>String</Type>
</Property>
<Property>
<Name>newSessionTimeout</Name>
<Value>3000</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>validSessionTimeout</Name>
<Value>500</Value>
<Type>Integer</Type>
</Property>
</Properties>
</HTTPStreamer>
<Manager>
<!-- Properties defined are used by the Manager -->
<Properties>
</Properties>
</Manager>
<Repeater>
<OriginURL></OriginURL>
<QueryString><![CDATA[]]></QueryString>
</Repeater>
<StreamRecorder>
<Properties>
</Properties>
</StreamRecorder>
<Modules>
<Module>
<Name>base</Name>
<Description>Base</Description>
<Class>com.wowza.wms.module.ModuleCore</Class>
</Module>
<Module>
<Name>logging</Name>
<Description>Client Logging</Description>
<Class>com.wowza.wms.module.ModuleClientLogging</Class>
</Module>
<Module>
<Name>flvplayback</Name>
<Description>FLVPlayback</Description>
<Class>com.wowza.wms.module.ModuleFLVPlayback</Class>
</Module>
<Module>
<Name>ModuleCoreSecurity</Name>
<Description>Core Security Module for Applications</Description>
<Class>com.wowza.wms.security.ModuleCoreSecurity</Class>
</Module>
<Module>
<Name>ModuleLoopUntilLive</Name>
<Description>ModuleLoopUntilLive</Description>
<Class>com.wowza.wms.plugin.collection.module.ModuleLoopUntilLive</Class>
</Module>
<Module>
<Name>streamPublisher</Name>
<Description>streamPublisher</Description>
<Class>com.wowza.wms.plugin.collection.module.ModuleStreamPublisher</Class>
</Module>
<Module>
<Name>ModuleMediaCasterStreamMonitorAdvanced</Name>
<Description>ModuleMediaCasterStreamMonitorAdvanced</Description>
<Class>com.wowza.wms.module.ModuleMediaCasterStreamMonitorAdvanced</Class>
</Module>
</Modules>
<!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
<Properties>
<Property>
<Name>streamPublisherSmilFile</Name>
<Value>streamschedule.smil</Value>
<Type>String</Type>
</Property>
<Property>
<Name>streamPublisherPassMetaData</Name>
<Value>false</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>streamPublisherSwitchLog</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>securityPublishRequirePassword</Name>
<Value>false</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>loopUntilLiveSourceStreams</Name>
<Value>hdev.stream</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loopUntilLiveOutputStreams</Name>
<Value>iss.stream</Value>
<Type>String</Type>
</Property>
<Property>
<Name>loopUntilLiveReloadEntirePlaylist</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>loopUntilLiveHandleMediaCasters</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<!--
Monitor incoming packets (stream, audio, video) to be sure packets continue to flow from encoder to stream. The
streamMonitor[type]StartTimeout controls the timeout (milliseconds) for the first packet. The streamMonitor[type]Timeout
controls the timeout (milliseconds) for packets after the first packet. The stream type refers to a catch all of any packet of
any type (audio, video, data). If any of these values are set to zero, the test is turned off.
-->
<Property>
<Name>streamMonitorStreamStartTimeout</Name>
<Value>12000</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>streamMonitorStreamTimeout</Name>
<Value>15000</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>streamMonitorVideoStartTimeout</Name>
<Value>0</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>streamMonitorVideoTimeout</Name>
<Value>0</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>streamMonitorAudioStartTimeout</Name>
<Value>0</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>streamMonitorAudioTimeout</Name>
<Value>0</Value>
<Type>Integer</Type>
</Property>
<!--
Monitor the incoming packet timecodes (audio, video or data) to be sure packets do not arrive out of order or late. The
streamMonitor[type]TCPosTolerance and streamMonitor[type]TCNegTolerance (milliseconds) values define a sliding window
based on the timecode of the previous packet. For example if these values are set to -500 and 3000 respectively then the
timecode difference between the current arriving packet and the previous packet of that type must fall within
-500 and 3000 milliseconds. If not and streamMonitor[type]TCToleranceEnable is set to true then stream will be considered
unhealthy and will be reset.
-->
<Property>
<Name>streamMonitorVideoTCToleranceEnable</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>streamMonitorVideoTCPosTolerance</Name>
<Value>3000</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>streamMonitorVideoTCNegTolerance</Name>
<Value>-500</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>streamMonitorAudioTCToleranceEnable</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>streamMonitorAudioTCPosTolerance</Name>
<Value>3000</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>streamMonitorAudioTCNegTolerance</Name>
<Value>-500</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>streamMonitorDataTCToleranceEnable</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>streamMonitorDataTCPosTolerance</Name>
<Value>3000</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>streamMonitorDataTCNegTolerance</Name>
<Value>-500</Value>
<Type>Integer</Type>
</Property>
<!--
Monitors the time difference between the audio and video channel of a stream. If the difference between the currently arriving
video packet and the previous audio packet (or vice-versa) is greater than streamMonitorAVSyncTolerance and streamMonitorAVSyncToleranceEnable
is set to true, then the stream will be considered unhealthy and will be reset.
-->
<Property>
<Name>streamMonitorAVSyncToleranceEnable</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>streamMonitorAVSyncTolerance</Name>
<Value>1500</Value>
<Type>Integer</Type>
</Property>
<!--
If set to true, then when a stream is reset and it belong to a MediaStreamNameGroup all streams in the group will be reset. If
false only the unhealthy stream will be reset.
-->
<Property>
<Name>streamMonitorResetNameGroups</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<!--
Turns on debug logging of the monitoring.
-->
<Property>
<Name>streamMonitorDebug</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
</Properties>
</Application>
</Root>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment