Page 3 of 5 FirstFirst 12345 LastLast
Results 21 to 30 of 42

Thread: How to setup Live Stream Repeater for the Silverlight player

  1. #21

    Default

    Please describe in detail your exact problem with detail on encoder being used and setup.

    Charlie

  2. #22

    Default

    We are using FMLE3.1 + MainConcept AAC for encoding. It publishes 3 streams. 768, 512, 240 kbps, mp4:football1.sdp, mp4:football2.sdp, mp4:football2.sdp accordingly.
    We are using WMS 2.1.1 build24490 for streaming on both origin and edge.
    Smil (smil:football.smil) for SL multistreaming is:
    Code:
    <smil>
    	<head>
    	</head>
    	<body>
    		<switch>
    			<video src="mp4:football1.sdp" system-bitrate="768000"/>
    			<video src="mp4:football2.sdp" system-bitrate="512000"/>
    			<video src="mp4:football3.sdp" system-bitrate="240000"/>
    		</switch>
    	</body>
    </smil>
    Origin conf/live/Applications.xml
    Code:
    <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>liverepeater-origin</StreamType>
    			<StorageDir>${com.wowza.wms.context.VHostConfigHome}/content</StorageDir>
    			<KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir>
    			<!-- LiveStreamPacketizers (separate with commas): cupertinostreamingpacketizer, smoothstreamingpacketizer, cupertinostreamingrepeater, smoothstreamingrepeater -->
    			<LiveStreamPacketizers>smoothstreamingpacketizer</LiveStreamPacketizers>			
    			<!-- 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 -->
    		<HTTPStreamers>smoothstreaming</HTTPStreamers>
    		<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></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>
    			<!-- Properties defined here will override any properties defined in conf/MediaCasters.xml for any MediaCasters loaded by this applications -->
    			<Properties>
    				<Property>
    					<Name>streamTimeout</Name>
    					<Value>15000</Value>
    					<Type>Integer</Type>
    				</Property>
    			</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>
    		<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>ModuleRTMPAuthenticate</Name>
    				<Description>ModuleRTMPAuthenticate</Description>
    				<Class>com.wowza.wms.plugin.security.ModuleRTMPAuthenticate</Class>
    			</Module>
    		</Modules>
    		<!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
    		<Properties>
    			<Property>
    				<Name>smoothStreamingMediaMajorVersion</Name>
    				<Value>2</Value>
    				<Type>Integer</Type>
    			</Property>
    		</Properties>
    	</Application>
    </Root>
    Edge conf/live/Applications.xml
    Code:
    <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>liverepeater-edge</StreamType>
    			<StorageDir>/etc/cdn/wowza/content</StorageDir>
    			<KeyDir>${com.wowza.wms.context.VHostConfigHome}/keys</KeyDir>
    			<!-- LiveStreamPacketizers (separate with commas): cupertinostreamingpacketizer, smoothstreamingpacketizer, cupertinostreamingrepeater, smoothstreamingrepeater -->
    			<LiveStreamPacketizers>smoothstreamingrepeater</LiveStreamPacketizers>			
    			<!-- 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 -->
    		<HTTPStreamers>smoothstreaming</HTTPStreamers>
    		<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></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>
    			<!-- Properties defined here will override any properties defined in conf/MediaCasters.xml for any MediaCasters loaded by this applications -->
    			<Properties>
    				<Property>
    					<Name>streamTimeout</Name>
    					<Value>15000</Value>
    					<Type>Integer</Type>
    				</Property>
    			</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>
    		<Repeater>
    			<OriginURL>rtmp://my-origin1/live|rtmp://my-origin2/live</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>bwcheck</Name>
    				<Description>Bandwidth Checker</Description>
    				<Class>com.wowza.wms.plugin.bwcheck.ModuleBWCheck2</Class>
    			</Module>
    		</Modules>
    		<!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
    		<Properties>
    			<Property>
    				<Name>smoothStreamingMediaMajorVersion</Name>
    				<Value>2</Value>
    				<Type>Integer</Type>
    			</Property>
    			<Property>
    				<Name>bwCheckPayloadSize</Name>
    				<Value>1800</Value>
    				<Type>Integer</Type>
    			</Property>
    			<Property>
    				<Name>bwCheckMaxLoops</Name>
    				<Value>6</Value>
    				<Type>Integer</Type>
    			</Property>
    			<Property>
    				<Name>bwCheckMaxTime</Name>
    				<Value>1000</Value>
    				<Type>Long</Type>
    			</Property>
    		</Properties>
    	</Application>
    </Root>

  3. #23

    Default

    I can successfully play a single stream (for example http://my-edge/live/mp4:football1.sdp/Manifest) using SL streaming, but if I try to play multibitrate (http://my-edge/live/smil:football.smil/Manifest), then the stream is played 1-2 minutes, then stops.
    So in the logs I see the mistakes that I wrote in my first post.
    I've tried to use StartupStreams.xml on edge, but it had no effect.
    Last edited by Falcon-M; 07-08-2010 at 08:02 AM.

  4. #24
    Join Date
    Dec 2007
    Posts
    25,881

    Default

    I think using .stream files is the answer. Let me try something to verify, I'll post back in a few.

    Richard

  5. #25
    Join Date
    Dec 2007
    Posts
    25,881

    Default

    I have this working with Silverlight, and, for good measure, IPhone too. Here are the components:

    1. Encoder
      1. Publishing Point: rtmp://[wowza-origin-address]/origin
      2. Stream: myStream%i (myStream1 and myStream2 enabled)
      3. Format: h.264 (Baseline 3 for the benefit of IPhone)


    2. /conf/origin/Application.xml
      1. StreamType "liverepeater-origin"
      2. LiveStreamingPacketizers "cupertinostreamingrepeater, smoothstreamingrepeater" (NOTE, these are the repeater packetizers here)


    3. /conf/edge/Application.xml
      1. StreamType: "liverepeater-edge"
      2. LiveStreamPacketizers: "cupertinostreamingpacketizer, smoothstreamingpacketizer"


    4. [wowza-install-dir]/content
      1. myStream1.stream
        rtmp://[wowza-origin-address]:1935/origin/myStream1
      2. myStream2.stream
        rtmp://[wowza-origin-address]:1935/origin/myStream2
      3. mult.smil
        <smil>
        <head>
        </head>
        <body>
        <switch>
        <video src="myStream1.stream" system-bitrate="300000"/>
        <video src="myStream2.stream" system-bitrate="500000"/>
        </switch>
        </body>
        </smil>

    5. StreamManager (http://[wowza-edge-address]:8086/streammanager
      1. Click "Start Receiving Stream" for the "edge" application.
      2. Enter "myStream1.stream"
      3. Select MediaCaster type "liverepeater"
      4. Click OK


    6. Silverlight Manifest:
      1. Code:
        http://[wowza-edge-address]:1935/edge/smil:multi.smil/Manifest
      2. Using MSExpression4SLTemplateGraphing.zip


    7. IPhone:
      Code:
      http://[wowza-edge-address]:1935/edge/smil:multi.smil/playlist.m3u8


    Richard
    Last edited by rrlanham; 07-08-2010 at 10:13 AM.

  6. #26
    Join Date
    Dec 2007
    Posts
    25,881

    Default

    Note that I made a correction: switched LiveStreamPacketizers in the edge and origin.

    And I added a step: Start .stream files on edge with StreamManager (step #5)

    Richard

  7. #27

    Default

    Thank you Richard!
    Smooth streaming works fine now, even without StartupStreams.xml or StreamManager.
    But I have one more question. How to setup the origin failover? Like <OriginURL>my-origin1/live|my-origin2/live</OriginURL>
    I tried change .stream files like this
    Code:
    rtmp://my-origin1/live/myStream1|rtmp://my-origin2/live/myStream1
    But it doesn't work
    Also I tried change .stream files like this
    Code:
    myStream1
    and setup OriginURL in live/Application.xml like this
    Code:
    <OriginURL>my-origin1/live|my-origin2/live</OriginURL>
    But it doesn't work too
    --
    Andrew

  8. #28
    Join Date
    Dec 2007
    Posts
    25,881

    Default

    What do you mean, it doesn't work? What was the test and what was the result?

    Richard

  9. #29

    Default

    Sorry, I did jump to conclusions.

    I checked all the config files again and this version looks quite working:
    content/myStream.stream
    Code:
    rtmp://my-origin1/live/mp4:myStream1|rtmp://my-origin2/live/mp4:myStream1
    I turned off the my-origin1 and my-edge switched to the my-origin2 smoothly.
    Then I went through all the same thing back. It worked perfectly!

    Thank you very much for the help!

    --
    Andrew

  10. #30
    Join Date
    Dec 2007
    Posts
    25,881

    Default

    Great! Thanks for the update. Glad it's working

    Richard

Page 3 of 5 FirstFirst 12345 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •