Wowza Community

Setting up content directory on different Server.

Hi,

I am new to Wowza Media Systems,

I have a requirement where my videos would be saved on a different location (Server) and WOWZA installation will happen on a another machine, The setting that I am looking at is how to then pull the videos (content) to be played.

So far I have read across changes are to be done in the Content Directory section of any application.

However if I try to set that up its not allowing me to do so

Example

Wowza Instance installed on SERVER A : http://[wowza-ip]/

Content on SERVER B : http://[server-where-wowza-is-not-present]/content

I am trying to set this up in “Use the following directory text field”, but everytime i set it, i only get the message, “content directory does not exsit”, I even tried using media cache addon but could not get success for the same.

Is this the right way to do so or am I missing something.

Please guide for the correct way to do so.

Many Thanks

Sanjeev

The content location has to point to a physical drive or mounted network drive on that machine.

With MediaCache the content can be on a web server, or a mounted network drive that is slow. In either case, you set that location when you add a MediaCacheSource. Take a look at the MediaCache guide to see if that works for you.

Richard

Try using definst between the app name and the stream name, something like this:

rtmp://[wowza-address]:1935/mediacache/definst/mp4:http/content/video0.mp4

Richard

Hi, Sanjeev,

You could use one .key file for all streams.

As far as I know .key files have to in the /keys folder.

This will work for any iOS device.

There are other DRM options for HLS. I’m not sure what to recommend though.

I am not sure if JW Player’s HLS on the desktop features (premium and enterprise/ad license feature only), if you are using that, work with AES.

Richard

Actually, yes, you do need a file for each stream, but the contents of each can be the same. I.e., you don’t have to generate a new key for each stream, you can re-use the key in each .key file

Richard

The content location has to point to a physical drive or mounted network drive on that machine.

With MediaCache the content can be on a web server, or a mounted network drive that is slow. In either case, you set that location when you add a MediaCacheSource. Take a look at the MediaCache guide to see if that works for you.

Richard

Thanks Richard,

That helped with one integration with media cache, however when I am trying to hit a remote server the player stays connected for something and there after

provides a message "Source stream or file could not be found or access was denied."

I checked the error logs and following is the issue I am seeing

MediaCacheItemBase.init: Error: Length is zero[-1]: http/content/video.mp4

WARN server comment 2014-04-22 15:05:41 - - - - - 68971.53 - - - - - - - http/content/video0.mp4 MediaReaderH264.open[1]: java.io.IOException: MediaCacheRandomAccessReader.open: Item not in cache: http/content/video.mp4: java.io.IOException:

Hi Richard,

I am trying to achieve AES encryption with the external method, I have read through this entire post (https://www.wowza.com/docs/how-to-secure-apple-http-live-streaming-aes-128-external-method ) and all the comments, I am listing down steps which I am using to proceed with encryption and also queries, please let me know for those.

  1. Generate a key that is used to encrypt each of the media chunks.
  • key name is streamname.key

  • created using

cd C:\Program Files (x86)\Wowza Media Systems\Wowza Streaming Engine 4.0.3\bin>

command> genkey.bat {playerOS}iphone {streamname}sample.mp4 {how will the player read the key}http://*host/Test/mf-key.php

  1. The key file include a URL for the player to retrieve the key.

  2. Put the key in the keys folder on the server and it’s name matches the name of the media file.

  3. Wowza will use the key to encrypt each of the chunks before delivery and will put the key URL in the playlist file so the player can

retrieve the key to decrypt the chunks.

  1. You provide a PHP script in your web server that distrubutes the key. You need to be sure you secure the key so only who you want to view the stream can get the key.

  2. This applies to both live and video on demand streams.

  3. Test it as follows.

  • For IOS Include the path in

  • To test using desktop versions use jwplayer enterprise edition

jwplayer(‘player’).setup({

wmode: “transparent”,

height: “360”,

autostart: ‘false’,

//skin: ‘bekle’,

playlist: [{

sources: [{

file: “http://[wowza-ip]:1935/vod/mp4:sample.mp4/playlist.m3u8”

}]

}],

});

Queries

  • Do we have to generate a .key file per stream ? If so can you help understanding how can it be achieved using php on uploading of each vod content.?

  • Does the .key file necessary be in wowza/keys folder or cant it be mounted to a NFS ? as in my case the transcoding is being done and all streams are accessible via nfs mounted between wowza,applciation and a cdn

  • Can a key file generated for iphone be used for ipad and itouch or a separate key needs to be generated for each of this ?

  • Will a DRM addon be recommended for encrypting streams on the fly or AES is a better approach. Please advice.

Many Thanks

Sanjeev

Hi, Sanjeev,

You could use one .key file for all streams.

As far as I know .key files have to in the /keys folder.

This will work for any iOS device.

There are other DRM options for HLS. I’m not sure what to recommend though.

I am not sure if JW Player’s HLS on the desktop features (premium and enterprise/ad license feature only), if you are using that, work with AES.

Richard

Thanks Richard for this input.

For the single .key file generated for all streams what should be the structure / naming convention as I understood the .key file should have the same name as that of the stream so in a case where multiple streams are uploaded for vod content how a single stream will function.?

Actually, yes, you do need a file for each stream, but the contents of each can be the same. I.e., you don’t have to generate a new key for each stream, you can re-use the key in each .key file

Richard

Hi Richard,

Will the same encryption work for android OS supporting HLS ? or is there any other methodology that needs to be adopted. ?

Please advice

Sanjeev