问题标签 [mpeg-dash]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2623 浏览

mpeg-dash - MPEG-DASH 特技模式

有谁知道如何使用 MPEG-DASH 进行技巧模式(以不同的速度快退/快进)?DASH-IF 互操作性点 V3.0 声明这是可能的。

0 投票
1 回答
1781 浏览

mpeg-dash - MPEG-DASH 服务器 mpd 基本 url

我正在尝试在我的本地机器上实现 DASH 播放器,它既是服务器又是客户端。我将mpd和数据集放在本地主机中。我应该如何更改mpd的基本url?

0 投票
2 回答
16308 浏览

ffmpeg - 使用 mp4box 直播短跑内容

我正在尝试使用媒体源扩展 API 将H.264内容流式传输到HTML5 。

以下方法效果很好:

ffmpeg -i rtsp://10.50.1.29/media/video1 -vcodec copy -f mp4 -reset_timestamps 1 -movflags frag_keyframe+empty_moov -loglevel quiet out.mp4

接着: mp4box -dash 1000 -frag 1000 -frag-rap out.mp4

我可以获取MP4Box输出out_dashinit.mp4

但是,这不是直播内容的好方法。

我现在要做的是创建一个单一的管道,以便实时完成,并尽可能减少延迟。使用 FFmpeg,可以将输出重定向到stdout而不是out.mp4抓取内容。我不知道是否可以将 MP4Box 合并到管道中。

  1. MP4Box 可以从不是文件的源中获取输入数据吗?
  2. MP4Box 能否在实时到达时逐步(从文件或其他来源)抓取此类内容?即,如果流停止 1 秒并自动恢复,请稍等片刻。
  3. 同样的问题,但对于输出:它可以输出到不是文件的东西(例如stdout),并且可以逐步这样做,以便每当输出数据准备好时,我就可以将其传输到 Web 客户端,本质上是生成一个永无止境的虚线 MP4。
0 投票
2 回答
414 浏览

manifest - 哪些内容提供商支持 MPEG-DASH

我正在寻找 MPEG-DASH 的真实内容 - 有人知道哪些内容提供商将 mpd 清单用于他们的 Vod/自适应流媒体吗?

0 投票
1 回答
5403 浏览

youtube - Youtube Stats for Nerds:“DASH: yes”背后的 (137/140) 代表什么?

如果您右键单击视频并选择“书呆子的统计数据”,Youtube 会显示一些或多或少的信息。不幸的是,我找不到显示的字段的任何文档。

根据您的配置,它可能是使用 MPEG Dash 流式传输的,它看起来类似于以下屏幕截图。但是“(137/140)”代表什么?

书呆子的 Youtube 统计数据

PS:如果有人想知道:“编解码器”字符串似乎是由RFC6381指定的

0 投票
3 回答
6121 浏览

ffmpeg - 在 FFMPEG 中创建分段 MP4 的刷新和延迟问题

我正在使用以下命令为 html5 流式传输创建一个分段的 mp4:

  1. “-i rtsp://172.20.28.52:554/h264”,因为源是来自 ip 摄像机的 rtp 数据包流中的 h264。为了测试起见,相机设置GOP为1(即所有帧都是关键帧)
  2. “-vcodec 复制”因为我不需要转码,只需要重新混合到 mp4。
  3. "-movflags empty_moov+default_base_moof+frag_keyframe" 根据媒体源扩展规范创建分段 mp4。
  4. 最后的“-”以便将 mp4 输出到标准输出。我正在获取输出并通过网络套接字将其发送到网络客户端。

一切运行良好,期待我试图解决的延迟问题。如果我每次从标准输出输入数据时都在记录,并带有到达的时间戳,我会得到以下输出:

16/06/2015 15:40:45.239 得到数据大小 = 24

16/06/2015 15:40:45.240 得到数据大小 = 7197

16/06/2015 15:40:45.241 得到数据大小 = 32768

16/06/2015 15:40:45.241 得到数据大小 = 4941

16/06/2015 15:40:45.241 得到数据大小 = 12606

16/06/2015 15:40:45.241 得到数据大小 = 6345

16/06/2015 15:40:45.241 得到数据大小 = 6339

16/06/2015 15:40:45.242 得到数据大小 = 6336

16/06/2015 15:40:45.242 得到数据大小 = 6361

16/06/2015 15:40:45.242 得到数据大小 = 6337

16/06/2015 15:40:45.242 得到数据大小 = 6331

16/06/2015 15:40:45.242 得到数据大小 = 6359

16/06/2015 15:40:45.243 得到数据大小 = 6346

16/06/2015 15:40:45.243 得到数据大小 = 6336

16/06/2015 15:40:45.243 得到数据大小 = 6338

16/06/2015 15:40:45.243 得到数据大小 = 6357

16/06/2015 15:40:45.243 得到数据大小 = 6357

16/06/2015 15:40:45.243 得到数据大小 = 6322

16/06/2015 15:40:45.243 得到数据大小 = 6359

16/06/2015 15:40:45.244 得到数据大小 = 6349

