Wowza Community

WOWZA HTTP Live Streaming with JWPlayer6

I have tried following the instruction from both WOWZA and JWPLAYER forums to enable Apple HTTP Streaming with JWPlayer6.

Here is my code:

I get the following error:

“Playlist could not be loaded: No Playable sources found”

I am using JWPlayer 6 Pro which should support HLS. And for the WOWZA I am using EC2 Linux AMI with Monthly Subscription. I haven’t changed any code and live stream works out of the box if I use RTMP.

I will appreciate any suggestion or perhaps some sample code to do Live Streaming using WOWZA and JWPlayer 6 VIA HLS.

I have tried following the instruction from both WOWZA and JWPLAYER forums to enable Apple HTTP Streaming with JWPlayer6.

Here is my code:

I get the following error:

“Playlist could not be loaded: No Playable sources found”

I am using JWPlayer 6 Pro which should support HLS. And for the WOWZA I am using EC2 Linux AMI with Monthly Subscription. I haven’t changed any code and live stream works out of the box if I use RTMP.

I will appreciate any suggestion or perhaps some sample code to do Live Streaming using WOWZA and JWPlayer 6 VIA HLS.

When I mentioned “I haven’t changed any code and live stream works out of the box if I use RTMP”, I meant I haven’t changed any config on WOWZA and used the preconfigured setting as AMI and It works with RTMP

Have you tried it like this:

<head>
<title>JW Player Fallback</title>
</head>
<body>
<script type='text/javascript' src='jwplayer.js'></script>
<div id='mediaplayer'></div>
<script type="text/javascript">
  jwplayer('mediaplayer').setup({
    'id': 'playerID',
    'width': '480',
    'height': '270',
    'provider': 'rtmp',
    'streamer': 'rtmp://[wowza-address]:1935/vod',
    'file': 'sample.mp4',
    'modes': [
        {type: 'flash', src: 'player.swf'},
	{type: 'html5', config:
		{
		'file': "http://[wowza-address]:1935/vod/mp4:sample.mp4/playlist.m3u8",
		provider: 'video'
		}
	}
    ]
  });
</script>
</body>
</html>

Richard

It is essentially the same except you have to point to the a live application and the live stream name

<head>
<title>JW Player Fallback</title>
</head>
<body>
<script type='text/javascript' src='jwplayer.js'></script>
<div id='mediaplayer'></div>
<script type="text/javascript">
  jwplayer('mediaplayer').setup({
    'id': 'playerID',
    'width': '480',
    'height': '270',
    'provider': 'rtmp',
    'streamer': 'rtmp://[wowza-address]:1935/live',
    'file': 'myStream',
    'modes': [
        {type: 'flash', src: 'player.swf'},
	{type: 'html5', config:
		{
		'file': "http://[wowza-address]:1935/live/myStream/playlist.m3u8",
		provider: 'video'
		}
	}
    ]
  });
</script>
</body>
</html>

Richard

Have you added “cupertinostreamingpacketizer” to the Application.xml /LiveStreamPacketizers ?

https://www.wowza.com/docs/how-to-set-up-live-streaming-using-an-rtmp-based-encoder

Richard

Sounds like an issue with their iOS player that you would have to raise on their forum.

Richard

philsmith76: I assume you’re talking about ZippCarlson’s example above, and you are using an RTMP stream and the HTTP HLS stream in the playlist? That should work in any version of JW 6. (If you are on the Premium or Ads versions, you can just use the HLS stream, and it will deliver to both desktops and iOS.) You could try changing the “primary” variable to “flash” to give preference to the RTMP stream, where Flash is supported.

Otherwise, check your Wowza logs and see if it is correctly requesting the RTMP stream when you load that page on a desktop. Compare those log entries to when you load it on iOS.

hi, I have the same problem with JWplayer and wowza with IOS devices.

This code did work but now I dont get a play button on IOS device.

If I open the http://xxxxxxxx.co.uk:1935/live/live/playlist.m3u8 directly

in safari on iOS device the video plays.

Do I have something wrong with the code? a comma and space wrong? or do I need a different version

of JWplayer? now is 5.6 and was working!

Livestream

adaptive player either needs flash or IOS capable device

I am using JwPlayer 6 for live streaming and having no issue getting it to go to the ios devices. Looking at the code samples the one diff I see is, when I list mine I prepend the container type ( mp4: ) before the stream name as shown below. I am encoding h.264 with aac audio for the stream. I am also prepending the mp4: before the stream name in my encoder with no file ext passed through the encoder. Hope this helps.

<div id='myElement'></div>
<script type="text/javascript">
jwplayer("myElement").setup({
    playlist: [{
        image: "/assets/myVideo.jpg",
        sources: [{ 
            file: "rtmp://beta.domain.com/live/mp4:streamname"
        },{
            file: "http://beta.domain.com:1935/live/[B]mp4:[/B]streamname/playlist.m3u8"
        }]
    }],
 rtmp: {
        bufferlength: 6
    },
    height: 480,
    primary: "html5",
    width: 640
});
</script>

