播放VOD时,可否从特定的时间位置开始播放,并限定播放时长?
转载请注明:文章来自www.wowza.cn
注意: 要访问最新的技术资料,请访问http://www.ttstream.com/wowza/
注意:这个功能只适用于Wowza Media Server® 3.0.0 及以上的版本.

如果你使用Http Live Streaming、smooth streaming 或 Flash HTTP streaming流媒体传输协议,你可以利用这个功能播放一个VOD文件的一个片段; 下面有几个方法让你可以设置一个开始时间位置和播放时长。 www.wowza.cn

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

    iOS:
    Code:
    http://[wowza-ip-address]:1935/vod/mp4:sample.mp4/playlist.m3u8?wowzaplaystart=30000&wowzaplayduration=40000
    Flash HTTP:
    Code:
    http://[wowza-ip-address]:1935/vod/mp4:sample.mp4/manifest.f4m?wowzaplaystart=30000&wowzaplayduration=40000
    Smooth Streaming:
    Code:
    http://[wowza-ip-address]:1935/vod/mp4:sample.mp4/Manifest?wowzaplaystart=30000&wowzaplayduration=40000
    注意: 在用微软的Silverlight播放时,你可能需要对播放URL做一个小调整 (对&连接符做一个转义):

    Code:
    http://[wowza-ip-address]:1935/vod/mp4:sample.mp4/Manifest?wowzaplaystart=30000&wowzaplayduration=40000
  • Server-side API: 你可以通过IHTTPStreamerSession session API 以毫秒为单位设置playStart和playDuration的值. 例如,在你的自定义模块中,你可以按下面的方式写一段Java程序:
    Code:
    public void onHTTPSessionCreate(IHTTPStreamerSession httpSession)
    {
    	httpSession.setPlayStart(30000);
    	httpSession.setPlayDuration(40000);
    }
    
    www.wowza.cn
  • SMIL file: 在一个SMIL文件中,使用begindur 属性。这些属性以秒为单位:
    Code:
    <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. 以毫秒为单位设置参数:
    Code:
    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;
    	}
    }
    
    www.wowza.cn


注意: 在用微软的Silverlight播放时,你可能需要对播放URL做一个小调整 (对&连接符做一个转义):

Code:
http://[wowza-ip-address]:1935/vod/mp4:sample.mp4/Manifest?wowzaplaystart=30000&amp;wowzaplayduration=40000