问题标签 [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 回答
1498 浏览

video-streaming - 在大多数浏览器和设备上保持一致的自适应流媒体策略

我已经研究了很多关于视频流和在网络上播放的当前状态。我正在发布我总结的内容以及我认为应该遵循的策略,以支持跨大多数设备和浏览器的自适应流媒体。如果我正在制定的策略有任何重大漏洞/改进,我只是想从社区获得反馈。

概括

  • 为了支持当今大多数浏览器以 html<video>元素播放视频,我们需要以至少 3 种格式 WEBM、OGG 和 MP4 对视频进行编码
  • 要为视频点播服务提供自适应流媒体,可用的选项有 MPEG-DASH、Apple 的 HLS、Microsoft 的 Smooth Streaming 和 Adob​​e 的 HDS
  • 最初我更喜欢使用 MPEG-DASH,因为它是一种类似于 HDS、HLS 和平滑流的开放标准,并且被发明为提供一个通用平台来在任何浏览器和操作系统上提供音频/视频内容。
  • 但截至目前,在 iOS 上运行 Safari 和在 Mac 上运行 Safari 的 Apple 设备并不完全支持 MPEG-DASH 标准,因为 Apple 尚未支持 MPEG-DASH 所基于的 html5 的媒体源扩展 API。
  • 所以我要实现 MPEG-DASH(对于非苹果设备)+ HLS(对于苹果设备)
  • 这意味着我必须在服务器端生成.mpd(由 mpeg-dash 使用)和.m3u8(由 HLS 使用)文件,然后将其提供给客户端。我在服务器端使用 Node.js 进行编码。

现在据我所知,当使用 mpeg-dash 时,它的基本作用是从源文件和包含关于将哪个流发送到客户端的描述/规则的配置文件创建具有不同比特率的各种不同媒体文件取决于带宽。

相同的逻辑适用于 HLS,但它创建的配置文件具有与 mpeg-dash 不同的扩展名。

如果我计划支持具有 3 种不同分辨率的 3 比特率,例如 1020*720、800*600、400*300 的视频,那么我需要为我将要支持的 3 种格式(即 WEBM、 OGG, MP4)

因此,对于客户端上传的任何一个视频,我总共需要生成 3*3 = 9 个视频,同时生成一个 .mpd 和 .m3u8 文件以支持非 Apple 和 Apple 设备。

这似乎是一个好习惯吗?或者我是否缺少跨浏览器自适应流媒体解决方案?

欢迎提示/建议/建议。

谢谢 !

0 投票
0 回答
214 浏览

google-chrome - 将强应用到缓冲区规则。退出切换比特率 MPEG DASH

我正在使用 mpeg dash 对来自我的服务器的视频进行自适应比特率流传输。

我使用 ffmpeg 和 MP4Box 从我的源 .mp4 生成 4 个不同质量的视频文件

生成的 .mpd 文件具有以下代码

我正在使用 video.js 和 dash.js 在客户端播放 mpeg dash 内容。问题是当我从 chrome 开发工具模拟网络条件时,视频无法完美播放。

它有时有效,但对其他人无效。例如,流以 400kbps 的比特率开始,然后检测到足够的可用带宽,因此它切换到 2500kbps。然后,当我再次将带宽降低到 400kbps 时,视频会在某个时间点冻结​​。

有时,当它尝试切换流时,视频在播放的最初几秒钟后会冻结。我认为在通过 ffmpeg 生成视频文件或通过 MP4Box 生成 .mpd 文件时可能缺少一些命令行参数。

以下是我用于 ffmpeg 和 MP4Box 的命令

此外,当我通过 MP4Box 生成 .mpd 文件时,我在控制台中收到以下警告

每当视频停止播放时,chrome 控制台都会有这些日志

我不知道为什么缓冲区会干涸并且它会停止切换比特率。

在这个过程中有什么主要是错误的吗?

0 投票
0 回答
117 浏览

mpeg-dash - 如何使用 MPEG-DASH 将媒体文件分割成片段?

MPEG-DASH 背后的基本思想是将媒体文件分割成可以以不同比特率编码的片段(例如低、中和最佳)。

我是否需要提前离线执行此操作,还是需要某种流式 HTTP 服务器来读取文件系统中的所有内容并实时编码?

0 投票
1 回答
165 浏览

http-live-streaming - 是否有任何详细的教程或案例研究用于使用带有 HLS 回退的 MPEG-DASH 构建在线视频交付服务?

是否有任何详细的教程或案例研究用于使用带有 HLS 回退的 MPEG-DASH 构建在线视频交付服务?我在这里和那里找到小块,但我不能把它们放在一起:(

0 投票
1 回答
267 浏览

qt - 构建 qtsampleplayer 时出错

在构建 qtsampleplayer 时出现以下错误:

尝试了几个选项,例如在命令行中给出 libz.so 的路径,但没有帮助

问候马扬克

0 投票
2 回答
2174 浏览

javascript - 带有 MPEG DASH 的 JwPlayer

我正在尝试使具有 mpeg dash 支持的 jwplayer 正常工作,但我遇到了一些麻烦。

页面加载时遇到以下错误:

播放器加载错误:无可播放源。

jwplayer播放器代码如下:

我将不胜感激任何反馈,以帮助我解决此问题。

0 投票
1 回答
1159 浏览

apache - 播放 DashCast 直播时出现问题

我正在尝试使用 DashCast 捕获桌面并将其实时流式传输到 Apache 服务器中。当我按需执行时,它可以正确捕获和播放,但是当我实时执行然后玩它时,MP4Client它只显示黑屏,在捕获它时甚至没有收到任何错误消息。我正在使用的命令是:

然后我玩:

这导致以下输出:

那么我做错了什么?客户端显然正确连接到服务器,打开播放器,但屏幕上没有显示任何内容。我正在使用带有 GPAC 版本 0.5.0 的 Ubuntu 14.04。

0 投票
1 回答
65340 浏览

download - Given a MPEG DASH .mpd URL, is that possible to down all media segments through youtube_dl?

I'm looking for a MPEG DASH downloader and youtube_dl just hit on me.

Given a .mpd URL, is that possible to use youtube_dl to download all media segments then?

0 投票
1 回答
1209 浏览

php - 具有安全 S3 URL 的 MPEG-Dash

我正在尝试使用 MPEG-Dash 设置视频服务器,其中视频内容托管在 S3 存储桶上。在本地托管(nginx 服务器)时,它工作正常,但是当我更改 MPD 文件以指向 S3 存储桶时,它不起作用。

这就是我正在做的事情:

--首先我将视频转换为多比特率 MP4

--然后我用 MP4Box 冲刺它

--这导致以下MPD

当我编辑 MPD 以具有动态 URL 时:

--PHP源码--

--回显数据--

我在 MPD 文件中得到无效内容。我环顾四周并尝试将 BaseURL 移动到 XML 的 Adaptation、Representation 和其他节,但似乎没有任何效果。

这样做的正确方法是什么?

0 投票
2 回答
19237 浏览

git - 在 VLC 上播放 MPEG-DASH

我看到 VLC 应该从 2.1 版开始支持 MPEG-DASH 播放,但我似乎无法让它播放任何 DASH 内容,无论是在线找到的示例媒体还是我自己编码的视频。我已经在基于浏览器的播放器中成功测试了这些视频清单,但我需要流式传输视频并从没有显示器的计算机上收集带宽数据。

当我尝试从命令行流式传输清单时,看起来 vlc 尝试使用 lua 过滤器解析清单(因为我认为文件是通过 http 来的),但我在任何地方都没有看到任何提到 DASH 和 vlc无法播放文件。我没有设置测试台,但如果有人愿意,我可以获得详细的输出。

寻找解决方案把我带到了这里,但是当我从 2.1.0 版(git checkout tags/2.1.0-git克隆后)查看 vlc 源时,他们提到的要更改的行不在他们提到的文件中。任何帮助将不胜感激,这个问题已经阻碍了我一个多星期的研究。