Wowza Community

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

@Austin: The previous pages explain how to use this for Highwinds. Please read them …

Try:

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

publisher.setPort(1935);

publisher.setDstApplicationName(“zzz”);

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

Weird. This is exactly how I used Highwinds last month and it worked.

Easy Charlie, I’m not complaining, just trying to help Austin.

No issue here with push and Highwinds …

Austin, what you need to know is not so far (Page 5) starting here.

You need to set encoder IP address on HW side, no need to use PushPublishRTMPAuthProviderAdobe, credentials are set in stream name and finally don’t forget ampersand …

Would it be possible to have the logging configured in such a way as to have the category of “pushPublish” rather than INFO server comment. If you were to change that then we wold be able to use something like

pushPublish appender

log4j.appender.pushPublish=org.apache.log4j.DailyRollingFileAppender

log4j.appender.pushPublish.DatePattern=’.'yyyy-MM-dd

log4j.appender.pushPublish.File=${com.wowza.wms.ConfigHome}/logs/wowzamediaserver_pushPublish.log

log4j.appender.pushPublish.layout=com.wowza.wms.logging.ECLFPatternLayout

log4j.appender.pushPublish.layout.Fields=date,time,tz,x-event,x-category,x-severity,x-status,x-ctx,x-comment

log4j.appender.pushPublish.layout.OutputHeader=true

log4j.appender.pushPublish.layout.QuoteFields=false

log4j.appender.pushPublish.layout.Delimeter=tab

log4j.appender.pushPublish.layout.CategoryInclude=pushPublish

etc. Unless there is another way with log4j magic?

Thanks, Joe

To see published streams in JConsole you have to add IMediaStream to /conf/Server.xml /AdminInterface /ObjectList

Richard

I have done that and new tree item MediaStream appears, still no status or info for published streams

Two questions:

  1. What is the recommended way to configure multiple publishers for a single stream?

Should the publishers all be configured in the : onPublish -> synchronized(publishers) {} block? How would this be done because won’t publishers.put(), publishers.remove() only allow one unique stream in the collection?

i.e. this won’t work right?

publishers.put(stream, publisher1);

publishers.put(stream, publisher2);

  1. What is the recommended back-off implementation mentioned earlier in this thread to stagger publisher connections?

Thanks!

We haven’t had a chance to breakout the IDE and a test environment to try this yet. We just got a copy of the package and I was reviewing the sample for our use case, and noticed the possible issue.

Hi,

We are trying to use this module to push a stream to a destination that takes the form:

rtmp://(IP address]:1935/[app name]/[stream name] or

rtmp://(IP address]:1935/[app name]?[parameter list]/[stream name]

We try to achieve this with this bit of code:

// Destination stream

publisher.setHostname("[IP address]");

publisher.setPort(1935);

publisher.setDstApplicationName("[app name](?[parameter list])");

publisher.setDstStreamName("[stream name]");

It seems that doing so the module inserts an additional level definst to make the final URL: rtmp://(IP address]:1935/[app name](?[parameter list])/definst/[stream name].

Is it possible to not have this level automatically inserted? And if so, how should we modify the destination stream definition to do so?

Two further questions would be:

  • is there a maximum length that the application or stream name can have, and

  • can push-publish handle a parameter list preceded by a question mark

    Thanks,

    Peter

Hi Peter,

I have the module working with BitGravity, they don’t allow to transmit from this module to the Production origin.

If you need support please contact me.

Regards,

Alejandro

www.wmconsulting.info

Peter,

The BG guys, in my case don’t allow to transmit to the Principal Origin, they disconnect me, I have talking with them and they are changed my Origin URL to uno PREWIEV Origin, this way works much better.

Possible you can have a similar issue, talk with them about your needs, they have a very good support too.

Regards,

Ale

Hi Austin, I have the module working with bitGravity, I can try to modify for use Highwinds, but i don’t have one account, contact me in private if you can give me one account for test.

Regards,

Ale

wmconsulting.info

Thanks Charlie,

I have the same issue… I have made a workarround using the /etc/hosts file into my linux system this way never need go to DNS but of course this workarround is horrible…

Regards,

Ale

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]