问题标签 [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.
mpeg-dash - MPEG-DASH 特技模式
有谁知道如何使用 MPEG-DASH 进行技巧模式(以不同的速度快退/快进)?DASH-IF 互操作性点 V3.0 声明这是可能的。
mpeg-dash - MPEG-DASH 服务器 mpd 基本 url
我正在尝试在我的本地机器上实现 DASH 播放器,它既是服务器又是客户端。我将mpd和数据集放在本地主机中。我应该如何更改mpd的基本url?
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 合并到管道中。
- MP4Box 可以从不是文件的源中获取输入数据吗?
- MP4Box 能否在实时到达时逐步(从文件或其他来源)抓取此类内容?即,如果流停止 1 秒并自动恢复,请稍等片刻。
- 同样的问题,但对于输出:它可以输出到不是文件的东西(例如
stdout
),并且可以逐步这样做,以便每当输出数据准备好时,我就可以将其传输到 Web 客户端,本质上是生成一个永无止境的虚线 MP4。
manifest - 哪些内容提供商支持 MPEG-DASH
我正在寻找 MPEG-DASH 的真实内容 - 有人知道哪些内容提供商将 mpd 清单用于他们的 Vod/自适应流媒体吗?
youtube - Youtube Stats for Nerds:“DASH: yes”背后的 (137/140) 代表什么?
如果您右键单击视频并选择“书呆子的统计数据”,Youtube 会显示一些或多或少的信息。不幸的是,我找不到显示的字段的任何文档。
根据您的配置,它可能是使用 MPEG Dash 流式传输的,它看起来类似于以下屏幕截图。但是“(137/140)”代表什么?
PS:如果有人想知道:“编解码器”字符串似乎是由RFC6381指定的
ffmpeg - 在 FFMPEG 中创建分段 MP4 的刷新和延迟问题
我正在使用以下命令为 html5 流式传输创建一个分段的 mp4:
- “-i rtsp://172.20.28.52:554/h264”,因为源是来自 ip 摄像机的 rtp 数据包流中的 h264。为了测试起见,相机设置GOP为1(即所有帧都是关键帧)
- “-vcodec 复制”因为我不需要转码,只需要重新混合到 mp4。
- "-movflags empty_moov+default_base_moof+frag_keyframe" 根据媒体源扩展规范创建分段 mp4。
- 最后的“-”以便将 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
samsung-smart-tv - 三星电视 mpeg-dash 交付
我正在编写一个新应用程序来向三星电视提供内容我正在使用应用程序框架和 avplay 播放器。
我们使用的内容是用 Mpeg-Dash 包裹的 H.264
我已遵循下面提供的文档
我在下面提供了一个playerWrapper类
此类从主 app.js 文件初始化,该文件仅遵循此工作流程
- 调用 playerWrapper 初始化
- 设置许可证 url
- 设置内容网址
- 设置令牌
- 打电话玩
看来,当使用文档中描述的 PlayReady 插件或 SetPlayerProperty 方法时,电视不会调用许可证服务器。
查看播放器规格,我可以看到 Mpeg-Dash 和 H.264 都受支持。
我的问题是
- 我能做些什么来解决这个问题?
- 有没有人看过这个错误的文档,好像我至少可以得到一个起点?
ffmpeg - 我想将相机视频流上传到 Amazon S3 并将其下载到 Android 手机。我对此完全陌生。我怎样才能做到这一点?
我真的很笨,对 RTP/SIP 很陌生。是否有建议将视频从连接到微处理器的摄像头上传到云端的堆栈?我看到的所有东西之间有什么区别 - MPEG DASH、Live555、ffmpeg 等等......?
WhatsApp 或 Dropcam 如何传输实时视频?
mpeg-dash - MP4 Box - 初始化段、基本 URL 和独立 MPD
我有一个以多种分辨率编码的原始视频及其相关比特率:
我使用 GPAC MP4 Box 将这些内容分割成多个片段并创建 MPD 文件,如下所示:
我获得了以下清单文件:(它不完整)
但是,我有几个问题:
首先,我认为每个表示都应该有一个初始化段,它将列在 SegmentList 的第一个位置。我该怎么做?
其次,在我的例子中,所有段 (.m4s)、初始化段 (.mp4) 和清单文件 (.mpd) 都存储在服务器的同一位置。据此,它不是必需的 Base-URL 元素吗?
在我看到的其他 DASH 序列中,每个表示的所有段都存储在一个独立的文件夹中,与其关联的初始化段和该表示的清单文件一起存储。然后,有一个全球 MPD。我必须使用 MP4 Box 的哪些参数才能做到这一点?
谢谢!
mpeg-dash - 如何实现 mpeg-dash 实时播放列表?
我正在为实时流实现 mpeg-dash 视频服务器,
分块流并将块添加到 mpd - 有效,请参见示例
但是当我尝试实现滑动播放列表时
(例如将有 5 个块,新块将替换旧块。目前我只打印更新的 SegmentTimeline 而不更改任何其他值。)
播放器在 .mpd 刷新后停止播放。
分段时间 - 是流的实际时间线。(即与 .m4* 文件相同)
我需要为带有滑动播放列表的实时视频实现哪些属性/元素?