当前位置: 首页 > 知识库问答 >
问题:

js不播放nginx rtmp模块中的mpeg-dash

钦英发
2023-03-14

我用rtmp plagin有nginx,我用Dash.js播放器有测试页。我需要流MPEG-Dash。我用ffmpeg流,nginx处理流,dash播放器尝试播放流,但dash.js开始循环,每5秒请求一次。MPD文件,什么也不显示。

我是用VLC播放器进行测试,它的工作很完美,这意味着Dash.js中的问题

<!doctype html>
<html>
    <head>
        <title>Dash.js Rocks</title>
        <style>
            video {
                width: 640px;
                height: 360px;
            }
        </style>
    </head>
    <body>
        <div>
            <video id="videoPlayer" controls></video>
        </div>
        <script src="dash.all.min.js"></script>
        <script>
            (function(){
                var url = "http://localhost:8080/dash/test.mpd";
                var player = dashjs.MediaPlayer().create();
                player.initialize(document.querySelector("#videoPlayer"), url, true);
            })();
        </script>
    </body>
</html>

这是来自破折号流目录的文件:

-rw-r--r--    1 nginx    nginx       120354 Jun 12 14:00 test-0.m4a
-rw-r--r--    1 nginx    nginx       526439 Jun 12 14:00 test-0.m4v
-rw-r--r--    1 nginx    nginx          599 Jun 12 14:00 test-init.m4a
-rw-r--r--    1 nginx    nginx          662 Jun 12 14:00 test-init.m4v
-rw-r--r--    1 nginx    nginx       292795 Jun 12 14:00 test-raw.m4a
-rw-r--r--    1 nginx    nginx       284084 Jun 12 14:00 test-raw.m4v
-rw-r--r--    1 nginx    nginx         2063 Jun 12 14:00 test.mpd

这是test.mpd:

<?xml version="3.0"?>
<MPD
    type="dynamic"
    xmlns="urn:mpeg:dash:schema:mpd:2011"
    availabilityStartTime="2016-06-12T13:59:55+00:00"
    availabilityEndTime="2016-06-12T14:00:31+00:00"
    minimumUpdatePeriod="PT5S"
    minBufferTime="PT5S"
    timeShiftBufferDepth="PT0H0M0.00S"
    suggestedPresentationDelay="PT10S"
    profiles="urn:hbbtv:dash:profile:isoff-live:2012,urn:mpeg:dash:profile:isoff-live:2011"
    xmlns:xsi="http://www.w3.org/2011/XMLSchema-instance"
    xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd">
  <Period start="PT0S" id="dash">
    <AdaptationSet
        id="1"
        segmentAlignment="true"
        maxWidth="1380"
        maxHeight="800"
        maxFrameRate="15">
      <Representation
          id="test_H264"
          mimeType="video/mp4"
          codecs="avc1.640020"
          width="1380"
          height="800"
          frameRate="15"
          sar="1:1"
          startWithSAP="1"
          bandwidth="0">
        <SegmentTemplate
            presentationTimeOffset="0"
            timescale="1000"
            media="test-$Time$.m4v"
            initialization="test-init.m4v">
          <SegmentTimeline>
             <S t="0" d="6000"/>
             <S t="6000" d="16666"/>
             <S t="22666" d="11000"/>
             <S t="33666" d="2713"/>
          </SegmentTimeline>
        </SegmentTemplate>
      </Representation>
    </AdaptationSet>
    <AdaptationSet
 id="2"
        segmentAlignment="true">
      <AudioChannelConfiguration
          schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011"
          value="1"/>
      <Representation
          id="test_AAC"
          mimeType="audio/mp4"
          codecs="mp4a.40.2"
          audioSamplingRate="44100"
          startWithSAP="1"
          bandwidth="156000">
        <SegmentTemplate
            presentationTimeOffset="0"
            timescale="1000"
            media="test-$Time$.m4a"
            initialization="test-init.m4a">
          <SegmentTimeline>
             <S t="0" d="6000"/>
             <S t="6000" d="16666"/>
             <S t="22666" d="11000"/>
             <S t="33666" d="2713"/>
          </SegmentTimeline>
        </SegmentTemplate>`enter code here`
      </Representation>
    </AdaptationSet>
  </Period>
</MPD>

共有1个答案

施振海
2023-03-14

在https://www.NGINX.com/blog/scalable-live-video-streaming-nginx-plus-bitmovin有一个很好的NGINX+DASH教程,但是它使用的是bitmovin播放器而不是DASH.js。我假设DASH.js没有实现NGINX破折号输出使用的某些特性。你也可以测试沙加播放器?。

 类似资料:
  • 我一直试图弄清楚如何使用html5视频元素直接在chrome(版本30.0.1599.69m)中播放mpeg-dash xml文件。类似的东西 mpd文件是用mp4box创建的,视频编解码器是MP4。 但这显然不是正确的方法。我知道“dash.js”项目——但为什么浏览器不能处理所有细节,而他们已经添加了对mpeg dash播放的支持? 有没有办法在不使用javascript的情况下播放mpeg短

  • 概述 音频播放模块兼容全系列makeblock主控板,内置语音解码芯片,可以播放音乐及录音。本模块接口是白色色标,说明是I2C信号控制,需要连接到主板上带有白色标识接口。插入TF内存卡即可感受音乐的快乐,使用起来非常方便。 技术规格 工作电压:5V DC 麦克风灵敏度(1Khz):50-54dB 麦克风阻抗:2.2 kΩ 麦克风信噪比:58 db 喇叭额定功率:1W 喇叭额定阻抗:8±15%Ω 通

  • 我正在寻找一个开源媒体播放器或Android应用编程接口,可以支持MPEG-DASH及其修正案,如平铺视频的空间关系描述(SRD)功能。有什么建议吗? 我以为Android的API支持DASH,但显然它不支持。他们提倡一种叫做ExoPlayer(http://google.github.io/ExoPlayer/)的播放器,它支持DASH、平滑流等等。我想知道它是否支持DASH的所有功能,如SRD

  • 所以我正在为我的MPEG-DASH视频生成一个非常简单的MPD清单文件,但我无法找出问题所在。这是我当前的清单文件 这个MPD文件使用我能找到的每个验证器进行验证。出于安全原因,这些段的URL被隐藏,但它们都是开放的、公开的,并且可以单独查看。但当我试图运行清单文件时,这取决于我得到的玩家。“在清单中找不到支持的源”,或者干脆什么都没发生。 你知道这怎么可能是错的吗?我目前正在使用媒体url作为绝

  • 需要调试段划线文件的帮助吗 输入是带有这些细节的MP4。这是从摄像机录制的,摄像机的输出是mkv,我们通过adobe编辑音频后转换为MP4 大小:7.51 GB帧率:25帧/秒 数据速率:25326kbps 总比特率:25525kbps 使用此命令将其转换为另一个mp4 输出视频已被删除 fps:25 数据速率:761kbps 比特率:761kbps 然后,通过MP4Box创建了分段破折号 生成的

  • 我已经使用ffmpeg为我的视频创建了一个MPD文件,我可以在我的电脑上播放和观看它,使用:http://dashplayer.azurewebsites.net/ 现在我想确保它在andoid和IOS上正常工作和播放,有人能告诉我如何在android和IOS上测试这个文件吗?