Hi,
I’m working on add TTML subtitle for HLS vod streaming on wowza engine.
So far we are using Wowza engine 4.4 and HLS v4.
The subtitle is added in SMIL file like following :
<?xml version="1.0"?>
<smil>
<head/>
<body>
<switch>
<video src="mp4:000000717117.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="mp4:000000717117.mp4?audioindex=1" system-language="Mandarin" title="Mandarin" 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="000000717117.mp4" system-bitrate="1404000">
<param name="videoOnly" value="TRUE" valuetype="data"/>
<param name="cupertinoTag.AUDIO" value="aac" valuetype="data"/>
</video>
<textstream src="215881.ttml" system-language="eng,zho">
<param name="isWowzaCaptionStream" value="true"/>
</textstream>
</switch>
</body>
</smil>
The Application conf file code related :
<TimedText>
<!-- VOD caption providers (separate with commas): vodcaptionprovidermp4_3gpp, vodcaptionproviderttml, vodcaptionproviderwebvtt, vodcaptionprovidersrt, vodcaptionproviderscc -->
<VODTimedTextProviders>vodcaptionproviderttml</VODTimedTextProviders>
<!-- Properties for TimedText -->
<Properties>
<Property>
<Name>cupertinoVODCaptionsUseWebVTT</Name>
<Type>Boolean</Type>
<Value>true</Value>
</Property>
</Properties>
</TimedText>
I find some error messages in access log :
ERROR server comment 2016-02-17 15:07:34 - - - - - 0.752 - - - - - - - - MediaCacheItemFile.init (/data/wowza/content/vipo/he9/4979/497858/000000717117.ttml) : java.io.FileNotFoundException: /data/wowza/content/vipo/he9/4979/497858/000000717117.ttml (No such file or directory)|at java.io.RandomAccessFile.open0(Native Method)|at java.io.RandomAccessFile.open(RandomAccessFile.java:316)|at java.io.RandomAccessFile.<init>(RandomAccessFile.java:243)|at com.wowza.io.WowzaRandomAccessFile.<init>(WowzaRandomAccessFile.java:12)|at com.wowza.wms.mediacache.impl.MediaCacheItemFileImpl.init(MediaCacheItemFileImpl.java:209)|
WARN server comment 2016-02-17 15:07:34 - - - - - 0.755 - - - - - - - - MediaCacheItemBase.init: Item does not exist: vipo/he9/4979/497858/000000717117.ttml
And the link we use is : http://[HOSTNAME]/vipo/definst/smil:vipo/he9/4979/497858/mps_000000717117.smil/playlist.m3u8
As we have a cache source at /data/wowza/content/vipo/, I think wowza server added 000000717117.ttml as default ttml while the actual ttml file is named 215881.ttml. As a result, Media cache cannot find the subtitle file so the error message appeared.
Is there a way to disable this message?
Or is there a way to add the real ttml file path to wowza? I’ve tried captionFileNamingRule and captionPathNamingRule but I’m not sure the value. The ttml file is at the same folder with mp4 file, but the file name are different.
Thanks,
Monica