Wowza:使用动态微笑时无法播放视频
Wowza : Video could not played when using dynamic smil
我已经创建了 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/ 文件夹中
- 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 流媒体引擎 4.5.0\conf\vod\Application.xml
但是当我运行这段代码时,它会在播放器中给出以下信息
"No playable resource found"
为什么视频播放不了?
我没有在 wowza lib 文件夹中放入任何 jar 文件,这是导致问题的原因。
创建我的应用程序的 jar 文件并将其放入 lib 文件夹后,它可以正常工作。
我已经创建了 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/ 文件夹中
- 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 流媒体引擎 4.5.0\conf\vod\Application.xml
但是当我运行这段代码时,它会在播放器中给出以下信息
"No playable resource found"
为什么视频播放不了?
我没有在 wowza lib 文件夹中放入任何 jar 文件,这是导致问题的原因。 创建我的应用程序的 jar 文件并将其放入 lib 文件夹后,它可以正常工作。