Html 在引发onratechange事件后,我冻结了仪表板套件(mpd)
我正在尝试从mp4文件创建自适应流。我在做流媒体方面有相当丰富的经验,并通过Silverlight成功实现了平滑流媒体。我们想要一个适用于HTML5的解决方案。我在追求短跑。下面是我采取的步骤Html 在引发onratechange事件后,我冻结了仪表板套件(mpd),html,ffmpeg,dash.js,bento,Html,Ffmpeg,Dash.js,Bento,我正在尝试从mp4文件创建自适应流。我在做流媒体方面有相当丰富的经验,并通过Silverlight成功实现了平滑流媒体。我们想要一个适用于HTML5的解决方案。我在追求短跑。下面是我采取的步骤 使用ffmpeg将mp4重新采样为不同的大小 确保使用Bento4s mp4Fragment实用程序正确分割文件 使用Bento4s mp4dash实用程序创建仪表板mpd文件和相关段 我已经做了很多工作来学习这些实用程序,并创建一个我认为可以工作的输出过程。创建可靠的破折号工件。但我似乎做错了什么。下面
"E:\\_INSTALL\\Bento4\\Bento4-SDK-1-4-3-607.x86-microsoft-win32-vs2010\\Bento4-SDK-1-4-3-607.x86-microsoft-win32-vs2010\\bin\\mp4dash.exe --mpd-name=\"\\\\d9fqt52\\_SIMULATED_SHARE_C\\ff\\output\\dash\\something.mpd\" -f -o \"\\\\d9fqt52\\_SIMULATED_SHARE_C\\ff\\output\\dash\" \"\\\\d9fqt52\\_SIMULATED_SHARE_C\\ff\\output\\bunny360f.mp4\" \"\\\\d9fqt52\\_SIMULATED_SHARE_C\\ff\\output\\bunny540f.mp4\" \"\\\\d9fqt52\\_SIMULATED_SHARE_C\\ff\\output\\bunny720f.mp4\" "
这个运行正常。并创建mpd文件、一个包含段文件的音频文件夹、一个包含3个文件夹(每个文件夹包含段文件)的视频文件夹
我能够配置IIS来播放mpd ok。以及分段文件。视频播放得很好。。。然后它停止了。它冻结在50到60秒之间。就在它冻结之前,我可以确认HTML5视频标签的onratechange事件已引发。这是一个随着播放速率的改变而提高的事件。我没有做任何改变,只是碰巧发生了
实际视频长度约为1小时。我还将dash.js库用作播放器
如果您能确定我应该更改的任何组件或细节,请让我知道
2016年3月7日更新
根据要求,这里是MPD内容
<?xml version="1.0" ?>
<MPD mediaPresentationDuration="PT51M51.909S" minBufferTime="PT0.80S" profiles="urn:mpeg:dash:profile:isoff-live:2011" type="static" xmlns="urn:mpeg:dash:schema:mpd:2011">
<!-- Created with Bento4 mp4-dash.py, VERSION=1.6.0-607 -->
<Period>
<!-- Audio -->
<AdaptationSet lang="en" mimeType="audio/mp4" segmentAlignment="true" startWithSAP="1">
<SegmentTemplate duration="801" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/seg-$Number$.m4f" startNumber="1" timescale="1000"/>
<Representation audioSamplingRate="48000" bandwidth="132491" codecs="mp4a.40.2" id="audio/en">
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
</Representation>
</AdaptationSet>
<!-- Video -->
<AdaptationSet maxHeight="720" maxWidth="1280" mimeType="video/mp4" minHeight="540" minWidth="640" segmentAlignment="true" startWithSAP="1">
<SegmentTemplate duration="801" initialization="$RepresentationID$/init.mp4" media="$RepresentationID$/seg-$Number$.m4f" startNumber="1" timescale="1000"/>
<Representation bandwidth="785536" codecs="avc1.64001F" frameRate="30000/1001" height="540" id="video/1" scanType="progressive" width="960"/>
<Representation bandwidth="403537" codecs="avc1.64001E" frameRate="30000/1001" height="360" id="video/2" scanType="progressive" width="640"/>
<Representation bandwidth="1496514" codecs="avc1.64001F" frameRate="30000/1001" height="720" id="video/3" scanType="progressive" width="1280"/>
</AdaptationSet>
</Period>
</MPD>
2016年3月7日更新
这是两个不同视频的控制台输出,它们在50到60秒之间由于未知原因停止
///ABS VIDEO
58393][rulesController] [RULES]: playbackTimeRule [Fragment:download,82,MediaSegment,0video] Default
dash.all.js:11 [58395][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,82,MediaSegment,0,video] Default
dash.all.js:11 [58401][indexHandler][audio] Getting the request for time: 82.082
dash.all.js:11 [58403][indexHandler][audio] Index for time 82.082 is 81
dash.all.js:11 [58405][indexHandler][audio] SegmentTemplate: 81.08099999999999 / 1361.235
dash.all.js:11 [58406][indexHandler][audio] SegmentTemplate: 82.082 / 1361.235
dash.all.js:11 [58407][rulesController] [RULES]: playbackTimeRule [Fragment:download,82,MediaSegment,0audio] Default
dash.all.js:11 [58417][fragmentLoader] loaded video:MediaSegment:82.082 (200, 18ms, 2ms)
dash.all.js:11 [58419][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,82,MediaSegment,0,audio] Default
dash.all.js:11 [58435][fragmentLoader] loaded audio:MediaSegment:82.082 (200, 14ms, 0ms)
dash.all.js:11 [59390][indexHandler][video] Getting the request for time: 83.083
dash.all.js:11 [59392][indexHandler][video] Index for time 83.083 is 82
dash.all.js:11 [59393][indexHandler][video] SegmentTemplate: 82.082 / 1361.235
dash.all.js:11 [59394][indexHandler][video] SegmentTemplate: 83.08299999999998 / 1361.235
dash.all.js:11 [59395][rulesController] [RULES]: playbackTimeRule [Fragment:download,83,MediaSegment,0video] Default
dash.all.js:11 [59396][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,83,MediaSegment,0,video] Default
dash.all.js:11 [59401][indexHandler][audio] Getting the request for time: 83.083
dash.all.js:11 [59403][indexHandler][audio] Index for time 83.083 is 82
dash.all.js:11 [59404][indexHandler][audio] SegmentTemplate: 82.082 / 1361.235
dash.all.js:11 [59406][indexHandler][audio] SegmentTemplate: 83.08299999999998 / 1361.235
dash.all.js:11 [59408][rulesController] [RULES]: playbackTimeRule [Fragment:download,83,MediaSegment,0audio] Default
dash.all.js:11 [59416][fragmentLoader] loaded video:MediaSegment:83.08299999999998 (200, 17ms, 1ms)
dash.all.js:11 [59418][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,83,MediaSegment,0,audio] Default
dash.all.js:11 [59437][fragmentLoader] loaded audio:MediaSegment:83.08299999999998 (200, 14ms, 1ms)
dash.all.js:11 [59902][scheduleController][video] Stalling Buffer
dash.all.js:11 [59903][bufferController][video] Waiting for more buffer before starting playback.
dash.all.js:11 [59906][scheduleController][audio] Stalling Buffer
dash.all.js:11 [59907][bufferController][audio] Waiting for more buffer before starting playback.
dash.all.js:11 [63684][playbackController] <video> ratechange: 0
///HOG VIDEO
[58250][rulesController] [RULES]: playbackTimeRule [Fragment:download,105,MediaSegment,0audio] Default
dash.all.js:11 [58266][fragmentLoader] loaded video:MediaSegment:84.105 (200, 28ms, 1ms)
dash.all.js:11 [58269][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,105,MediaSegment,0,audio] Default
dash.all.js:11 [58287][fragmentLoader] loaded audio:MediaSegment:84.105 (200, 14ms, 1ms)
dash.all.js:11 [58982][indexHandler][video] Getting the request for time: 84.906
dash.all.js:11 [58983][indexHandler][video] Index for time 84.906 is 105
dash.all.js:11 [58984][indexHandler][video] SegmentTemplate: 84.105 / 3111.909
dash.all.js:11 [58984][indexHandler][video] SegmentTemplate: 84.906 / 3111.909
dash.all.js:11 [58985][rulesController] [RULES]: playbackTimeRule [Fragment:download,106,MediaSegment,0video] Default
dash.all.js:11 [58986][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,106,MediaSegment,0,video] Default
dash.all.js:11 [58989][indexHandler][audio] Getting the request for time: 84.906
dash.all.js:11 [58990][indexHandler][audio] Index for time 84.906 is 105
dash.all.js:11 [58991][indexHandler][audio] SegmentTemplate: 84.105 / 3111.909
dash.all.js:11 [58992][indexHandler][audio] SegmentTemplate: 84.906 / 3111.909
dash.all.js:11 [58993][rulesController] [RULES]: playbackTimeRule [Fragment:download,106,MediaSegment,0audio] Default
dash.all.js:11 [59002][fragmentLoader] loaded video:MediaSegment:84.906 (200, 14ms, 1ms)
dash.all.js:11 [59003][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,106,MediaSegment,0,audio] Default
dash.all.js:11 [59014][fragmentLoader] loaded audio:MediaSegment:84.906 (200, 8ms, 1ms)
dash.all.js:11 [59735][scheduleController][video] Stalling Buffer
dash.all.js:11 [59736][bufferController][video] Waiting for more buffer before starting playback.
dash.all.js:11 [59738][scheduleController][audio] Stalling Buffer
dash.all.js:11 [59739][bufferController][audio] Waiting for more buffer before starting playback.
dash.all.js:11 [61695][playbackController] <video> ratechange: 0
///ABS视频
58393][rulesController][RULES]:播放时间规则[Fragment:download,82,MediaSegment,0video]默认值
dash.all.js:11[58395][rulesController][RULES]:sameTimeRequestRule[Fragment:download,82,MediaSegment,0,video]默认值
dash.all.js:11[58401][indexHandler][audio]获取时间请求:82.082
dash.all.js:11[58403][indexHandler][audio]时间82.082的索引是81
dash.all.js:11[58405][indexHandler][audio]段模板:81.080999999999/1361.235
dash.all.js:11[58406][indexHandler][audio]段模板:82.082/1361.235
dash.all.js:11[58407][rulesController][RULES]:playbackTimeRule[Fragment:download,82,MediaSegment,0audio]默认值
dash.all.js:11[58417][fragmentLoader]加载的视频:MediaSegment:82.082(200,18ms,2ms)
dash.all.js:11[58419][rulesController][RULES]:SametimereRequestRule[Fragment:download,82,MediaSegment,0,audio]默认值
dash.all.js:11[58435][fragmentLoader]加载的音频:MediaSegment:82.082(200,14毫秒,0毫秒)
dash.all.js:11[59390][indexHandler][video]获取时间请求:83.083
dash.all.js:11[59392][indexHandler][video]时间83.083的索引是82
dash.all.js:11[59393][indexHandler][video]片段模板:82.082/1361.235
dash.all.js:11[59394][indexHandler][video]片段模板:83.0829999998/1361.235
dash.all.js:11[59395][rulesController][RULES]:playbackTimeRule[Fragment:download,83,MediaSegment,0video]默认值
dash.all.js:11[59396][rulesController][RULES]:sameTimeRequestRule[Fragment:download,83,MediaSegment,0,video]默认值
dash.all.js:11[59401][indexHandler][audio]获取时间请求:83.083
dash.all.js:11[59403][indexHandler][audio]时间83.083的索引是82
dash.all.js:11[59404][indexHandler][audio]段模板:82.082/1361.235
dash.all.js:11[59406][indexHandler][audio]段模板:83.0829999998/1361.235
dash.all.js:11[59408][rulesController][RULES]:playbackTimeRule[Fragment:download,83,MediaSegment,0audio]默认值
dash.all.js:11[59416][fragmentLoader]加载的视频:MediaSegment:83.0829999998(20017ms,1ms)
dash.all.js:11[59418][rulesController][RULES]:sameTimeRequestRule[Fragment:download,83,MediaSegment,0,audio]默认值
dash.all.js:11[59437][fragmentLoader]加载的音频:MediaSegment:83.0829999998(200,14毫秒,1毫秒)
dash.all.js:11[59902][scheduleController][video]暂停缓冲区
dash.all.js:11[59903][bufferController][video]在开始播放之前等待更多缓冲区。
dash.all.js:11[59906][scheduleController][audio]暂停缓冲区
dash.all.js:11[59907][bufferController][audio]在开始播放之前等待更多缓冲区。
dash.all.js:11[63684][playbackController]费率变化:0
///猪视频
[58250][rulesController][RULES]:播放时间规则[片段:下载,105,媒体段,0音频]默认值
dash.all.js:11[58266][fragmentLoader]加载的视频:MediaSegment:84.105(20028ms,1ms)
dash.all.js:11[58269][rulesController][RULES]:sameTimeRequestRule[Fragment:download,105,MediaSegment,0,audio]默认值
dash.all.js:11[58287][fragmentLoader]加载的音频:MediaSegment:84.105(20014ms,1ms)
dash.all.js:11[58982][indexHandler][video]获取时间请求:84.906
dash.all.js:11[58983][indexHandler][video]时间84.906的索引是105
dash.all.js:11[58984][indexHandler][video]片段模板:84.105/3111.909
dash.all.js:11[58984][indexHandler][video]片段模板:84.906/3111.909
dash.all.js:11[58985][rulesController][RULES]:playbackTimeRule[Fragment:download,106,MediaSegment,0v
///ABS VIDEO
58393][rulesController] [RULES]: playbackTimeRule [Fragment:download,82,MediaSegment,0video] Default
dash.all.js:11 [58395][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,82,MediaSegment,0,video] Default
dash.all.js:11 [58401][indexHandler][audio] Getting the request for time: 82.082
dash.all.js:11 [58403][indexHandler][audio] Index for time 82.082 is 81
dash.all.js:11 [58405][indexHandler][audio] SegmentTemplate: 81.08099999999999 / 1361.235
dash.all.js:11 [58406][indexHandler][audio] SegmentTemplate: 82.082 / 1361.235
dash.all.js:11 [58407][rulesController] [RULES]: playbackTimeRule [Fragment:download,82,MediaSegment,0audio] Default
dash.all.js:11 [58417][fragmentLoader] loaded video:MediaSegment:82.082 (200, 18ms, 2ms)
dash.all.js:11 [58419][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,82,MediaSegment,0,audio] Default
dash.all.js:11 [58435][fragmentLoader] loaded audio:MediaSegment:82.082 (200, 14ms, 0ms)
dash.all.js:11 [59390][indexHandler][video] Getting the request for time: 83.083
dash.all.js:11 [59392][indexHandler][video] Index for time 83.083 is 82
dash.all.js:11 [59393][indexHandler][video] SegmentTemplate: 82.082 / 1361.235
dash.all.js:11 [59394][indexHandler][video] SegmentTemplate: 83.08299999999998 / 1361.235
dash.all.js:11 [59395][rulesController] [RULES]: playbackTimeRule [Fragment:download,83,MediaSegment,0video] Default
dash.all.js:11 [59396][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,83,MediaSegment,0,video] Default
dash.all.js:11 [59401][indexHandler][audio] Getting the request for time: 83.083
dash.all.js:11 [59403][indexHandler][audio] Index for time 83.083 is 82
dash.all.js:11 [59404][indexHandler][audio] SegmentTemplate: 82.082 / 1361.235
dash.all.js:11 [59406][indexHandler][audio] SegmentTemplate: 83.08299999999998 / 1361.235
dash.all.js:11 [59408][rulesController] [RULES]: playbackTimeRule [Fragment:download,83,MediaSegment,0audio] Default
dash.all.js:11 [59416][fragmentLoader] loaded video:MediaSegment:83.08299999999998 (200, 17ms, 1ms)
dash.all.js:11 [59418][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,83,MediaSegment,0,audio] Default
dash.all.js:11 [59437][fragmentLoader] loaded audio:MediaSegment:83.08299999999998 (200, 14ms, 1ms)
dash.all.js:11 [59902][scheduleController][video] Stalling Buffer
dash.all.js:11 [59903][bufferController][video] Waiting for more buffer before starting playback.
dash.all.js:11 [59906][scheduleController][audio] Stalling Buffer
dash.all.js:11 [59907][bufferController][audio] Waiting for more buffer before starting playback.
dash.all.js:11 [63684][playbackController] <video> ratechange: 0
///HOG VIDEO
[58250][rulesController] [RULES]: playbackTimeRule [Fragment:download,105,MediaSegment,0audio] Default
dash.all.js:11 [58266][fragmentLoader] loaded video:MediaSegment:84.105 (200, 28ms, 1ms)
dash.all.js:11 [58269][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,105,MediaSegment,0,audio] Default
dash.all.js:11 [58287][fragmentLoader] loaded audio:MediaSegment:84.105 (200, 14ms, 1ms)
dash.all.js:11 [58982][indexHandler][video] Getting the request for time: 84.906
dash.all.js:11 [58983][indexHandler][video] Index for time 84.906 is 105
dash.all.js:11 [58984][indexHandler][video] SegmentTemplate: 84.105 / 3111.909
dash.all.js:11 [58984][indexHandler][video] SegmentTemplate: 84.906 / 3111.909
dash.all.js:11 [58985][rulesController] [RULES]: playbackTimeRule [Fragment:download,106,MediaSegment,0video] Default
dash.all.js:11 [58986][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,106,MediaSegment,0,video] Default
dash.all.js:11 [58989][indexHandler][audio] Getting the request for time: 84.906
dash.all.js:11 [58990][indexHandler][audio] Index for time 84.906 is 105
dash.all.js:11 [58991][indexHandler][audio] SegmentTemplate: 84.105 / 3111.909
dash.all.js:11 [58992][indexHandler][audio] SegmentTemplate: 84.906 / 3111.909
dash.all.js:11 [58993][rulesController] [RULES]: playbackTimeRule [Fragment:download,106,MediaSegment,0audio] Default
dash.all.js:11 [59002][fragmentLoader] loaded video:MediaSegment:84.906 (200, 14ms, 1ms)
dash.all.js:11 [59003][rulesController] [RULES]: sameTimeRequestRule [Fragment:download,106,MediaSegment,0,audio] Default
dash.all.js:11 [59014][fragmentLoader] loaded audio:MediaSegment:84.906 (200, 8ms, 1ms)
dash.all.js:11 [59735][scheduleController][video] Stalling Buffer
dash.all.js:11 [59736][bufferController][video] Waiting for more buffer before starting playback.
dash.all.js:11 [59738][scheduleController][audio] Stalling Buffer
dash.all.js:11 [59739][bufferController][audio] Waiting for more buffer before starting playback.
dash.all.js:11 [61695][playbackController] <video> ratechange: 0