# Wowza 3.0.3 + JW Player 5.9 MP4 Streaming

**URL:** <https://community.wowza.com/t/wowza-3-0-3-jw-player-5-9-mp4-streaming/38639>\
**Category:** Wowza Streaming Engine\
**Tags:** media-players-and-devices\
**Created:** [May 7, 2012, 5:58pm UTC](https://community.wowza.com/t/wowza-3-0-3-jw-player-5-9-mp4-streaming/38639 "2012-05-07T17:58:50Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![Subramaniam\_Shanthik](https://avatars.discourse-cdn.com/v4/letter/s/3be4f8/32.png) [@Subramaniam\_Shanthik](https://community.wowza.com/u/Subramaniam_Shanthik)\
**Post date:** [May 7, 2012, 5:58pm UTC](https://community.wowza.com/t/wowza-3-0-3-jw-player-5-9-mp4-streaming/38639/1 "2012-05-07T17:58:50Z")

</div>

Hi All,

I’ve come across several bits and pieces of instruction but none seem to make sense to a noob like me so I’ve decided to start my own thread.

I’ve got root access to my server and have installed Wowza Media Server 3 Monthly Edition 3.0.3 build882 on my server.

I know the “live” application is working because I’m able to run WireCast and do live streams successfully.

However, now I need to be able to schedule pre-recorded MP4 videos for streaming. This is giving me a lot of problems.

On my site, www.itv.sg, I’m using JW Player as my media player. Currently the server is playing a select xml playlist of videos randomly. This is not what I want. I need to create a TV Channel.

I’ve already configured a new Wowza application, “prerecord” and linked it to a public\_html folder “mv”

I also already have in place a PHP uploading mechanism that allows me to upload video files and playlists into this same folder.

My JW player already reads the active playlist location from a mySQL database and uses it as its “file” attribute.

This is what I need now:

1. I need to be able to stream “live” my playlist

2. I’ll need to be able to change this playlist on the fly without having to restart the Wowza Server

How do I configure my server to do this. And what kind of playlist do I now require to do this?

Where do I go from here?

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [May 7, 2012, 12:31pm UTC](https://community.wowza.com/t/wowza-3-0-3-jw-player-5-9-mp4-streaming/38639/2 "2012-05-07T12:31:33Z")

</div>

Take a look at this scheduler example:

[https://www.wowza.com/docs/how-to-schedule-streaming-with-wowza-streaming-engine-streampublisher](https://www.wowza.com/docs/how-to-schedule-streaming-with-wowza-streaming-engine-streampublisher)

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [May 8, 2012, 12:13am UTC](https://community.wowza.com/t/wowza-3-0-3-jw-player-5-9-mp4-streaming/38639/3 "2012-05-08T00:13:27Z")

</div>

This will create streams in the “prerecord” application, as configured.

This is server listener which runs at server start. There are many approaches, and a HTTPProvider that your PHP process loads is one way.

Basic API:

[https://www.wowza.com/docs/stream-class-example](https://www.wowza.com/docs/stream-class-example)

Real-time controller:

[https://www.wowza.com/docs/how-to-control-stream-class-streams-dynamically-modulestreamcontrol](https://www.wowza.com/docs/how-to-control-stream-class-streams-dynamically-modulestreamcontrol)

Another approach to switching:

[https://www.wowza.com/docs/how-to-switch-streams-using-stream-class-streams](https://www.wowza.com/docs/how-to-switch-streams-using-stream-class-streams)

Right put the .smil in the content location, StorageDir

You can set start and length as in the example provided

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [May 10, 2012, 1:18pm UTC](https://community.wowza.com/t/wowza-3-0-3-jw-player-5-9-mp4-streaming/38639/4 "2012-05-10T13:18:10Z")

</div>

Kumar,

It is very very helpful to run Wowza in stand-alone (/bin/startup.bat) mode so that you can see log output in the console.

If that doesn’t help, restart Wowza so the ServerListener runs, then try to playback the stream.

Then zip up conf and logs folders and send them to support@wowza.com

Include a link to this thread.

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [May 10, 2012, 7:56pm UTC](https://community.wowza.com/t/wowza-3-0-3-jw-player-5-9-mp4-streaming/38639/5 "2012-05-10T19:56:42Z")

</div>

> The mp4 files and streamschedule.smil are found in the public\_html/mv/

This above wrong. is The mp4 files and .smil file should be where you have set the application’s StorageDir: /home/itv/public\_html/mv

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [May 10, 2012, 8:11pm UTC](https://community.wowza.com/t/wowza-3-0-3-jw-player-5-9-mp4-streaming/38639/6 "2012-05-10T20:11:31Z")

</div>

I see the problem, you have set the start value to “-2”. Change that to “0”. Use start value “-2” if the item’s source is a live stream. The item’s source in your case is a static file

Richard

---

<div class="post-metadata">

**Author:** ![Richard\_Lanham](https://avatars.discourse-cdn.com/v4/letter/r/c68b51/32.png) [@Richard\_Lanham](https://community.wowza.com/u/Richard_Lanham)\
**Post date:** [May 10, 2012, 8:55pm UTC](https://community.wowza.com/t/wowza-3-0-3-jw-player-5-9-mp4-streaming/38639/7 "2012-05-10T20:55:08Z")

</div>

You don’t need the Transcoder. The cupertino url is:

```auto
http://itv.sg:1935/prerecord/Stream1/playlist.m3u8

```

Make the Application.xml /LiveStreamPacketizers include “cupertinostreamingpacketizer”, as configured in this tutorial

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

Richard

---

<div class="post-metadata">

**Author:** ![Subramaniam\_Shanthik](https://avatars.discourse-cdn.com/v4/letter/s/3be4f8/32.png) [@Subramaniam\_Shanthik](https://community.wowza.com/u/Subramaniam_Shanthik)\
**Post date:** [May 7, 2012, 9:55pm UTC](https://community.wowza.com/t/wowza-3-0-3-jw-player-5-9-mp4-streaming/38639/8 "2012-05-07T21:55:58Z")

</div>

Thanks Richard,

Please bear with me here.

As per instructions on the page,

I’ve downloaded, unzipped and moved wms-plugin-collection.jar into the WowzaMediaServer’s lib folder and restarted the Wowza Server.

Before restarting, I’ve also made the following changes:

Added Server Listener:

com.wowza.wms.plugin.collection.serverlistener.ServerListenerStreamPublisher

Added Property:

PublishToApplication

prerecord

1. Will this affect my live application which every now and then I will still need to use when using Wirecast? Can I still use it without any complication?

2. At this point, I also understand that I will need to restart the Wowza Server everytime i upload a new SMIL playlist. This is not ideal. I would like to simply upload a new playlist via PHP and expect the server to read that new playlist. The PHP i know how to use. How do I get Wowza to read the updated playlists without restarting the Server?

3. My SMIL file is now in the “mv” folder which has been configured to be the of the “prerecord” Application. How do I configure JW Player to read Stream1 of this particular playlist.

4. Do I need to specify the start and length values? I would like the list of MP4 videos to be streaming according to the TV schedule.

Thank you.

---

<div class="post-metadata">

**Author:** ![Subramaniam\_Shanthik](https://avatars.discourse-cdn.com/v4/letter/s/3be4f8/32.png) [@Subramaniam\_Shanthik](https://community.wowza.com/u/Subramaniam_Shanthik)\
**Post date:** [May 10, 2012, 6:40pm UTC](https://community.wowza.com/t/wowza-3-0-3-jw-player-5-9-mp4-streaming/38639/9 "2012-05-10T18:40:44Z")

</div>

Richard,

I’m still getting a Stream not found: Stream1 error at www.itv.sg/player-test.html.

My streamschedule.smil file is in the /mv folder which has been defined as the StorageDir of the “prerecord” application.

How can I check if my “prerecord” application has been set up correctly?

Do I need to create an instance of the application for it to work correctly?

Kumar

---

<div class="post-metadata">

**Author:** ![Subramaniam\_Shanthik](https://avatars.discourse-cdn.com/v4/letter/s/3be4f8/32.png) [@Subramaniam\_Shanthik](https://community.wowza.com/u/Subramaniam_Shanthik)\
**Post date:** [May 11, 2012, 1:04am UTC](https://community.wowza.com/t/wowza-3-0-3-jw-player-5-9-mp4-streaming/38639/10 "2012-05-11T01:04:09Z")

</div>

I’m starting to think if my configurations are all correct. I’m having some problems using some of the debugging tools because I’m not very adept with the CentOS server I’m using.

I installed the Wowza Media server in the root directory

It’s configured in /usr/local/WowzaMediaServer

My html folders are located at /home/itv/public\_html/

The mp4 files and streamschedule.smil are found in the public\_html/mv/

I’ve configured the of my “prerecord” Application to /home/itv/public\_html/mv

In addition, I’ve made the above mentioned changes to the Server.Xml file.

Wirecast is able to stream to the prerecord application without any issue.

Am I doing it correctly?

---

<div class="post-metadata">

**Author:** ![Subramaniam\_Shanthik](https://avatars.discourse-cdn.com/v4/letter/s/3be4f8/32.png) [@Subramaniam\_Shanthik](https://community.wowza.com/u/Subramaniam_Shanthik)\
**Post date:** [May 11, 2012, 3:12am UTC](https://community.wowza.com/t/wowza-3-0-3-jw-player-5-9-mp4-streaming/38639/11 "2012-05-11T03:12:33Z")

</div>

Hi Richard,

This is the output I’m getting from the standalone:

INFO server comment - CMDInterface now listening: [any]:8083

INFO vhost vhost-start _defaultVHost_ -

INFO server comment - _defaultVHost_ threads[h/t]:120/80 home:/usr/local/WowzaMediaServer

INFO vhost comment _defaultVHost_ Bind attempt ([any]:1935:4)

INFO vhost comment _defaultVHost_ Bind successful ([any]:1935)

INFO vhost comment _defaultVHost_ Bind attempt ([any]:554:4)

INFO vhost comment _defaultVHost_ Bind successful ([any]:554)

INFO vhost comment _defaultVHost_ Bind attempt ([any]:8086:1)

INFO vhost comment _defaultVHost_ Bind successful ([any]:8086)

INFO server comment - ServerListenerStreamPublisher Started.

INFO application app-start _definst_ prerecord/_definst_

INFO server comment - ServerListenerStreamPublisher: Streame name is ‘Stream1’

INFO stream create - -

INFO stream publish Stream1 -

INFO server comment - scheduled playlist: Stream1 on stream: Stream1 for:Fri Dec 11 16:00:00 SGT 2009

INFO server comment - ServerListenerStreamPublisher Scheduled: Stream1 for: 2009-12-11 16:00:00

INFO server comment - Wowza Media Server is started!

INFO server comment - ServerListenerStreamPublisher Scheduled stream is now live: Stream1

INFO server comment - Stream.switch[prerecord/_definst_/Stream1]: index: 0 name:mp4:SSeowEpisode 25\_qtp.mp4 start:-2 length:60

INFO server comment - ServerListenerStreamPublisher PlayList Item Start: mp4:SSeowEpisode 25\_qtp.mp4

INFO session connect-pending 116.15.210.142 -

INFO session connect 116.15.210.142 -

INFO stream create - -

INFO server comment - Stream.switch[prerecord/_definst_/Stream1]: index: 0 name:mp4:SSeowEpisode 25\_qtp.mp4 start:-2 length:60

INFO server comment - ServerListenerStreamPublisher PlayList Item Start: mp4:SSeowEpisode 25\_qtp.mp4

INFO server comment - Stream.switch[prerecord/_definst_/Stream1]: index: 0 name:mp4:SSeowEpisode 25\_qtp.mp4 start:-2 length:60

INFO server comment - ServerListenerStreamPublisher PlayList Item Start: mp4:SSeowEpisode 25\_qtp.mp4

INFO server comment - Stream.switch[prerecord/_definst_/Stream1]: index: 0 name:mp4:SSeowEpisode 25\_qtp.mp4 start:-2 length:60

INFO server comment - ServerListenerStreamPublisher PlayList Item Start: mp4:SSeowEpisode 25\_qtp.mp4

However in the test page from which its supposed to play, I see nothing but a constant loading:

www.itv.sg/player-test.html

Any ideas?

---

<div class="post-metadata">

**Author:** ![Subramaniam\_Shanthik](https://avatars.discourse-cdn.com/v4/letter/s/3be4f8/32.png) [@Subramaniam\_Shanthik](https://community.wowza.com/u/Subramaniam_Shanthik)\
**Post date:** [May 11, 2012, 4:09am UTC](https://community.wowza.com/t/wowza-3-0-3-jw-player-5-9-mp4-streaming/38639/12 "2012-05-11T04:09:03Z")

</div>

Yes Richard, they are in the same locations. I’ve confirmed from the output above that the prerecord application is correctly configured. Now the issue is the playback. As in the above output, I see that the stream is starting and the playlist item is loaded.

However, all I see is loading but the video never actually plays.

---

<div class="post-metadata">

**Author:** ![Subramaniam\_Shanthik](https://avatars.discourse-cdn.com/v4/letter/s/3be4f8/32.png) [@Subramaniam\_Shanthik](https://community.wowza.com/u/Subramaniam_Shanthik)\
**Post date:** [May 11, 2012, 4:46am UTC](https://community.wowza.com/t/wowza-3-0-3-jw-player-5-9-mp4-streaming/38639/13 "2012-05-11T04:46:03Z")

</div>

Perfect! Thank you so much Richard.

Now I’m going to start work on the dynamic control of the playlist!

---

<div class="post-metadata">

**Author:** ![Subramaniam\_Shanthik](https://avatars.discourse-cdn.com/v4/letter/s/3be4f8/32.png) [@Subramaniam\_Shanthik](https://community.wowza.com/u/Subramaniam_Shanthik)\
**Post date:** [May 11, 2012, 4:50am UTC](https://community.wowza.com/t/wowza-3-0-3-jw-player-5-9-mp4-streaming/38639/14 "2012-05-11T04:50:50Z")

</div>

Just a quick question though. How do I get this working on the iPhone?

I’ve tried enabling the transcoder with the transcoder

I’ve tried using

[http://itv.sg:1935/prerecord/ngrp:Stream1\_all/playlist.m3u8](http://itv.sg:1935/prerecord/ngrp:Stream1_all/playlist.m3u8) for my iOS devices but without any success.

---

<div class="post-metadata">

**Author:** ![Subramaniam\_Shanthik](https://avatars.discourse-cdn.com/v4/letter/s/3be4f8/32.png) [@Subramaniam\_Shanthik](https://community.wowza.com/u/Subramaniam_Shanthik)\
**Post date:** [May 11, 2012, 4:57am UTC](https://community.wowza.com/t/wowza-3-0-3-jw-player-5-9-mp4-streaming/38639/15 "2012-05-11T04:57:55Z")

</div>

That did it. Thanks a lot! I’ll return after cracking my skull on the dynamic playlist updating.