16/06/2015 15:40:45.244 得到数据大小 = 6353

16/06/2015 15:40:45.244 得到数据大小 = 6382

16/06/2015 15:40:45.244 得到数据大小 = 6403

16/06/2015 15:40:45.304 得到数据大小 = 6393

16/06/2015 15:40:45.371 得到数据大小 = 6372

16/06/2015 15:40:45.437 得到数据大小 = 6345

16/06/2015 15:40:45.504 得到数据大小 = 6352

16/06/2015 15:40:45.571 得到数据大小 = 6340

16/06/2015 15:40:45.637 得到数据大小 = 6331

16/06/2015 15:40:45.704 得到数据大小 = 6326

16/06/2015 15:40:45.771 得到数据大小 = 6360

16/06/2015 15:40:45.838 得到数据大小 = 6294

16/06/2015 15:40:45.904 得到数据大小 = 6328

16/06/2015 15:40:45.971 得到数据大小 = 6326

16/06/2015 15:40:46.038 得到数据大小 = 6326

16/06/2015 15:40:46.105 得到数据大小 = 6340

16/06/2015 15:40:46.171 得到数据大小 = 6341

16/06/2015 15:40:46.238 得到数据大小 = 6332

如您所见,前 23 行(包含约 1.5 秒视频的数据)几乎立即到达,然后每 2 行连续行之间的延迟约为 70 毫秒,这是有道理的,因为视频是每秒 15 帧。此行为引入了大约 1.5 秒的延迟。

这看起来像是一个刷新问题,因为我看不出 ffmpeg 需要在内存中保存前 23 帧的任何理由,特别是因为每一帧都是它自己在 mp4 中的片段。但是,我找不到任何可以使 ffmpeg 更快地刷新这些数据的方法。

有人有建议吗?

我想指出,这是对此问题的后续问题: Live streaming dash content using mp4box

0 投票
0 回答
1138 浏览

samsung-smart-tv - 三星电视 mpeg-dash 交付

我正在编写一个新应用程序来向三星电视提供内容我正在使用应用程序框架和 avplay 播放器。

我们使用的内容是用 Mpeg-Dash 包裹的 H.264

我已遵循下面提供的文档

三星 PlayReady 文档

我在下面提供了一个playerWrapper

JSFiddle

此类从主 app.js 文件初始化,该文件仅遵循此工作流程

  1. 调用 playerWrapper 初始化
  2. 设置许可证 url
  3. 设置内容网址
  4. 设置令牌
  5. 打电话玩

看来,当使用文档中描述的 PlayReady 插件或 SetPlayerProperty 方法时,电视不会调用许可证服务器。

查看播放器规格,我可以看到 Mpeg-Dash 和 H.264 都受支持。

播放器规格

我的问题是

  1. 我能做些什么来解决这个问题?
  2. 有没有人看过这个错误的文档,好像我至少可以得到一个起点?
0 投票
1 回答
1148 浏览

ffmpeg - 我想将相机视频流上传到 Amazon S3 并将其下载到 Android 手机。我对此完全陌生。我怎样才能做到这一点?

我真的很笨,对 RTP/SIP 很陌生。是否有建议将视频从连接到微处理器的摄像头上传到云端的堆栈?我看到的所有东西之间有什么区别 - MPEG DASH、Live555、ffmpeg 等等......?

WhatsApp 或 Dropcam 如何传输实时视频?

0 投票
1 回答
3956 浏览

mpeg-dash - MP4 Box - 初始化段、基本 URL 和独立 MPD

我有一个以多种分辨率编码的原始视频及其相关比特率:

我使用 GPAC MP4 Box 将这些内容分割成多个片段并创建 MPD 文件,如下所示:

我获得了以下清单文件:(它不完整)

但是,我有几个问题:

  • 首先,我认为每个表示都应该有一个初始化段,它将列在 SegmentList 的第一个位置。我该怎么做?

  • 其次,在我的例子中,所有段 (.m4s)、初始化段 (.mp4) 和清单文件 (.mpd) 都存储在服务器的同一位置。据此,它不是必需的 Base-URL 元素吗?

  • 在我看到的其他 DASH 序列中,每个表示的所有段都存储在一个独立的文件夹中,与其关联的初始化段和该表示的清单文件一起存储。然后,有一个全球 MPD。我必须使用 MP4 Box 的哪些参数才能做到这一点?

谢谢!

0 投票
1 回答
2514 浏览

mpeg-dash - 如何实现 mpeg-dash 实时播放列表?

我正在为实时流实现 mpeg-dash 视频服务器,

分块流并将块添加到 mpd - 有效,请参见示例

但是当我尝试实现滑动播放列表时

(例如将有 5 个块,新块将替换旧块。目前我只打印更新的 SegmentTimeline 而不更改任何其他值。)

播放器在 .mpd 刷新后停止播放。

分段时间 - 是流的实际时间线。(即与 .m4* 文件相同)

我需要为带有滑动播放列表的实时视频实现哪些属性/元素?