Wowza Community

VOD Adaptive ABR Streaming (with JWPlayer) needs to edit the SMIL File?

I’m with New Version of WowzaStreamingEngine (v4) and followed every steps in VOD/ABR Setup Guide.

VOD ABR SETUP + EXAMPLE PLAYER (WOWZA MANUAL)

Followed the Wowza Manual from here. So if i’m still not mistaken at any steps, we’ll finally get following things:

  • Multiple Bitrate .mp4 Files inside “/content” Folder.

  • A “bigbuckbunny.smil” file created inside “/content” Folder. (Suggested by Wowza to create it)

  • Then (with the Wowza Example Flash Player) we get the ABR Working, with the Stream like: http://xx.xx.xx.xx:1935/vod/smil:bigbuckbunny.smil/manifest.f4m

    ABR WORKING BUT YET CAN NOT “CHOOSE” THE BIT-RATE

    Ok that is fine, great. BUT the ABR is only at “Auto Mode” as it is just the sample player from Wowza.

    So now i’m going forward with JWPlayer (to get the capability of letting the viewers choose the Bit-rate they like)

    INTEGRATED WITH JWPLAYER (LONGTAIL MANUAL)

    Then as far as i tried, (according to this JW official manual) here is the sample working codes with JWPlayer Setup. (Not working at the first place)

        <div id="se_vodplayer"></div>
        <script src="jwplayer.js"></script>
        <script type="text/javascript">
            jwplayer('se_vodplayer').setup({
                autostart: true,
                sources: [
                    { file: "/usr/local/WowzaStreamingEngine/content/bigbuckbunny.smil" }
                ],
                primary: "flash"
            });
        </script>
    

    BUT THERE IS A BIG PROBLEM. IT WONT WORK.

    Because (as far as i know) the Wowza Suggested SMIL file doesn’t contain the value in the section. (I DON’T KNOW WHY) But it is again, needed from JWPlayer.

    Meaning that, the value is needed inside section like this:

    <head>
        <meta base="rtmp://xx.xx.xx.xx:1935/vod" />
    </head>
    

    Then it works with JWPlayer.

    So here comes the big questions:

  • Are all my steps above even CORRECTLY DONE as supposed to?

  • If yes, is this SMIL file problem is the common for all? (When we want something like this with JWPlayer)

  • Then should i always put a COPY of Wowza-suggested SMIL file, and then edit it to put the Value inside?

  • (OR) What is the another more proper approach to achieve this (VOD ABR) please?

  • Best regards,

    Arkar

Hi Arkar,

To be able to select the different bitrates manually in JW player, you need to provide width & height information in the smil file. Jw player uses this to build the menu and determine the bitrate to start with based on the player size. The smil file examples on the page you linked to do not show this which is an oversight on our part however the directions for creating a smil file in the Manager do show the steps for adding width & height information.

To do RTMP ABR playback in JW Player, you do need a meta tag.

Wowza has a specific url that you can use in the player that will dynamically create the correct smil file for jw player with the correct meta tag included. It does so by reading your original smil file and returning a JW Player specific file. There are a few other minor differences between the smil file used for HTTP streaming and that used by JW player which is automatically handled.

In your player code, use the following for the file setting.

http://<wowza-ip>:1935/vod/smil:bigbuckbunny.smil/[B]jwplayer.smil[/B]

Roger.

In my tests with Wowza 3.6 I could use the SMIL with meta base tag or with full paths in file name, it did not matter. So , maybe V 4 is different?

Hi Arkar,

I see from the smil file that you have posted that you do have the width setting which the player needs. The other reason the menu item may not be showing is if the player is falling back to HTML5 playback. JW Player does not add the menu to the native HTML5 player to be able to manually select bitrates.

Roger.

I was after the SMIL you were trying without the meta base… if you just removed the meta base then you would not have full paths to the files… you would need to be rtmp://etc etc for every file in the SMIL

This is not correct and will not work…

Please do try to post accurate information if you are going to try to assist other users.

The correct way is to use the built in jwplayer.smil url,

http://<wowza-ip:1935/vod/smil:bigbuckbunny.smil/[B]jwplayer.smil[/B]

Roger.

Hi Arkar,

Good to hear that you got it sorted out.

Yes, it means that you won’t have to create custom smil files for jw player again. You will still need to create the original smil file that is used fro HTTP streaming and to generate the jwplayer.smil.

