SMIL file remain unchanged until wowza server restart

Hi,

I’m using Wowza server 4.4 as VOD streaming server and SMIL files to play adaptive bitrate video as well as subtitle and multiple audio.

However when I changed the SMIL file, I found that some times the SMIL file remain the old version so that I have to restart Wowza server every time I changed the SMIL file.

I didn’t enable MediaCache for the server.

Is there any way to ignore this?

Thanks,

Monica

The following methods can be used to reload a schedule:

*Create a simple Flash application that has a function that makes the following call to Wowza media server:

netconnection.call("loadSchedule",new Responder(function(msg:String):void
{
    trace(msg);
}
));

Call the method each time the schedule needs to be loaded.

You can download ModuleStreamPublisherClient.zip, which includes a pre-built Flash application for this.

*Use JConsole to connect to the JMX interface on your Wowza media server, and then run the loadSchedule operation directly on the module instance. In the MBeans tab, navigate to the AppInstance Modules/ModuleStreamPublisher/Instances/Operations tab, and then run the loadSchedule operation. An unloadSchedule operation is also available to shut down the streams.

Regards,

Salvadore

Hi Monica,

It does have the appearance of some caching or other connectivity problem going on. I’d suggest testing on a clean Wowza instance and within the same server to avoid any possible impact by such things.

Paul

Hi Monica,

I tested your SMIL file as follows:

  1. Before changing the audio language:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Chinese",FORCED=NO,AUTOSELECT=YES,URI="subtitlelist_lzho_b48000_slCantonese_t64Q2FudG9uZXNl_cfNjk0NjU3LzI0MTEzNi50dG1s.m3u8",LANGUAGE="zho"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="Cantonese",NAME="Cantonese",DEFAULT=YES,URI="chunklist_b48000_ao_slCantonese_t64Q2FudG9uZXNl_cfNjk0NjU3LzI0MTEzNi50dG1s.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=3872001,AUDIO="aac",SUBTITLES="subs"
