Wowza Community

Push Publishing AddOn package to push stream to CDNs and service providers

https://www.wowza.com/docs/how-to-push-streams-to-cdns-and-other-services-push-publishing

Hi I am trying to use this AddOn to publish to BitGravity with my custom module.

Seems it works but I have doubts about some lines in the logs. Please, have a look.

Does the PingResult.onResult should return false? Is it ok?

I tried the same code with my local WMS and there was true result on the ping and with WMS I had the only ping line in the logs.

Here is the logs when connecting to Bitgravity

[PHP]

INFO server comment - PushPublisher#IdleHandler.create

INFO server comment - PushPublisher.addSession: {[0]: 1028147850 }

INFO server comment - PushPublisher.sessionOpened:

INFO server comment - PushPublisher.callConnect[rtmp://rtp1.cdg1.bitgravity.com:1935/rtmp/push/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/live/feed01]: rtmp/push

INFO server comment - PushPublisher#ConnectResult.connect[rtmp://rtp1.cdg1.bitgravity.com:1935/rtmp/push/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/live/feed01]: result: NetConnection.Connect.Success description:Connection succeeded.

INFO server comment - PushPublisher#StreamCreateResult.onResult[rtmp://rtp1.cdg1.bitgravity.com:1935/rtmp/push/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/live/feed01]: publishStream: com.wowza.wms.stream.MediaStreamVODTest@1e883644

INFO server comment - PushPublisher#StreamOnStatus.onCallback[rtmp://rtp1.cdg1.bitgravity.com:1935/rtmp/push/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/live/feed01]: NetStream.Publish.Start

INFO server comment - PushPublisher#IdleHandler.onIdle: validate

INFO server comment - PushPublisher#PingResult.onResult: false

INFO server comment - PushPublisher: ping OK

INFO server comment - PushPublisher#IdleHandler.onIdle: validate

INFO server comment - PushPublisher#PingResult.onResult: false

INFO server comment - PushPublisher: ping OK

INFO server comment - PushPublisher#IdleHandler.onIdle: validate

INFO server comment - PushPublisher#PingResult.onResult: false

INFO server comment - PushPublisher: ping OK

INFO server comment - PushPublisher#IdleHandler.onIdle: validate

INFO server comment - PushPublisher#PingResult.onResult: false

INFO server comment - PushPublisher: ping OK

INFO server comment - PushPublisher#IdleHandler.onIdle: validate

INFO server comment - PushPublisher#PingResult.onResult: false

INFO server comment - PushPublisher: ping OK

INFO server comment - PushPublisher#IdleHandler.onIdle: validate

INFO server comment - PushPublisher#PingResult.onResult: false

INFO server comment - PushPublisher: ping OK

[/PHP]

Here is the log of local connection to the same WMS

[PHP]

INFO stream create - -

INFO stream publish test -

INFO server comment - PushPublisher#IdleHandler.create

INFO server comment - PushPublisher.addSession: {[0]: 900532540 }

INFO server comment - PushPublisher.sessionOpened:

INFO server comment - PushPublisher.callConnect[rtmp://localhost:1935/rtmp/push/test]: rtmp/push

INFO application app-start push rtmp/push

INFO session connect-pending 127.0.0.1 -

INFO session connect 127.0.0.1 -

INFO server comment - PushPublisher#ConnectResult.connect[rtmp://localhost:1935/rtmp/push/test]: result: NetConnection.Connect.Success description:Connection succeeded.

INFO stream create - -

PushPublisher#StreamCreateResult.onResult[rtmp://localhost:1935/rtmp/push/test]: publishStream: com.wowza.wms.stream.MediaStreamVODTest@24be0446

INFO stream publish test -

INFO server comment - PushPublisher#StreamOnStatus.onCallback[rtmp://localhost:1935/rtmp/push/test]: NetStream.Publish.Start

INFO server comment - PushPublisher#IdleHandler.onIdle: validate

INFO server comment - PushPublisher#PingResult.onResult: true

INFO server comment - PushPublisher: ping OK

[/PHP]

It should return true. Not sure why it is not for BitGravity. There are other heuristics that are used to validate the connection as well. So these are most likely keeping the connection open.

Charlie

It is ready to use. It just requires Java programming and the skills required are not basic. Not sure how else to answer your question. The technology is solid. It takes a bit of work to implement.

Charlie

We will consider add this but it is not available at this time. No definitive timeframe as to when we would add this capability.

Charlie

It might work with Highwinds. If you can send a stream from FMLE to Highwinds using authenticaiton without adding any plugin to FMLE then regular RTMP authentication should just work. Give it a try and let us know.

Charlie

Thanks for the info.

Charlie

I guess there is work to do for authentication. No short term plans to add support. I would continue to check the push publishing addon article to see when Highwinds support is added.

Charlie

Was this a question? I guess I did not understand the question. Can you explain in detail the problem.

Charlie

Do you have this working when using FMLE. You should be able to use this same connection info to publish using FMLE, right? Does that work? I might use that to try and debug the issue. Get that working first.

Charlie

Sorry, did not mean anything by my suggestions. Just trying to find a way to debug why it is not working. Seemed like FMLE was a decent way to debug.

Charlie

I think the value you are talking about is in Application.xml. It is the RTP/RTSPSessionTimeout.

Charlie

I will need to look into it and get back to you.

Charlie

Hi,

we got a problem with Push Publisher reconnection feature.

Seems it stop working in case of the destination host getting not resolvable for some reason. In our situation it happens for a short period of time, but the reconnector just stop working.

2011-01-11      14:28:30        CET     comment server  INFO    200     -       PushPublisher#IdleHandler.onIdle: validate      -       -       -       66236.427       -     -       -       -       -       -       -       -       - -       -       -       -       -       -       -       -       -       -       -       -       -       -       - -
2011-01-11      14:28:30        CET     comment server  INFO    200     -       PushPublisher.resetConnection: com.wowza.wms.plugin.pushpublish.protocol.rtmp.PushPublisherRTMPSession@49293945 -       -       -       66236.426       - -       -       -       -       -       -       -       -       -       -       -       -       -       -       - -       -       -       -       -       -       -       -       -
2011-01-11      14:28:30        CET     comment server  INFO    200     -       PushPublisher.removeSession: {} --       -       66236.427       -       -       -       -       -       -       -       -       -       -       - -       -       -       -       -       -       -       -       -       -       -       -       -       -
2011-01-11      14:28:30        CET     comment server  INFO    200     -       PushPublisher#IdleHandler.onIdle: validate      -       -       -       66236.427       -       -       -       -       -       -       -       -       - -       -       -       -       -       -       -       -       -       -       -       -       -       -       - -
2011-01-11      14:28:30        CET     comment server  INFO    200     -       PushPublisher#IdleHandler.create-       -       -       66236.427       -       -       -       -       -       -       -       -       -       - -       -       -       -       -       -       -       -       -       -       -       -       -       -       -
2011-01-11      14:28:30        CET     comment server  INFO    200     -       PushPublisher.sessionClosed     --       -       66236.427       -       -       -       -       -       -       -       -       -       -       --       -       -       -       -       -       -       -       -       -       -       -       -       -
2011-01-11      14:28:30        CET     comment server  ERROR   500     -       PushPublisher.Reconnector: java.nio.channels.UnresolvedAddressException -       -       -       66236.427       -       -       -       -       -       --       -       -       -       -       -       -       -       -       -       -       -       -       -       --       -       -       -

Re-download the push publishing package and try the new .jar file in the lib folder. I have added a try/catch block to the connection attempt that should make it work better.

Charlie

Redownload the push publishing package. There is now a new method:

PushPublisherRTMP.setRemoveDefaultAppInstance(removeDefaultAppInstance);

If you set this to true then it should remove the definst part when connecting.

Charlie

Try surrounding in CDATA tag:

<Value><![CDATA[http://mycompany.com/myurl]]></Value>

Charlie

Kind of a complicated to setup. You will need to create a .stream file that points to the orgin stream, start it in the stream manager or StartupStreams.xml then you can use the push publishing module to send it out. Those are the basic steps.

Charlie

You might try:

publisher.setHostname(InetAddress.getByName(“1.6960364.fme.ustream.tv”));

Charlie

Try stream.sendDirect.

Charlie

Which CDN are you trying to send to. Not all will work. Depends on how they handle security.

Charlie