Hi

Did you try this:

It is essentially the same except you have to point to the a live application and the live stream name

<head>
<title>JW Player Fallback</title>
</head>
<body>
<script type='text/javascript' src='jwplayer.js'></script>
<div id='mediaplayer'></div>
<script type="text/javascript">
  jwplayer('mediaplayer').setup({
    'id': 'playerID',
    'width': '480',
    'height': '270',
    'provider': 'rtmp',
    'streamer': 'rtmp://[wowza-address]:1935/live',
    'file': 'myStream',
    'modes': [
        {type: 'flash', src: 'player.swf'},
	{type: 'html5', config:
		{
		'file': "http://[wowza-address]:1935/live/myStream/playlist.m3u8",
		provider: 'video'
		}
	}
    ]
  });
</script>
</body>
</html>

Richard

Can you confirm that replacing the vod file with a live stream as shown above still doesn’t work?

Have you restarted Wowza since adding “cupertinostreamingpacketizer” to the Application.xml?

Jason

Hi

Ok, I think the best course of action is for you to raise a support ticket with Wowza, email support@wowza.com

This will allow you to give them the IP address of the EC2 instance being used which will help them figure out what the problem is.

Make a link to this thread for reference.

Jason

Like he said… the embed syntax for JW6 is quite different, follow that example!

I have tried that example. In the desktop i get "Error Setting up the Player Error: #2147 however in ios i can play this just fine. Any ideas?

I am using JwPlayer 6 for live streaming and having no issue getting it to go to the ios devices. Looking at the code samples the one diff I see is, when I list mine I prepend the container type ( mp4: ) before the stream name as shown below. I am encoding h.264 with aac audio for the stream. I am also prepending the mp4: before the stream name in my encoder with no file ext passed through the encoder. Hope this helps.

<div id='myElement'></div>
<script type="text/javascript">
jwplayer("myElement").setup({
    playlist: [{
        image: "/assets/myVideo.jpg",
        sources: [{ 
            file: "rtmp://beta.domain.com/live/mp4:streamname"
        },{
            file: "http://beta.domain.com:1935/live/[B]mp4:[/B]streamname/playlist.m3u8"
        }]
    }],
 rtmp: {
        bufferlength: 6
    },
    height: 480,
    primary: "html5",
    width: 640
});
</script>

Like he said… the embed syntax for JW6 is quite different, follow that example!

Like he said… the embed syntax for JW6 is quite different, follow that example!

This is working fine for us, make sure you buy the premium version of JW player, the one for $250 if i recall correct, HLS is not supported on the other versions.

My RTMP Code is bellow which works :

‘file’: ‘mystream.mp4’,

‘streamer’: ‘rtmp://ec2-xxx-xx-xx-xxx.eu-west-1.compute.amazonaws.com/live’

Have you tried it like this:

<head>
<title>JW Player Fallback</title>
</head>
<body>
<script type='text/javascript' src='jwplayer.js'></script>
<div id='mediaplayer'></div>
<script type="text/javascript">
  jwplayer('mediaplayer').setup({
    'id': 'playerID',
    'width': '480',
    'height': '270',
    'provider': 'rtmp',
    'streamer': 'rtmp://[wowza-address]:1935/vod',
    'file': 'sample.mp4',
    'modes': [
        {type: 'flash', src: 'player.swf'},
	{type: 'html5', config:
		{
		'file': "http://[wowza-address]:1935/vod/mp4:sample.mp4/playlist.m3u8",
		provider: 'video'
		}
	}
    ]
  });
</script>
</body>
</html>

Richard

Thanks for your reply Richard. The above example works with VOD. Not with the live stream. Do you have any example for Live Stream?

Just got an email from JWPlayer Support. They are saying that the WOWZA server is not delivering the chunks of the stream. Any idea how to resolve this?

"M3U8 streams load other files in chunks, that is how HLS works.

Once you load - http://ec2-xx-xx-xx-xx.eu-west-1.compute.amazonaws.com:1935/live/mystream/playlist.m3u8 , our player tries to load first first chunk from your server, which does not exist - http://ec2-xx-xx-xx-xxx.eu-west-1.compute.amazonaws.com:1935/live/mystream/chunklist.m3u8?wowzasessionid=1052502670"

Have you added “cupertinostreamingpacketizer” to the Application.xml /LiveStreamPacketizers ?

https://www.wowza.com/docs/how-to-set-up-live-streaming-using-an-rtmp-based-encoder

Richard

Just checked the Application.xml under conf/Live and the file already has those settings.

Hi Jason, the application.xml already had the tags with correct values, still I restarted the server. Please have a look at the email from JW support which stated that after downloading the playlist.m3u8, when the player tries to download the first chunk of data over http, 404 error displayed.

a.reza,

Have you confirmed that you’re using the right version of JW Player that supports live streaming? I believe only the Premium/Ads version supports it (both paid)