Wowza Community

live-record stream type properties

Hi all,

Do you know how I can change the live-record stream to save the incoming stream to a different file every 10 seconds? Below is my Application.xml file. I’ve tried to modify some settings but they are not honored by wowza. I’m running version 4.2.0. Thanks.

<?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-record</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, mpegdashstreamingpacketizer, sanjosestreamingpacketizer, smoothstreamingpacketizer</LiveStreamPacketizers>
			<!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application -->
			<Properties>
				<Property>
					<Name>liveStreamRecordOption</Name>
					<Value>version</Value>
					<Type>String</Type>
				</Property>
				<Property>
					<Name>liveStreamRecordSegmentDuration</Name>
					<Value>10000</Value>
					<Type>long</Type>
				</Property>
				<Property>
					<Name>liveStreamRecorderDebugLog</Name>
					<Value>true</Value>
					<Type>boolean</Type>
				</Property>
				<Property>
					<Name>liveStreamRecorderSplitOnTcDiscontinuity</Name>
					<Value>true</Value>
					<Type>boolean</Type>
				</Property>
				<Property>
					<Name>liveStreamRecorderSegmentationType</Name>
					<Value>duration</Value>
					<Type>String</Type>
				</Property>
			</Properties>
		</Streams>
		<Transcoder>
			<!-- To turn on transcoder set to: transcoder -->
			<LiveStreamTranscoder></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, smoothstreaming, sanjosestreaming, mpegdashstreaming</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>none</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>
			</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>1000</Value>
					<Type>Integer</Type>
				</Property>
				<Property>
					<Name>cupertinoMaxChunkCount</Name>
					<Value>3</Value>
					<Type>Integer</Type>
				</Property>
				<Property>
					<Name>cupertinoPlaylistChunkCount</Name>
					<Value>3</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>
			</Properties>
		</HTTPStreamer>
		<Manager>
			<!-- Properties defined are used by the Manager -->
			<Properties>
			</Properties>
		</Manager>
		<Repeater>
			<OriginURL></OriginURL>
			<QueryString><![CDATA[]]></QueryString>
		</Repeater>
		<StreamRecorder>
			<Properties>
				<Property>
					<Name>streamRecorderDebugEnable</Name>
					<Value>true</Value>
					<Type>Boolean</Type>
				</Property>
				<Property>
					<Name>streamRecorderSplitOnTcDiscontinuity</Name>
					<Value>true</Value>
					<Type>Boolean</Type>
				</Property>
				<Property>
					<Name>streamRecorderSegmentDuration</Name>
					<Value>10000</Value>
					<Type>Integer</Type>
				</Property>
				<Property>
					<Name>streamRecorderSegmentationType</Name>
					<Value>duration</Value>
					<Type>String</Type>
				</Property>
				<Property>
					<Name>streamRecorderVersioningOption</Name>
					<Value>version</Value>
					<Type>String</Type>
				</Property>
			</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>
		</Modules>
		<!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
		<Properties>
                                <Property>
                                        <Name>liveStreamRecordOption</Name>
                                        <Value>version</Value>
                                        <Type>String</Type>
                                </Property>
                                <Property>
                                        <Name>liveStreamRecordSegmentDuration</Name>
                                        <Value>10000</Value>
                                        <Type>long</Type>
                                </Property>
                                <Property>
                                        <Name>liveStreamRecorderDebugLog</Name>
                                        <Value>true</Value>
                                        <Type>boolean</Type>
                                </Property>
                                <Property>
                                        <Name>liveStreamRecorderSplitOnTcDiscontinuity</Name>
                                        <Value>true</Value>
                                        <Type>boolean</Type>
                                </Property>
                                <Property>
                                        <Name>liveStreamRecorderSegmentationType</Name>
                                        <Value>duration</Value>
                                        <Type>String</Type>
                                </Property>
		</Properties>
	</Application>
</Root>

Hello there.

as this looks like your first post to the forum, I would suggest you start very simply. Try following one of these guides and getting a live stream published and recorded:

How to record live streams (HTTPLiveStreamRecord)

How to record live streams (Wowza Streaming Engine)

After you are successful with that, you can move on to segmenting the streams by size, or duration. Each of the previous guides has steps to achieve this as well.

Best,

Salvadore