Results 1 to 4 of 4

Thread: Stream name is missing for too long, flushing delayed packet

  1. #1
    Join Date
    Mar 2014
    Posts
    11

    Default Stream name is missing for too long, flushing delayed packet

    Hi,

    I'm having some problems publishing with Flex client.

    I have a custom module that check if user is allowed to publish or not with IMediaStreamActionNotify3
    Something like:
    public void onPublish(IMediaStream stream, String streamName, boolean isRecord, boolean isAppend)
    		{
    			//logic to check if user is allowed
    
    				if(notAllowed){
    					stream.getClient().setShutdownClient(true);
    					stream.stopPublishing();
    					stream.shutdown();
    					stream.close();
    					stream.flush();
    					}
    }
    The problem is:
    Sometime when I pause Flex enconder and unpause to start broadcast again y get this error:

    WARN server comment - LiveReceiver.flushPacketizerDelayCommand[live/_definst_/]: Stream name is missing for too long, flushing delayed packet.
    and transcoder starts without a stream name and the transcoded files names are "_240p", "_720p", "_source"... without stream name.

    I was checking this post: http://www.wowza.com/forums/showthre...arn-message%29

    and problem seems to be that I don't override publish method correctly, but I'm using IMediaStreamActionNotify3 I'm not using publish(IClient client, RequestFunction function, AMFDataList params) method to check users, I'm using onPublish(IMediaStream stream, String streamName, boolean isRecord, boolean isAppend) on IMediaStreamActionNotify3

    How can I solve this?

    Thank you,
    Jose

  2. #2

    Default

    Hi,

    The most likely reason you are getting this error here is because you are not shutting down the stream correctly so the stream and connection are being left in some unknown state.

    You should just need to call
    stream.getClient().setShutdownClient(true);
    this will disconnect the client and shut down it's stream automatically.

    You shouldn't call any of the stream methods directly to shut it down as this will bypass some of the internal calls.

    As mentioned in the other post, you should really perform the validation in the publish override. At that point, the stream has not actually been published and is easier to shutdown. In the onPublish method, it is already published and running. This event is also called as part of the application event notifications and other modules and classes that listen for onPublish (such as the transcoder or recording) will also receive the event, even if you try to kill the connection in your event listener.

    The actual reason you are receiving that warning in the logs is because there have been a bunch of video and / or audio packets arrive and the stream name is not known. (This could be due to the way you are shutting down the stream)

    The way that the AS3 NetStream docs say to start publishing a stream also doesn't help. It suggests that you create a NetStream object, connect the camera and mic and then call netStream.publish. If you are doing any validation on the stream name that may take some time or drop the connection then you should use an event listener in your AS3 code to listen for the publish confirmation event and only start the camera and mic after you receive that confirmation.

    You should set up a NetStatus event listener on your NetStream and listen for the `NetStream.Publish.*` events. When you receive the NetStream.Publish.Start event then it should be safe to connect the camera and mic. Also listen for the NetConnection.Connect.Closed event on the NetConnection which will be sent when you call client.setShutdownClient(true) from the Wowza side.

    Roger.

  3. #3

    Default

    Hi,

    I make one application in Wowza "Testing".

    connection with Wowza is successful but in RTMP stream it throws this kind of error

    "WARN server comment 2014-05-30 18:01:10 - - - - - 2444.88 - - - - - - - - LiveReceiver.flushPacketizerDelayCommand[Testing/_definst_/]:

    Stream name is missing for too long, flushing delayed packet."

    Viewer side I am not enable to play RTMP stream.

    <?xml version="1.0" encoding="UTF-8"?>
    <Root version="1">
    <Application>
    <Name>Testing</Name>
    <AppType>Live</AppType>
    <Description>Default application for live 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 live 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>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 -->
    <LiveStreamPacketizers>cupertinostreamingpacketizer,smoothstreamingpacketizer,sanjosestreamingpacket izer,mpegdashstreamingpacketizer</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></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>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>
    <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>
    </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>
    <Module>
    <Name>ModuleCoreSecurity</Name>
    <Description>Core Security Module for Applications</Description>
    <Class>com.wowza.wms.security.ModuleCoreSecurity</Class>
    </Module>
    </Modules>
    <!-- Properties defined here will be added to the IApplication.getProperties() and IApplicationInstance.getProperties() collections -->
    <Properties>
    <Property>
    <Name>securityPublishRequirePassword</Name>
    <Value>true</Value>
    <Type>Boolean</Type>
    </Property>
    </Properties>
    </Application>
    </Root>

  4. #4
    Join Date
    Mar 2014
    Posts
    11

    Default

    Hi volansys,

    I finally solved this with the help of Roger. (Sorry for not reply)

    The problem was this:

    The way that the AS3 NetStream docs say to start publishing a stream also doesn't help. It suggests that you create a NetStream object, connect the camera and mic and then call netStream.publish. If you are doing any validation on the stream name that may take some time or drop the connection then you should use an event listener in your AS3 code to listen for the publish confirmation event and only start the camera and mic after you receive that confirmation.
    Now I attach the camera and mic after recieve the NetStream Accept and it's working fine.

    Regards,
    Jose

Similar Threads

  1. Replies: 2
    Last Post: 01-13-2015, 03:20 AM
  2. Start stream delayed X minutes
    By amermm in forum Live Streaming and Encoder Discussion
    Replies: 1
    Last Post: 10-01-2013, 07:22 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
  •