Results 1 to 2 of 2

Thread: PushPublishRTMP with onMetadata

  1. #1
    Join Date
    Sep 2015
    Posts
    1

    Default PushPublishRTMP with onMetadata

    In my module I create streams dynamically using Stream.createInstance and use stream.play(..) to play video on them. These streams should be republished using RTMP so I create an instance of PushPublishRTMP and set source and destination. As long as I disable sendOnMetadata it works, the video played on the stream is published.

    I would like to inject the metadata dynamically as well (as @setDataFrame) but I cannot figure out how to do this. I saw other posts referencing stream.sendDirect("onMetadata", ..) but it doesn't send it and the streaming doesn't start (waiting for the metadata I assume). I tried calling sendData when creating the stream, when creating the push publisher, adding a listener and sending it from onStreamOnStatus and onStreamCreate, neither which worked.

    The log contains:

    2015-09-26      15:18:26        CEST    comment server  INFO    200     -       PushPublishRTMP.connect[rtmp://example.net:1935/app/dst]      -       -       -       40.479  -       -       -       -     --       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -     --       -       -
    2015-09-26      15:18:26        CEST    comment server  INFO    200     -       PushPublishRTMP#IdleHandler.create[rtmp://example.net:1935/app/dst]   -       -       -       40.487  -       -       -     --       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -     --       -       -       -
    2015-09-26      15:18:26        CEST    comment server  INFO    200     -       ExampleModule: onPushPublisherSessionCreate   -     --       40.489  -       -       -       -       -       -       -       -       -       -       -       -       -       -     --       -       -       -       -       -       -       -       -       -
    2015-09-26      15:18:26        CEST    comment server  INFO    200     -       ExampleModule: onConnectStart -       -       -     40.49    -       -       -       -       -       -       -       -       -       -       -       -       -       -       -     --       -       -       -       -       -       -       -       -
    2015-09-26      15:18:26        CEST    comment server  INFO    200     -       PushPublishRTMP.addSession[rtmp://example.net:1935/app/dst]: {[0]: 1367593 }  -       -       -       40.522  -       -     --       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -     --       -       -       -       -
    2015-09-26      15:18:26        CEST    comment server  INFO    200     -       ExampleModule: onSessionOpened        -       -     -40.529  -       -       -       -       -       -       -       -       -       -       -       -       -       -       -     --       -       -       -       -       -       -       -       -
    2015-09-26      15:18:27        CEST    comment server  INFO    200     -       PushPublishRTMP.callConnect[rtmp://example.net:1935/app/dst]: app/
    {Obj[]: app: "app/", flashVer: "FMLE/3.0 (compatible; FMSc/1.0)", swfUrl: "WowzaProLiveRepeater", tcUrl: "rtmp://example.net:1935/app/", fpad: false, audioCodecs: 3191.0, videoCodecs: 252.0, pageUrl: "", sendChunkSize: 4096.0}      -       -     -40.929  -       -       -       -       -       -       -       -       -       -       -       -       -       -       -     --       -       -       -       -       -       -       -       -
    2015-09-26      15:18:27        CEST    comment server  INFO    200     -       PushPublishRTMP#ConnectResult.onResult[rtmp://example.net:1935/app/dst]: result: NetConnection.Connect.Success description:Connection accepted. Message:     -       -       -       41.168  -       -       -       -       -       -       -       -     --       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -
    2015-09-26      15:18:27        CEST    comment server  INFO    200     -       PushPublishRTMP#FCPublishResult.onCallback[rtmp://example.net:1935/app/dst]: result: NetStream.Publish.Start  -       -     -41.383  -       -       -       -       -       -       -       -       -       -       -       -       -       -       -     --       -       -       -       -       -       -       -       -
    2015-09-26      15:18:27        CEST    comment server  INFO    200     -       ExampleModule: onStreamCreate -       -       -     41.384   -       -       -       -       -       -       -       -       -       -       -       -       -       -       -     --       -       -       -       -       -       -       -       -
    2015-09-26      15:18:27        CEST    comment server  INFO    200     -       PushPublishRTMP#StreamCreateResult.onResult[rtmp://example.net:1935/app/dst]: publishStream: com.wowza.wms.stream.MediaStreamVODTest@e6dbf8  -       -       -       41.385  -       -       -       -       -       -       -       -       -       -     --       -       -       -       -       -       -       -       -       -       -       -       -       -
    2015-09-26      15:18:27        CEST    comment server  INFO    200     -       ExampleModule: onStreamOnStatus       -       -     -41.669  -       -       -       -       -       -       -       -       -       -       -       -       -       -       -     --       -       -       -       -       -       -       -       -
    2015-09-26      15:18:27        CEST    comment server  INFO    200     -       ExampleModule: onMetadata injected    -       -     -41.67   -       -       -       -       -       -       -       -       -       -       -       -       -       -       -     --       -       -       -       -       -       -       -       -
    2015-09-26      15:18:27        CEST    comment server  INFO    200     -       PushPublishRTMP#StreamOnStatus.onCallback[rtmp://example.net:1935/app/dst]: NetStream.Publish.Start   -       -       -     41.671   -       -       -       -       -       -       -       -       -       -       -       -       -       -       -     --       -       -       -       -       -       -       -       -
    2015-09-26      15:18:27        CEST    comment server  INFO    200     -       PushPublishRTMP[rtmp://example.net:1935/app/dst].isOnMetadataReady: count:0 time:0 video:true/false videoRate:false/false audio:true/false audioRate:false/false ready:false/false   -       -       -       41.671  -       -       -       -       -     --       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -     --       -
    2015-09-26      15:18:27        CEST    comment server  INFO    200     -       PushPublishRTMP[rtmp://example.net:1935/app/dst].isOnMetadataReady: count:1 time:135 video:true/false videoRate:false/false audio:true/false audioRate:false/false ready:false/false -       -       -       41.806  -       -       -       -       -     --       -       -       -       -       -       -       -       -       -       -       -       -       -       -       -     --       -
    ...
    (last message is repeated until it gives up)
    Part of the code:
    publisher.setAppInstance(appInstance);
    publisher.setSrcStreamName(streamName());
    publisher.setHostname("example.net");
    publisher.setPort(1935);
    publisher.setDstApplicationName("app");
    publisher.setDstStreamName("dst");
    publisher.setDstAppInstanceName("");
    publisher.setSendFCPublish(true);
    publisher.setSendOnMetadata(true);
    publisher.setOnMetadataToSetDataFrame(true);
    publisher.setDebugLog(true);
    publisher.setImplementation("rtmp");
    
    /* ... */
    
    IMediaStream stream = appInstance.getStreams().getStream(streamName());
    if (stream != null) {
    	AMFDataObj amfData = new AMFDataObj();
    	amfData.put("title", new AMFDataItem("Example stream"));
    	amfData.put("language", new AMFDataItem("Swedish"));
    	//stream.sendDirect("onMetaData", amfData);
    	stream.sendDirect("onMetadata", amfData);
    	logger.info("onMetadata injected");
    }
    Any ideas what I'm doing wrong?

  2. #2

    Default

    Try adding
    stream.processSendDirectMessages();
    after your sendDirect() call. That works for me with "onTextData" events

Similar Threads

  1. NullPointerException in PushPublishRTMP
    By rakshith in forum Live Streaming and Encoders
    Replies: 1
    Last Post: 06-18-2015, 07:11 AM
  2. Mixing vod and live streams with PushPublishRTMP to akamai
    By anupam in forum Live Streaming and Encoders
    Replies: 1
    Last Post: 11-06-2014, 08:14 AM
  3. PushPublishRTMP doesn't work with IPv6
    By /usr/local/dick in forum Live Streaming and Encoders
    Replies: 5
    Last Post: 08-08-2014, 12:43 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
  •