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

Thread: Stream name already in use

  1. #1
    Join Date
    Apr 2013
    Posts
    10

    Default Stream name already in use

    Hi!

    Wowza Media Server 3.5.2, Linux Debian

    I use Transcoder AddOn to transcode h.264/G.711 to h.264/ACC streams. Transcoder has ~40 incoming streams. It works for some time (10-15 minutes) then memory starts leaking. In wowzamediaserver_error.log there are several records:

    WARN server comment 2013-06-26 17:39:17 - - - - - 2332.832 - - - - - - - - Publisher.publish: Stream name already in use: camera_00306F843360_code
    WARN server comment 2013-06-26 17:39:49 - - - - - 2365.26 - - - - - - - - Publisher.publish: Stream name already in use: camera_00306F8427C0_code
    WARN server comment 2013-06-26 17:40:31 - - - - - 2407.315 - - - - - - - - Publisher.publish: Stream name already in use: camera_00306F843360_code
    WARN server comment 2013-06-26 18:14:10 - - - - - 4426.142 - - - - - - - - Publisher.publish: Stream name already in use: 474_20130625132401828_code

    Stream name "*_code" is for transcoded stream.

    I think that when incoming stream with the same name reconnects Transcoder it can not close previous stream. Is it possible to purge previous stream right after it disconnects from Transcoder with minimum timeout?

    Is Transcoder AddOn the one who logs "Publisher.publish: Stream name already in use..." messages?

  2. #2
    Join Date
    Dec 2007
    Posts
    21,962

    Default

    Is it possible you are allowing the same stream name to be published? There is a module to prevent that from happening here:
    http://www.wowza.com/forums/content....publish-stream

    Or is the MediaCaster stream being reset before this happens? Do you have the MediaCaster Monitor enabled? If that is the case, can you upgrade to Wowza 3.6.2? There were some Transcoder changes. There is 3x to 3.6.2 patch here on Production Build page

    Richard

  3. #3
    Join Date
    Apr 2013
    Posts
    10

    Default

    Is it possible you are allowing the same stream name to be published?
    Yes. I have several bad incoming streams that connects/disconnects Transcoder 2-3 times a second.

    Do you have the MediaCaster Monitor enabled?
    I am sorry. I did not mention that streams are RTMP! So there are no MediaCaster Monitor.

    If that is the case, can you upgrade to Wowza 3.6.2?
    There is a module to prevent that from happening here:
    http://www.wowza.com/forums/content....publish-stream
    I upgraded to Wowza 3.6.2 and switched on ModuleBlockDuplicateStreamNames module.

    Now wowzamediaserver_error.log has messages:
    WARN server comment 2013-06-27 12:36:06 - - - - - 1866.231 - - - - - - - - Publisher.publish: Stream name already in use: 438_20130529144051363_code

    And wowzamediaserver_access.log has messages:
    2013-06-27 12:36:54 MSK comment server INFO 200 - ModuleBlockDuplicateStreamNames.releaseStream[rtp-live/_definst_]: Stream name is already in use: 159_20130123160602450 - - - 1914.667

    I notice that stream names are not coincide in logs...

    But memory is still leaking!!! And I can see blocked stream "159_20130123160602450" with Flash RTMP Player example. Does ModuleBlockDuplicateStreamNames work? Is it possible that ModuleBlockDuplicateStreamNames is missing some streams?
    Last edited by Artem Orlov; 06-27-2013 at 02:40 AM.

  4. #4
    Join Date
    Apr 2013
    Posts
    10

    Default

    I set up ModuleBlockDuplicateStreamNames module like in the article
    http://www.wowza.com/forums/content....publish-stream

    But I could not see "NetStream.Publish.Denied" messages in log.

  5. #5
    Join Date
    Dec 2007
    Posts
    21,962

    Default

    "NetStream.Publish.Denied" is a notification sent to the RTMP encoder, it is not logged in Wowza. That module does write to the log just before sending that notificaiton:

    getLogger().info("ModuleBlockDuplicateStreamNames.publish["+appInstance.getContextStr()+"]: Stream name is already in use: "+streamName);
    What do you mean by "memory leak"? Transcoding uses a lot of cpu and memory. Take a look at these Transcoder benchmark tests for comparison, to see what is realistic for your setup

    Remember that you have to leave room for playback. It is common to use Live Repeater (origin/edge) configuration with the Transcoder, where the transcoding is done on the origin and the edge(s) handle playback clients. This leaves more room on the origin for transcoding.

    Richard

  6. #6
    Join Date
    Apr 2013
    Posts
    10

    Default

    Today "Stream name is already in use" messages disappeared from logs and memory stopped leaking!!! I guess that these two events are connected...

    The problem was in unstable incoming stream which reconnected transcoder two times a second. Can the leak be in stream create/destroy functions? I'll have to do more profiling...

  7. #7
    Join Date
    Apr 2013
    Posts
    10

    Default

    When I switch off cupertinostreamingpacketizer memory stops leaking with unstable stream.

    With cupertinostreamingpacketizer:


    Without cupertinostreamingpacketizer:



    Richard, are there special conditions to run cupertinostreamingpacketizer? Is it possible to block unstable RTMP stream from being processed by cupertinostreamingpacketizer?

  8. #8
    Join Date
    Dec 2007
    Posts
    21,962

    Default

    Are you only doing RTMP streaming? If so, remove the cupertinostreamingpacketizer, you don't need it.

    Otherwise, try IMediaStream.setLiveStreamPacketizer("") in the IMediaStreamActionNotify.onPublish() handler to turn off packetizing for a stream, if you can identify it.

    Richard

  9. #9
    Join Date
    Apr 2013
    Posts
    10

    Default

    Otherwise, try IMediaStream.setLiveStreamPacketizer("") in the IMediaStreamActionNotify.onPublish() handler to turn off packetizing for a stream, if you can identify it.
    I do not understand why ModuleBlockDuplicateStreamNames doesn't work? Unstable stream connects WowzaMediaServer with the same name!

  10. #10
    Join Date
    Apr 2013
    Posts
    10

    Default

    the IMediaStreamActionNotify.onPublish() handler
    Richard,

    How can I delay each incoming stream from publishing for 5 - 10 seconds? This time is enough to filter high-frequency connect/disconnect events. Unstable stream will never be published!

    Starting frames from delayed stream can be skipped.
    Last edited by Artem Orlov; 07-02-2013 at 01:40 AM.

Page 1 of 2 12 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
  •