我已经创建了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
中文件存储在内容文件夹中。
我还添加了
<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
但是当我运行此代码时,它会在播放器中显示以下消息
“找不到可播放资源”
为什么不播放视频?
答案 0 :(得分:2)
我没有把任何jar文件放在wowza lib文件夹中,这导致了问题。 创建我的应用程序的jar文件并将其放入lib文件夹后,它正常工作。