Wowza Community

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

Pete,

I have tested with my version of pushPublish module with success in Highwinds and BitGravity, if you can provide me an account into CDNetworks we can test this… let me know…

Regards,

Alejandro

Hi Guys,

How I can setting the userAgent when I use PushPublish module? currently into the log of the Origin I see “WowzaProLiveRepeater” and I would like to use “FMLE”/“Wirecast” or something more compatible with current encoders.

Thanks,

Ale

You might try:

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

Charlie

Charlie, I’m try to apply this fix but the IDE show me this Warning:

 The method setHostname(String) in the type PushPublisherRTMP is not applicable for the arguments (InetAddress) 

Can you please help me?

Your problem is this: java.nio.channels.UnresolvedAddressException

Check two post before Push Publishing AddOn package to push stream to CDNs and service providers

Richard/Charlie,

Can help with some example for stream to multiple servers the same Stream.

I have the module working well with one destination, but I don’t understand how use the API for stream the same content to a Backups server, say the other way, the same source to 2 destinations.

Thanks

Ale

in my cases this params is NOT working

publisher.setRemoveDefaultAppInstance(true);

Possible this break the string adding like the logs show:

rtmp://p.ep49790.i.akamaientrypoint.net:1935/EntryPoint/definst/wowza_push_test@49790]

Good morning,

It appears that I have a connection to edgecast from a stream as I see no errors in the log using the simple example with my specifics in it. However I am not sure how to tell any other data. Would the connectioncounts XML show outbound byte count if it was sending data or do I need to change something for that? Is there any other place to confirm that the stream is being pushed successfully or is there something to put in my module to tell me that?

Any help would be great.

Thanks

I’m trying to re-stream a RTSP webcam to a limelight reseller and not having success. Am I missing something obvious in my syntax?

They told me my test stream would ber

rtmp://fmspush.lax.llnw.net/zoomcom (Los Angeles, CA)

Stream : mycompany/jetslides/00000356

try

{

IApplicationInstance appInstance = stream.getStreams().getAppInstance();

synchronized(publishers)

{

PushPublisherRTMP publisher = new PushPublisherRTMP();

// Source stream

publisher.setAppInstance(appInstance);

publisher.setSrcStreamName(“camera.stream”);

// Destination stream

publisher.setHostname(“fmspush.lax.llnw.net/zoomcom”);

//publisher.setHostname(“fmspush.iad.linw.net”);

publisher.setPort(1935);

publisher.setDstApplicationName(“mycompany/jetslides”);

publisher.setDstStreamName(“00000356”);

publisher.setSendFCPublish(true);

publisher.setSendReleaseStream(true);

PushPublishRTMPAuthProviderLimelight limelightRTMPAuthProvider = new PushPublishRTMPAuthProviderLimelight();

limelightRTMPAuthProvider.init(publisher);

limelightRTMPAuthProvider.setUserName(“myuser”);

limelightRTMPAuthProvider.setPassword(“mypassword”);

publisher.setRTMPAuthProvider(limelightRTMPAuthProvider);

publisher.setRemoveDefaultAppInstance(true);

publisher.connect();

}

}

catch(Exception e)

{

WMSLoggerFactory.getLogger(null).info("PushPublisherRTMP: "+e.toString());

}

}

}

This is what I get in the logs:

