问题标签 [shaka]

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 回答
509 浏览

javascript - 如何在 Shaka Player 发出的清单请求中包含自定义标头?

非常感谢您抽出宝贵时间回复。假设我必须按照以下要求播放直播;我怎样才能为浏览器制作一个工作播放器?

清单 URL = "https://live-stream-manifest.mpd"

清单 URL 需要特殊的标头:

HeaderName = "manName1" HeaderValue = "manValue1"

HeaderName = "manName2" HeaderValue = "manValue2"

Widevine 许可证 URL = "https://widevine-license.com"

Widevine 许可证需要特殊的标头:

HeaderName = "licName1" HeaderValue = "licValue1"

HeaderName = "licName2" HeaderValue = "licValue2"

使用上述信息,我制作了以下播放器,但我不知道在哪里放置请求时所需的清单标头。

由于我的编程技能很少,您能否回复适当的播放器代码,包括清单标头,这将非常有帮助,并提前感谢您的宝贵时间。

0 投票
0 回答
31 浏览

variables - 如何在 Shaka Player drm.clearKeys 函数中使用变量?

如何使用 Javascript 将 32 位十六进制代码作为变量传递给 Shaka Player drm.clearKeys 函数?它似乎只接受 32 位十六进制值进行解密,并且无法用变量替换 clearKeys 输入的该值。

0 投票
0 回答
110 浏览

video-streaming - Shaka Player 不适应比特率

我们正在使用默认配置的 Shaka 播放器,这很好 - 但我没有看到任何对较低比特率的适应并且仍然看到缓冲。我们还在开始时暂停,它在第一帧冻结 2 秒,然后有一个速率更改事件并播放。

我已经在播放器中对此进行了操作以更改 baseUrls,因为我们预加载了清单。

这是一个示例 MPD

这是 ABR 的配置

在此处输入图像描述

任何指示如何让视频运行超级流畅和快速?

0 投票
0 回答
105 浏览

java - FFMPEG - 如何将视频直接流式传输到 HLS

我们需要从用户或从调用者到我们的 API 的流中获取视频文件/数据,在处理它时,我们需要使用 HLS 生成实时流

FFMPEG 支持使用以下命令创建 HLS 格式的直播流

来源可以在哪里

  1. 磁盘上的文件 /path/file.mp4
  2. UDP url udp://localhost:port

我们得到了我们需要在这样的函数中编码的字节:

然后我们可以循环输入流并使用UDP将其发送到FFMPEG

但是这种方法有两个我们可以看到的问题

  1. 我们需要使用 udp 与 FFMPEG 通信,并且每次转换都需要一个新端口,并且我们假设我们将同时运行多个转换

  2. 我们看到 ffmpeg 只在流的末尾创建 HLS 播放列表,我们在流过程中要创建什么流

有没有更好的方法将流字节传递给 FFMPEG?

我们在 java 环境中运行,我们像这样启动 FFMPEG:

0 投票
0 回答
38 浏览

html5-video - 如何在 shaka 播放器中创建自定义溢出菜单?

我正在尝试在 Shaka 播放器上做一些自定义 UI。有什么方法可以在 shaka 播放器中创建自定义 OverflowMenu 吗?

0 投票
0 回答
203 浏览

javascript - 如何在Shaka播放器中添加不同的音轨、字幕?

理解一般概念的问题

使用 Shaka 播放器和 HLS 或 DASH 协议时,我需要能够切换音轨

对于 HLS,我们有 .m3u8 播放列表文件,对于 DASH,我们有 MPD 文件

这是一个可以用记事本打开的简单文件

据我了解有关其他音轨的信息,这些文件中包含字幕

例如 MDP 文件

.m3u8 播放列表示例

在播放器中,我们使用一个名为 manifest 的 URL 指向这些文件

HLS https://5b44cf20b0388.streamlock.net:8443/vod/smil:hls-maudios-prod.smil/playlist.m3u8

DASH https://storage.googleapis.com/shaka-demo-as ​​sets/angel-one/dash.mpd

Shaka 播放器使用此信息并有机会启用字幕或切换曲目。

这些文件是否仅在后端创建?或者可以在客户端形成MPD和m3u8?或者还有另一种可能添加不同的音轨和字幕?

0 投票
0 回答
40 浏览

android - Android Cast SDK 嵌入式 MediaTrack 子类型不匹配

我们有一个 React Native Android 应用程序正在生产中,它本质上是流式传输电影。我们最近遇到的问题是,在投射到 Chromecast 设备时,字幕选择不起作用,因为它的子类型设置为UNKNOWN.

当我们第一次发布应用程序时,我很有信心这确实有效。所以我猜想 CAF V3 接收器或 Shaka Player 框架的变化导致了这个问题。

这是我到目前为止发现的:

我发现 RemoteMediaClient 报告的MediaTrack # subtypeSUBTYPE_SUBTITLES之间不匹配。

Android MediaTrack 类期望子类型为SUBTITLES. RemoteMediaClient 使用子类型SUBTITLE(-s) 报告 MediaTrack。

这会导致 Android MediaTrack 类将子类型报告为SUBTYPE_UNKNOWN.

来自 CAF 接收器的媒体轨道:

CAF 媒体轨道

来自 Android 发件人的媒体轨道

RemoteMediaClient 媒体轨道

zzft-1为两个文本轨道设置的子类型属性。

更新

我创建了cast_receiver_framework.js文件的修改版本,并在创建文本轨道的处理程序中进行了小改动。它使用的textTrack#kind是单数的 Shaka 属性。

对于复数版本,它只是大写,但没有验证/更正。我现在所做的更改将 映射到和的textTrack#kind子类型。CAPTIONSSUBTITLES

到目前为止,这种变化似乎奏效了。

0 投票
1 回答
75 浏览

exoplayer - 即使我的 Azure Widevine 许可证已过期,我仍然可以播放内容

Azure Media Service 用于交付 Widevine 许可证,我使用 shaka-packager 和 key-id 和 key-value get from license 对视频进行打包和加密,并输出 MPD 和 MP4 加密视频两种类型的文件。

当我使用 Dash 测试播放器测试加密内容时,一切正常,没有许可证,我无法播放视频。

然后当我覆盖策略并设置 license_duration_seconds = 1800

播放器在 30 分钟后停止并显示“DRM: ​​KeyStatusChange error! -- License has expired”

但是,当我再次单击加载或刷新页面并使用相同的许可证和 MPD URL 时,再次播放相同的内容!

我不确定当我用 shaka-player 打包视频时是否遗漏了什么。

这是预期的行为吗?

0 投票
0 回答
19 浏览

shaka - Shaka Player 显示错误 Shaka Error MANIFEST.HLS_AES_128_ENCRYPTION_NOT_SUPPORTED

我已将 Google Shaka Player 集成到我的 DRM/非 DRM 视频项目中。使用的 Js https://cdnjs.cloudflare.com/ajax/libs/shaka-player/3.3.1/shaka-player.ui.debug.min.js 它显示这个错误Shaka Error MANIFEST.HLS_AES_128_ENCRYPTION_NOT_SUPPORTED

0 投票
0 回答
8 浏览

http-live-streaming - 沙卡玩家在玩 ll-hls 时一直在寻找

我正在使用 shaka 播放器播放我的ll-hls流,除了在 chrome 上没有任何参数enableLowLatency=True,发现 shaka 播放器无法播放我的 ll-hls 流。chrome://media-internals我发现沙卡玩家一直在寻找。日志是:

播放器属性是:

我该如何解决这个问题?