Hello! We’re stuck with a problem of video streamed by (Wowza 2.2.4.07 + “playlists and schedules set in smil file” module + multicastpublish module + udpxy on a remote server) “crumbling” during playback. After some experiments we’ve figured out that the problem seems to origin from the content being streamed. We tried different source files; some work great, others don’t. The overall tendency is: the greater the bitrate, the worse is the playback quality. So the question is: what are the best settings for encoding/multiplexing the files to be streamed? Can Wowza 2.2.4.07 change PCR (Program Clock Reference) and the number of transport packets in a network packet?
Thank you in advance for any help!
UPD: Now testing the same files from a server in our LAN. The playback is quite smooth. Any suggestions?
Contents of Application.xml:
<Root>
<Application>
<!-- 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 config directory
${com.wowza.wms.context.Application} - Application name
${com.wowza.wms.context.ApplicationInstance} - Application instance name
-->
<Streams>
<StreamType>rtp-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, cupertinostreamingrepeater, smoothstreamingrepeater, sanjosestreamingrepeater -->
<LiveStreamPacketizers>cupertinostreamingpacketizer, sanjosestreamingpacketizer</LiveStreamPacketizers>
<!-- DVRPacketizers (separate with commas): dvrpacketizer -->
<DVRPacketizers></DVRPacketizers>
<!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application -->
<Properties>
</Properties>
</Streams>
<!-- HTTPStreamers (separate with commas): cupertinostreaming, smoothstreaming, sanjosestreaming -->
<HTTPStreamers>cupertinostreaming,sanjosestreaming</HTTPStreamers>
<!-- DVRStores (separate with commas): dvrfilestorage -->
<DVRStores></DVRStores>
<SharedObjects>
<StorageDir></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>none</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>valid.server.ip.here</RTSPBindIpAddress>
<RTSPConnectionIpAddress>valid.server.ip.here</RTSPConnectionIpAddress>
<RTSPOriginIpAddress>valid.server.ip.here</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>forceMPEGTSOut</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>rtpWrapMPEGTS</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
</Properties>
</RTP>
<MediaCaster>
<!-- 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>
</Properties>
</LiveStreamPacketizer>
<HTTPStreamer>
<!-- Properties defined here will override any properties defined in conf/HTTPStreamers.xml for any HTTPStreamer loaded by this applications -->
<Properties>
</Properties>
</HTTPStreamer>
<DVRPacketizer>
<!-- Properties defined here will override any properties defined in conf/DVR.xml for any DVRPacketizer loaded by this applications -->
<Properties>
</Properties>
</DVRPacketizer>
<DVRStore>
<!-- Properties defined here will override any properties defined in conf/DVR.xml for any DVRStore loaded by this applications -->
<Properties>
</Properties>
</DVRStore>
<Repeater>
<OriginURL></OriginURL>
<QueryString><![CDATA[]]></QueryString>
</Repeater>
<Modules>
<Module>
<Name>base</Name>
<Description>Base</Description>
<Class>com.wowza.wms.module.ModuleCore</Class>
</Module>
<Module>
<Name>properties</Name>
<Description>Properties</Description>
<Class>com.wowza.wms.module.ModuleProperties</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>ModuleMulticastPublish</Name>
<Description>ModuleMulticastPublish</Description>
<Class>com.wowza.wms.plugin.multicastpublish.ModuleMulticastPublish</Class>
</Module>
</Modules>
<!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
<Properties>
<Property>
<Name>multicastPublishMaximumStartDelay</Name>
<Value>10000</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>multicastPublishWriteSDPFiles</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>multicastPublishRemoveSDPFiles</Name>
<Value>true</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>multicastPublishSDPStorageDir</Name>
<Value>${com.wowza.wms.context.VHostConfigHome}/applications/${com.wowza.wms.context.Application}/sdp</Value>
</Property>
<Property>
<Name>multicastPublishMulticastMapPath</Name>
<Value>${com.wowza.wms.context.VHostConfigHome}/conf/multicastmap.txt</Value>
</Property>
<Property>
<Name>multicastPublishMulticastMapNameDelimiter</Name>
<Value>=</Value>
</Property>
<Property>
<Name>multicastPublishAutoAssignAddresses</Name>
<Value>false</Value>
<Type>Boolean</Type>
</Property>
<Property>
<Name>multicastPublishMulticastStartingAddress</Name>
<Value>239.5.5.5</Value>
</Property>
<Property>
<Name>multicastPublishMulticastAddressIncrement</Name>
<Value>1</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>multicastPublishMulticastStartingPort</Name>
<Value>10000</Value>
<Type>Integer</Type>
</Property>
<Property>
<Name>multicastPublishMulticastAddressIncrementMode</Name>
<Value>address</Value>
</Property>
<Property>
<Name>multicastPublishMPEGTSOut</Name>
<Value>false</Value>
<Type>Boolean</Type>
</Property>
</Properties>
</Application>
</Root>