PushPublisher.internalConnect[rtmp://fmspush.lax.llnw.net/zoomcom:1935/mycompany/jetslides/definst/00000356]: java.nio.channels.UnresolvedAddressException

Hi Charlie,

How to find that the PushPublisherRTMP is connected or not? I am trying to add some monitoring feature. I have registered active PushPublisherRTMPs in the JMX tree but can not understand how to get it connection status.

Hi Raymond,

we are very glad to see you here.

Charlie, we are definitely need your help here.

As Raymond already say, we have some issues with reconnection mechanism. Actualy the PushPublisherRTMP reconnection mechanizm works well but we need to have some control over it, how to delay the first reconnection attempt after connection failure, how to delay the following attempt if the first is not succeded and so on.

Also, there will be very good if the PushPublisherRTMP reconnection mechanism will have a little bit floating reconnection delay. This will be very usefull when, say 100 channels, has disconnected at once because of some network problems and then all of them trying to reconnect simultaneously, here is the random delay will be very very useful, so each stream will have each own reconnection cycle.

Also we have some issues on the startup. I have implemented the module where all running MediaCasters automaticaly published to BG. We have setup with MPEG-TS ingest to Wowza, over 100 channels. All channels configured with StreamStartup.xml, so on the server startup all 100+ MPEG-TS channels start publishing on the WMS and my module automaticaly start publishing each MediaCaster to BG with PushPublisherRTMP.

So, we have channels up and trying to publish to BG, all 100+ channels in several seconds. And, as I understand, here is the point where the BG ingest point sometime falling into problems. Too many connection attempts in short period of time.

Raymond, please, confirm if this issue is still actual.

Charlie, please, give me some adviсe how deal with it.

I am using the same technique as for StreamNameAlias to resolve the stream name got from user to the specific stream name with authentication credentials to specify it in PushPublishRTMP.

@Decard

  1. Please, clarify are you succeded with PushPublishRTMPAuthProviderAdobe but failed trying the same with PushPublishRTMP, right?

  2. I mean to use not the StreamNameAlias module, but the same technique to resolve the user streamName to proper streamName with authentication credentials. Contact me at support-at-unicodesolutions.ru and I will try to help you with it.

  3. Some thoughts about this

PushPublisher#IdleHandler.onIdle: validate

PushPublisher#PingResult.onResult: true

PushPublisher: ping OK

you have established the connection to the HW ingest point, not succeded in publishing the stream but anyway, the connection is established and this are the connection validation pings from WMS to HW.

Once started the PushPublishRTMP will work and keep the connection with HW until you have stop it, even if the source stream is unpublished. I am using the IMediaStreamActionNotify2.onUnPublish to stop the PushPublishRTMP when the stream from FMLE stopped.

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       -       -       -       -       -       --       -       -       -       -       -       -       -       -       -       -       -       -       -       --       -       -       -

Hi,

If you just need to add some additional params to the connection URL then just use

PushPublisherRTMP::setConnectionQueryStr(String queryStr)

for example, if you need to connect to the destination server with rtmp://server:1935/application/definst?user=test&password=test

then use

pushPublisherRTMP.setConnectionQueryStr("user=test&password=test");

How can I push to few destinations simultaneously ? Can you post an example?

Hello All,

I was wondering if someone has been able to successfully push a rtmp stream to Highwinds? Would it be possible to post your onPublish function as an example?

Thank you

Austin

Sorry for the duplicate post, original stated it failed to post!

Hello All,

I was wondering if someone has been able to successfully push a rtmp stream to Highwinds? Would it be possible to post your onPublish function as an example?

Thank you

Austin

Ok, these are the results of my testing in trying the push to Highwinds:

Highwinds setup:

server:

rtmp://fli003.dc1.hwcdn.net/zzz/definst

stream name:

fli/444444-test2?encoderuser=user&encoderpassword=password

and I configured the ip address on the wowza server on the push service.

java snippet:

publisher.setHostname(“fli003.dc1.hwcdn.net”);

publisher.setPort(1935);

publisher.setDstApplicationName(“zzz”);

publisher.setDstStreamName(“fli/444444-test2?encoderuser=user&encoderpassword=password”);

wowza logs:

INFO server comment - PushPublisher.callConnect[rtmp://fli003.dc1.hwcdn.net:1935/zzz/definst/fli/444444-test2?encoderuser=user&encoderpassword=password]: zzz/definst

INFO server comment - PushPublisher#ConnectResult.connect[rtmp://fli003.dc1.hwcdn.net:1935/zzz/definst/fli/444444-test2?encoderuser=user&encoderpassword=password]: result: NetConnection.Connect.Success description:Connection succeeded.

INFO server comment - PushPublisher#StreamCreateResult.onResult[rtmp://fli003.dc1.hwcdn.net:1935/zzz/definst/fli/444444-test2?encoderuser=user&encoderpassword=password]: publishStream: com.wowza.wms.stream.MediaStreamVODTest@13e4a5a

INFO server comment - PushPublisher#StreamOnStatus.onCallback[rtmp://fli003.dc1.hwcdn.net:1935/zzz/definst/fli/444444-test2?encoderuser=user&encoderpassword=password]: NetStream.Failed

INFO server comment - PushPublisher#StreamOnStatus.onCallback[rtmp://fli003.dc1.hwcdn.net:1935/zzz/definst/fli/444444-test2?encoderuser=user&encoderpassword=password]: NetStream.InvalidArg

INFO server comment - PushPublisher#StreamOnStatus.onCallback[rtmp://fli003.dc1.hwcdn.net:1935/zzz/definst/fli/444444-test2?encoderuser=user&encoderpassword=password]: NetStream.InvalidArg

INFO server comment - PushPublisher#IdleHandler.onIdle: validate

INFO server comment - PushPublisher#PingResult.onResult: true

INFO server comment - PushPublisher: ping OK

Any help would be great.

Thanks

Austin

Thanks Deckard,

Tried the above and still the same errors.

Austin

I do have it working FMLE to Highwinds with the same stream params.

Deckard,

Are you using PushPublishRTMPAuthProviderAdobe or just placing the username and password in the stream name? Also, do you have it working today? They (Highwinds) just updated to FMS 3.5.5

Thanks

Austin