多协议、性能稳定、丰富API的流媒体服务器软件
播放VOD时,可否从特定的时间位置开始播放,并限定播放时长?
如果你使用Http Live Streaming,你可以利用这个功能播放一个VOD文件的一个片段; 下面有几个方法让你可以设置一个开始时间位置和播放时长。

  • Query parameters: 所有的HTTP streaming 协议现在都支持 wowzaplaystartwowzaplayduration 参数。这两个时间参数的单位为毫秒。举例说明,如果要从30秒的位置开始播放sample.mp4,并播放40秒,然后自动结束。 你可以用下面的URL:

    iOS:
    http://[wowza-ip-address]:1935/vod/mp4:sample.mp4/playlist.m3u8?wowzaplaystart=30000&wowzaplayduration=40000
    		  
  • Server-side API: 你可以通过IHTTPStreamerSession session API 以毫秒为单位设置playStart和playDuration的值. 例如,在你的自定义模块中,你可以按下面的方式写一段Java程序:
    public void onHTTPSessionCreate(IHTTPStreamerSession httpSession)
    {
    	httpSession.setPlayStart(30000);
    	httpSession.setPlayDuration(40000);
    }
    			
  • SMIL file: 在一个SMIL文件中,使用begindur 属性。这些属性以秒为单位:
    <smil>
    	<head>
    	</head>
    	<body>
    		<switch>
    			<video begin="30.0" dur="40.0" src="mp4:sample.mp4" system-bitrate="450000"/>
    		</switch>
    	</body>
    </smil>
    			
  • MediaList API: 使用MediaList API. 以毫秒为单位设置参数:
    Public class ModuleAMLSTTest extends ModuleBase implements IMediaListProvider
    {
    	public void onAppStart(IApplicationInstance appInstance)
    	{
    		appInstance.setMediaListProvider(this);
    	}
    	
    	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:sample.mp4");
    		rendition1.setBitrateAudio(128000);
    		rendition1.setBitrateVideo(400000);
    		rendition1.setWidth(320);
    		rendition1.setHeight(240);
    		rendition1.setPlayStart(30000);
    		rendition1.setPlayDuration(40000);
    				
    		return mediaList;
    	}
    }