Our documentation received a major overhaul last week with the release of Wowza StreamingEngine and some things may have been misplaced. For this, please accept our apologies and be sure that our documentation team is working hard to make sure everything ends up in the right place where it can be found easily.

This article, How to use LongTail JW Player with adaptive bitrate streaming from Wowza Media Server provides the information about using the jwplayer.smil url (and jwplayer.rss url for JW PLayer 5).

Please let us know if you are stuck anywhere else.

Roger.

Please show me the jw player configuration you are using for this. You are most likely not doing RTMP ABR playback.

Roger.

Hi,

If you care to look at the following url, which you are using in your player, you will se that the meta tag had been added automatically.

http://54.206.40.122/live/smil:livestream.smil/jwplayer.smil

This is the output from the above url

<smil>
	<head>
		[B]<meta base="rtmp://54.206.40.122/live/_definst_" />[/B]
	</head>
	<body>
		<switch>
			<video src="mp4:livestream_source" system-bitrate="1000000"/>
			<video src="mp4:livestream_240p" system-bitrate="350000"/>
			<video src="mp4:livestream_160p" system-bitrate="200000"/>
		</switch>
	</body>
</smil>

This is the jwplayer.smil url that I was refering to in my other posts.

You are corect that you do not need the meta tag in the smil files that you create to use within Wowza but you are incorrect in your assumption that JW Player does not need the meta tag in order to playback RTMP ABR.

In order for the player to display a switching menu with video sizes rather than bitrates, you need to add width info to your origin smil file.

Roger.

Was talking about the SMIL contents, not the path to the SMIL

So was I.

Adding the rtmp address to each video rendition in the smil file will not work for ABR.

Roger.

we were talking about if the user made his own SMIL file. The SMIL I uploaded did not include metabase.

Yes, and that smil file will not work directly in the player because the smil file that the player reads (either generated by Wowza or created by the end user) needs the meta tag.

The OP was asking about the smil file that they use in the player, not the one that Wowza uses internally. These are 2 different items.

Roger.

I understand what you are saying. I just don’t believe JW Player requires the meta base tag as I have used a SMIL without it.

What I see in that manual is a sample that might make it easier- I do not see anywhere it says you “must” use meta base tag. Like I said, I have used success without meta base tag and Wowza 3.6.

Lets see your SMIL code without metabase?

I was after the SMIL you were trying without the meta base… if you just removed the meta base then you would not have full paths to the files… you would need to be rtmp://etc etc for every file in the SMIL

To do RTMP ABR playback in JW Player, you do need a meta tag.

Roger.

Sorry Roger. You do not need the meta base

I just fired up a EC2 and Wowza to test, it works without metabase

Here is my smil, this is LIVE

I am live right now, playing back a tape, please see http://live.on2dvd.com.au/liveabr.html

This is not correct and will not work…

Please do try to post accurate information if you are going to try to assist other users.

The correct way is to use the built in jwplayer.smil url,

http://<wowza-ip:1935/vod/smil:bigbuckbunny.smil/[B]jwplayer.smil[/B]

Roger.

Was talking about the SMIL contents, not the path to the SMIL

Hi,

If you care to look at the following url, which you are using in your player, you will se that the meta tag had been added automatically.

http://54.206.40.122/live/smil:livestream.smil/jwplayer.smil

This is the output from the above url

<smil>
	<head>
		[B]<meta base="rtmp://54.206.40.122/live/_definst_" />[/B]
	</head>
	<body>
		<switch>
			<video src="mp4:livestream_source" system-bitrate="1000000"/>
			<video src="mp4:livestream_240p" system-bitrate="350000"/>
			<video src="mp4:livestream_160p" system-bitrate="200000"/>
		</switch>
	</body>
</smil>

This is the jwplayer.smil url that I was refering to in my other posts.

You are corect that you do not need the meta tag in the smil files that you create to use within Wowza but you are incorrect in your assumption that JW Player does not need the meta tag in order to playback RTMP ABR.

In order for the player to display a switching menu with video sizes rather than bitrates, you need to add width info to your origin smil file.

Roger.

Got you, understood. it doesn’t matter if Wowza does it automatically, we were talking about if the user made his own SMIL file. The SMIl I uploaded did not include metabase.

I know you can add the width, in this case I didn’t bother, it still switched on bitrate

Ok, sorry if I am wrong. I have done it that way with VOD with cloudfront, perhaps it doesn’t work with wowza?

ooooK, you can read it that way.

As long as he is sorted