Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 在引发onratechange事件后,我冻结了仪表板套件(mpd)_Html_Ffmpeg_Dash.js_Bento - Fatal编程技术网

Html 在引发onratechange事件后,我冻结了仪表板套件(mpd)

Html 在引发onratechange事件后,我冻结了仪表板套件(mpd),html,ffmpeg,dash.js,bento,Html,Ffmpeg,Dash.js,Bento,我正在尝试从mp4文件创建自适应流。我在做流媒体方面有相当丰富的经验,并通过Silverlight成功实现了平滑流媒体。我们想要一个适用于HTML5的解决方案。我在追求短跑。下面是我采取的步骤 使用ffmpeg将mp4重新采样为不同的大小 确保使用Bento4s mp4Fragment实用程序正确分割文件 使用Bento4s mp4dash实用程序创建仪表板mpd文件和相关段 我已经做了很多工作来学习这些实用程序,并创建一个我认为可以工作的输出过程。创建可靠的破折号工件。但我似乎做错了什么。下面

我正在尝试从mp4文件创建自适应流。我在做流媒体方面有相当丰富的经验,并通过Silverlight成功实现了平滑流媒体。我们想要一个适用于HTML5的解决方案。我在追求短跑。下面是我采取的步骤

  • 使用ffmpeg将mp4重新采样为不同的大小
  • 确保使用Bento4s mp4Fragment实用程序正确分割文件
  • 使用Bento4s mp4dash实用程序创建仪表板mpd文件和相关段
  • 我已经做了很多工作来学习这些实用程序,并创建一个我认为可以工作的输出过程。创建可靠的破折号工件。但我似乎做错了什么。下面是我运行的命令行示例

    对于第一步,我创建了三个不同的文件。。。对于三种不同的速率和大小。。。(这些可能不是确切的命令行,它们来自旧的notes…但参数值是我确定使用的)

    因此,这就为您提供了需要分段的三个文件。因此,我使用Bento4中的mp4fragment实用程序对它们进行分段。该命令行很简单,因此我不提供示例

    我使用Bento4s mp4dash创建仪表板。像这样的

    "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