chunklist_b3872001_vo_cfNjk0NjU3LzI0MTEzNi50dG1s.m3u8
* STATE: PERFORM => DONE handle 0x600057620; line 1645 (connection #0)
* Curl_done
* Connection #0 to host localhost left intact

  1. Edited the audio language to English in the SMIL file as follows:
<?xml version="1.0"?>
<smil>
        <head/>
        <body>
                <switch>
                        <video src="mp4:sample.mp4?audioindex=0" system-language="English" title="English" audio-bitrate="48000">
                                <param name="audioOnly" value="TRUE" valuetype="data"/>
                                <param name="cupertinoTag" value="EXT-X-MEDIA" valuetype="data"/>
                                <param name="cupertinoTag.GROUP-ID" value="aac" valuetype="data"/>
                                <param name="cupertinoTag.DEFAULT" value="YES" valuetype="data"/>
                        </video>
                        <video src="sample.mp4" system-bitrate="3872001">
                                <param name="videoOnly" value="TRUE" valuetype="data"/>
                                <param name="cupertinoTag.AUDIO" value="aac" valuetype="data"/>
                        </video>
                        <textstream src="241136.ttml" system-language="zho">
                                <param name="isWowzaCaptionStream" value="true"/>
                        </textstream>
                </switch>
        </body>
</smil>

  1. Generated playlist after the SMIL file edit:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Chinese",FORCED=NO,AUTOSELECT=YES,URI="subtitlelist_lzho_b48000_slEnglish_t64RW5nbGlzaA==_cfNjk0NjU3LzI0MTEzNi50dG1s.m3u8",LANGUAGE="zho"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="English",NAME="English",DEFAULT=YES,URI="chunklist_b48000_ao_slEnglish_t64RW5nbGlzaA==_cfNjk0NjU3LzI0MTEzNi50dG1s.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=3872001,AUDIO="aac",SUBTITLES="subs"
chunklist_b3872001_vo_cfNjk0NjU3LzI0MTEzNi50dG1s.m3u8
* STATE: PERFORM => DONE handle 0x600057620; line 1645 (connection #0)
* Curl_done
* Connection #0 to host localhost left intact

Do make sure that you are saving the correct SMIL file, and that you are changing the values for both the system-language and the title parameters. In the example you copied above, it looks like your title was still set to Cantonese.

Hope this helps.

Michelle

Hi Monica,

In the two examples you provided, the second one shows that a connection was established, while the first one indicates that the connection was not. Does this only happen intermittently, or do you notice any pattern? Unfortunately, I cannot replicate this same behavior on a test instance, and additional details on how you are able to get this scenario would be helpful so that we can narrow the cause down for you.

Michelle

Hi Salvadore,

Thank you for your reply but you may misunderstand my request.

The smil file is used for assembling multiple audio, subtitle and video with different bitrates. Following is an example :

<?xml version="1.0"?>
<smil>
        <head/>
        <body>
                <switch>
                        <video src="mp4:000000908718.mp4?audioindex=0" system-language="Cantonese" title="Cantonese" audio-bitrate="48000">
                                <param name="audioOnly" value="TRUE" valuetype="data"/>
                                <param name="cupertinoTag" value="EXT-X-MEDIA" valuetype="data"/>
                                <param name="cupertinoTag.GROUP-ID" value="aac" valuetype="data"/>
                                <param name="cupertinoTag.DEFAULT" value="YES" valuetype="data"/>
                        </video>
                        <video src="000000908718.mp4" system-bitrate="3872001">
                                <param name="videoOnly" value="TRUE" valuetype="data"/>
                                <param name="cupertinoTag.AUDIO" value="aac" valuetype="data"/>
                        </video>
                        <textstream src="241136.ttml" system-language="zho">
                                <param name="isWowzaCaptionStream" value="true"/>
                        </textstream>
                </switch>
        </body>
</smil>

And the master playlist of the link of this SMIL should be

#EXTM3U
#EXT-X-VERSION:4
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="Chinese",FORCED=NO,AUTOSELECT=YES,URI="subtitlelist_lzho_b48000_slCantonese_t64Q2FudG9uZXNl_cfdGVzdC9zbWlsLzI0MTEzNi50dG1s.m3u8",LANGUAGE="zho"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="aac",LANGUAGE="Cantonese",NAME="Cantonese",DEFAULT=YES,URI="chunklist_b48000_ao_slCantonese_t64Q2FudG9uZXNl_cfdGVzdC9zbWlsLzI0MTEzNi50dG1s.m3u8"
#EXT-X-STREAM-INF:BANDWIDTH=3872001,AUDIO="aac",SUBTITLES="subs"
chunklist_b3872001_vo_cfdGVzdC9zbWlsLzI0MTEzNi50dG1s.m3u8

Then if I changed the SMIL with audio language to English as followed, the master playlist remain the same as before.

<?xml version="1.0"?>
<smil>
        <head/>
        <body>
                <switch>
                        <video src="mp4:000000908718.mp4?audioindex=0" system-language="English" title="Cantonese" audio-bitrate="48000">
                                <param name="audioOnly" value="TRUE" valuetype="data"/>
                                <param name="cupertinoTag" value="EXT-X-MEDIA" valuetype="data"/>
                                <param name="cupertinoTag.GROUP-ID" value="aac" valuetype="data"/>
                                <param name="cupertinoTag.DEFAULT" value="YES" valuetype="data"/>
                        </video>
                        <video src="000000908718.mp4" system-bitrate="3872001">
                                <param name="videoOnly" value="TRUE" valuetype="data"/>
                                <param name="cupertinoTag.AUDIO" value="aac" valuetype="data"/>
                        </video>
                        <textstream src="241136.ttml" system-language="zho">
                                <param name="isWowzaCaptionStream" value="true"/>
                        </textstream>
                </switch>
        </body>
</smil>

As I didn’t use MediaCache, so how can I ignore this?

Thanks,

Monica

Hi Michelle,

I tried a few times and this problem still appeared.

About the SMIL file, I think the master playlist should be according to my SIML file no matter the system-language and title are consistent or not. After all, this is only the test example for this problem.

I also find the access log showed some information when I CURL the playlist (access log set to DEBUG level):

When the problem shows :

2016-03-22	10:28:36	HKT	comment	server	DEBUG	200	-	HTTPStreamerAdapterMPEGDashStreamer.canHandle[vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8]: false	-	-	-	156.711	-	-	-	-	-	-	-	-	-	-	--
2016-03-22	10:28:36	HKT	comment	server	INFO	200	-	HTTPStreamerAdapterSmoothStreamer.canHandle[vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8]: false	-	-	-	156.713	-	-	-	-	-	-	-	-	-	-	-	--
2016-03-22	10:28:36	HKT	comment	server	DEBUG	200	-	HTTPStreamerAdapterCupertinoStreamer.canHandle[vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8]: true	-	-	-	156.713	-	-	-	-	-	-	-	-	-	-	--
2016-03-22	10:28:36	HKT	comment	server	DEBUG	200	-	HTTPStreamerAdapterCupertinoStreamer.service: vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8	-	-	-	156.714	-	-	-	-	-	-	-	-	-	-	-	--
2016-03-22	10:28:36	HKT	comment	server	INFO	200	-	HTTPStreamerAdapterCupertinoStreamer.onPlaylist: vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8	-	-	-	156.714	-	-	-	-	-	-	-	-	-	-	-	--

When playlist is fine :

2016-03-22	10:27:35	HKT	comment	server	DEBUG	200	-	HTTPStreamerAdapterMPEGDashStreamer.canHandle[vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8]: false	-	-	-	95.27	-	-	-	-	-	-	-	-	-	-	--
2016-03-22	10:27:35	HKT	comment	server	INFO	200	-	HTTPStreamerAdapterSmoothStreamer.canHandle[vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8]: false	-	-	-	95.271	-	-	-	-	-	-	-	-	-	-	-	--
2016-03-22	10:27:35	HKT	comment	server	DEBUG	200	-	HTTPStreamerAdapterCupertinoStreamer.canHandle[vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8]: true	-	-	-	95.271	-	-	-	-	-	-	-	-	-	-	--
2016-03-22	10:27:35	HKT	comment	server	DEBUG	200	-	HTTPStreamerAdapterCupertinoStreamer.service: vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8	-	-	-	95.272	-	-	-	-	-	-	-	-	-	-	-	--
2016-03-22	10:27:35	HKT	comment	server	INFO	200	-	HTTPStreamerAdapterCupertinoStreamer.onPlaylist: vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8	-	-	-	95.272	-	-	-	-	-	-	-	-	-	-	-	--
2016-03-22	10:27:35	HKT	connect	cupertino	INFO	200	1173736316	-	_defaultVHost_	vipo	_definst_	65.57	vod-o0.vdowowza.hk3.tvb.com	80	http://vod-o0.vdowowza.hk3.tvb.com:80/vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8	202.126.56.4	http (cupertino)	-	curl/7.43.0	1173736316	0	0	-	0	-	-	test/smil/test.smil	-	-	-	-http://vod-o0.vdowowza.hk3.tvb.com:80/vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8	http://vod-o0.vdowowza.hk3.tvb.com:80/vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8	-	http://vod-o0.vdowowza.hk3.tvb.com:80/vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8	-
2016-03-22	10:27:35	HKT	create	stream	INFO	200	test/smil/test.smil	-	_defaultVHost_	vipo	_definst_	0.001	vod-o0.vdowowza.hk3.tvb.com	80	http://vod-o0.vdowowza.hk3.tvb.com:80/vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8	202.126.56.4	http (cupertino)	-	curl/7.43.0	1173736316	0	0	3	0	0	0	test/smil/test.smil	-	-	-	-http://vod-o0.vdowowza.hk3.tvb.com:80/vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8	http://vod-o0.vdowowza.hk3.tvb.com:80/vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8	-	http://vod-o0.vdowowza.hk3.tvb.com:80/vipo/_definst_/smil:test/smil/test.smil/playlist.m3u8	-

I don’t know this is related to this problem or not but hope this help.

Thanks,

Monica

Hi Michelle,

I found that this problem not happened when I first change the SMIL file but may happened second or third time. I’m wondering if this related to cache file or something.

BTW, when I CURL the playlist of m3u8, do wowza server establish connection every time?

Thanks,

Monica