Page 1 of 2 12 LastLast
Results 1 to 10 of 12

Thread: HELP NEEDED! wowza enhanced seeking for RTMP playback in flash player

  1. #1
    Join Date
    Feb 2015
    Posts
    9

    Unhappy HELP NEEDED! wowza enhanced seeking for RTMP playback in flash player

    Hi guys I'm developing an app in as3 flash with wowza, it's basically a online video editor. So what I need is a exact precision on requested video frame, googled it for a while and found it on your forums http://www.wowza.com/forums/content....-RTMP-playback, but id doesn't work the way it should. Better the video sometimes freezes on play for few seconds, could You check the application config maybe I did do something wrong. Thank You for any info on this matter.

    The config file:

    <?xml version="1.0" encoding="UTF-8"?>
    <Root version="1">
    	<Application>
    		<Name>vod</Name>
    		<AppType>VOD</AppType>
    		<Description>Default application for video on demand (VOD) streaming created when Wowza Streaming Engine is installed. Use this application with its default configuration or modify the configuration as needed. You can also copy it to create another VOD application.</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 config directory
    			${com.wowza.wms.context.Application} - Application name
    			${com.wowza.wms.context.ApplicationInstance} - Application instance name
    			
    		-->
    		<Streams>
    			<StreamType>default</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></LiveStreamPacketizers>			
    			<!-- Properties defined here will override any properties defined in conf/Streams.xml for any streams types loaded by this application -->
    			<Properties>
                                <Property>
            	            <!-- videoKeyFrame, enhanced -->
                    	             <Name>seekTarget</Name>
                            	     <Value>enhanced</Value>			    
    		            </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>vodcaptionprovidermp4_3gpp</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>block</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>
    			<RTP>
    				<RTSP>
    					<!-- udp, interleave -->
    					<RTPTransportMode>interleave</RTPTransportMode>
    				</RTSP>
    			</RTP>
    			<StreamValidator>
    				<Enable>true</Enable>
    				<ResetNameGroups>true</ResetNameGroups>
    				<StreamStartTimeout>20000</StreamStartTimeout>
    				<StreamTimeout>12000</StreamTimeout>
    				<VideoStartTimeout>0</VideoStartTimeout>
    				<VideoTimeout>0</VideoTimeout>
    				<AudioStartTimeout>0</AudioStartTimeout>
    				<AudioTimeout>0</AudioTimeout>
    				<VideoTCToleranceEnable>false</VideoTCToleranceEnable>
    				<VideoTCPosTolerance>3000</VideoTCPosTolerance>
    				<VideoTCNegTolerance>-500</VideoTCNegTolerance>
    				<AudioTCToleranceEnable>false</AudioTCToleranceEnable>
    				<AudioTCPosTolerance>3000</AudioTCPosTolerance>
    				<AudioTCNegTolerance>-500</AudioTCNegTolerance>
    				<DataTCToleranceEnable>false</DataTCToleranceEnable>
    				<DataTCPosTolerance>3000</DataTCPosTolerance>
    				<DataTCNegTolerance>-500</DataTCNegTolerance>
    				<AVSyncToleranceEnable>false</AVSyncToleranceEnable>
    				<AVSyncTolerance>1500</AVSyncTolerance>
    				<DebugLog>false</DebugLog>
    			</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>
    				<Property>
    					<Name>calculateMoreAccurateFrameSize</Name>
    					<Value>true</Value>
    					<Type>Boolean</Type>
    				</Property>
    			</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>
    		<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> 
    		</Modules>
    		<!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
    		<Properties>
    		</Properties>
    	</Application>
    </Root>

  2. #2

    Default

    Hello there and welcome to the Wowza support forum.

    It looks like you have the property set correctly in the Application.xml file. Did you re-start the application after making the change?

    Kind regards,

    Salvadore

  3. #3
    Join Date
    Feb 2015
    Posts
    9

    Default

    Yes did restart wowza every time I changed the config file.

    Could it be that the wowza host server is to weak to do this work?

    After I changed the config file as shown above the the player skipped to the next key frame, so enhanced seeking didn't preform. But get some blurry key frames instead, or the playback did freeze for a 1second time, witch is quite weird.
    What I am trying to say is that I feel a change in the playback but for worse, and the enhanced seeking doesn't work properly.
    Last edited by Szymon; 02-03-2015 at 12:46 PM.

  4. #4
    Join Date
    Feb 2015
    Posts
    9

    Default

    Do I have to do also something on the flash side?

  5. #5

    Default

    Are you playing the stream, and testing enhanced seek in a Flash RTMP player? This feature is support for RTMP players only according to the guide.

    The enhanced seek does require more bandwidth, but the CPU should not be effected. So I don't think the server is the issue, but maybe bandwidth if it is very low.

    Salvadore

  6. #6
    Join Date
    Feb 2015
    Posts
    9

    Default

    It's my RTMP flash player using NetStream.play(streamName, start, len, reset);

  7. #7
    Join Date
    Feb 2015
    Posts
    9

    Default

    Can You post a link to that guide?
    Thx

  8. #8
    Join Date
    Jun 2011
    Posts
    1,047

    Default

    Hi,
    Here's the guide for Enhanced seek playback.

    Daren

  9. #9
    Join Date
    Feb 2015
    Posts
    9

    Default

    there is nothing there except what to add to the config file.

    Ok after a while I've noticed it works fine but only then i play a stream from the start. If i pause it on the start and play after few seconds the video gets blurry and pixelated over a short time or even freez on few seconds. That is not normal behavior, do u think the problem is on the server or player side?

  10. #10
    Join Date
    Feb 2015
    Posts
    9

    Default

    I'm 99% i did sth wrong in my AS3 code.
    Thx 4 help guys.

Page 1 of 2 12 LastLast

Similar Threads

  1. IP Security Camera rtsp to rtmp using Wowza does not work with Flash Player
    By komodor64 in forum Live Streaming and Encoder Discussion
    Replies: 1
    Last Post: 07-31-2013, 08:46 AM
  2. Unable to playback HTTP Sanjose stream on Flash player 11
    By gvijendr in forum Media Players and Devices Discussion
    Replies: 6
    Last Post: 04-03-2012, 06:12 AM

Posting Permissions

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