Wowza:使用动态smil时无法播放视频

时间:2016-08-09 13:03:20

标签: html5 java-ee video.js wowza

我已经创建了j2ee web应用程序,我正在尝试从wowza创建动态smil文件。

以下是我的代码

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>ABR</title>
<link href="http://vjs.zencdn.net/5.10.7/video-js.css" rel="stylesheet">
<script src="http://vjs.zencdn.net/5.10.7/video.js"></script>
<script src="hls.min.js"></script>
<script src="vjs-hls.min.js"></script>
</head>
<body>
    <video id="video" class="video-js vjs-default-skin" width="640" height="360" autoplay controls>
        <!-- <source src="http://192.168.7.10:1935/vod/smil:bigbuckbunny.smil/playlist.m3u8" type="application/x-mpegURL"/> working fine if i use this url--> 
        <source src="http://192.168.7.10:1935/vod/amlst:bigbuckbunny/playlist.m3u8" type="application/x-mpegURL"/> <!-- Not working if i use this url -->
    </video>

    <script>
        var player = videojs('video');
        player.qualityPickerPlugin();
    </script>
</body>
</html>

Java文件

package com.jagir.wowza.smil;
import com.wowza.wms.application.IApplicationInstance;
import com.wowza.wms.medialist.MediaList;
import com.wowza.wms.medialist.MediaListRendition;
import com.wowza.wms.medialist.MediaListSegment;
import com.wowza.wms.module.ModuleBase;
import com.wowza.wms.stream.IMediaListProvider;
import com.wowza.wms.stream.IMediaListReader;
import com.wowza.wms.stream.IMediaStream;

public class ModuleAMLSTTest extends ModuleBase
{
class MyMediaListProvider implements IMediaListProvider
{
public MediaList resolveMediaList(IMediaListReader mediaListReader, IMediaStream stream, String streamName)
{
MediaList mediaList = new MediaList();

MediaListSegment segment = new MediaListSegment();
mediaList.addSegment(segment);

MediaListRendition rendition1 = new MediaListRendition();
segment.addRendition(rendition1);

rendition1.setName("mp4:"+streamName+"_450.mp4");
rendition1.setBitrateAudio(44100);
rendition1.setBitrateVideo(45000);
rendition1.setWidth(424);
rendition1.setHeight(240);
rendition1.setAudioCodecId("mp4a.40.2");
rendition1.setVideoCodecId("avc1.66.12");

MediaListRendition rendition2 = new MediaListRendition();
segment.addRendition(rendition2);

rendition2.setName("mp4:"+streamName+"_750.mp4");
rendition2.setBitrateAudio(44100);
rendition2.setBitrateVideo(750000);
rendition2.setWidth(640);
rendition2.setHeight(480);
rendition2.setAudioCodecId("mp4a.40.2");
rendition2.setVideoCodecId("avc1.77.31");

MediaListRendition rendition3 = new MediaListRendition();
segment.addRendition(rendition3);

rendition3.setName("mp4:"+streamName+"_1100.mp4");
rendition3.setBitrateAudio(44100);
rendition3.setBitrateVideo(1100000);
rendition3.setWidth(1272);
rendition3.setHeight(720);
rendition3.setAudioCodecId("mp4a.40.2");
rendition3.setVideoCodecId("avc1.77.31");

MediaListRendition rendition4 = new MediaListRendition();
segment.addRendition(rendition4);

rendition4.setName("mp4:"+streamName+"_1500.mp4");
rendition4.setBitrateAudio(44100);
rendition4.setBitrateVideo(1100000);
rendition4.setWidth(1272);
rendition4.setHeight(720);
rendition4.setAudioCodecId("mp4a.40.2");
rendition4.setVideoCodecId("avc1.77.31");

System.out.println("::::::::::::::::::::::"+streamName);

return mediaList;
}
}

public void onAppStart(IApplicationInstance appInstance)
{
appInstance.setMediaListProvider(new MyMediaListProvider());
}
}

以下文件位于[install_dir] / content / folder

  • bigbuckbunny_450.mp4,bigbuckbunny_750.mp4,bigbuckbunny_1100.mp4, bigbuckbunny_1500.mp4

文件存储在内容文件夹中。

我还添加了

<Module>
<Name>ModuleAMLSTTest</Name>
<Description>ModuleAMLSTTest</Description>
<Class>com.jagir.wowza.smil.ModuleAMLSTTest</Class>
</Module>

要 C:\ Program Files(x86)\ Wowza Media Systems \ Wowza Streaming Engine 4.5.0 \ conf \ vod \ Application.xml

但是当我运行此代码时,它会在播放器中显示以下消息

“找不到可播放资源”

为什么不播放视频?

1 个答案:

答案 0 :(得分:2)

我没有把任何jar文件放在wowza lib文件夹中,这导致了问题。 创建我的应用程序的jar文件并将其放入lib文件夹后,它正常工作。