问题标签 [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 投票
1 回答
242 浏览

apache - 我无法在任何 linux vm 机器上播放受 DRM 保护的破折号视频,但相同的代码正在其他共享托管 apache 服务器上运行

注意:视频 url 使用许可证密钥和所需数据进行签名。相同的代码在 xampp apache 服务器和共享主机中运行,但在 ec2、本地 ubuntu 等 linux vm 机器上无法运行。

控制台错误是:

完整的html代码为:

https://github.com/Azure-Samples/media-services-3rdparty-player-samples/blob/master/src/shaka/index.html

共享托管 apache 服务器上没有出现相同的控制台

0 投票
2 回答
102 浏览

shaka - shaka configure 选择你想玩的表示和适应集

我正在尝试将 shaka-player 配置为从我的清单而不是 SD 中播放 UHD 表示。我的问题是:

  1. 它如何决定播放哪个表示?
  2. 您如何定义要播放的表示形式?
0 投票
1 回答
206 浏览

google-cast - 如何在 google cast 中获取 Widevine 有效载荷(挑战)?

我正在开发自己的自定义接收器应用程序,并且我想播放的流受到 Widevine 的保护,我需要从自己的服务器获取许可证,并且需要传递 content_id 和有效负载。这是我的代码:

我在 Android 上实现了它,实现了我自己的 MediaDrmCallback,并且 KeyRequest 类包含所需的信息,但对象 requestInfo 的参数内容不提供该信息

0 投票
0 回答
53 浏览

python - 如何让 Python 识别 Shaka Streamer?

我根据此处的说明安装了 Shaka Streamer:https ://google.github.io/shaka-streamer/prerequisites.html

但我不能从命令行调用它: python3 shaka-streamer

我得到错误: python3: can't open file 'shaka-streamer': [Errno 2] No such file or directory

我有点困惑,因为它在命令行示例中以这种方式调用:https ://google.github.io/shaka-streamer/overview.html

我的目标是在我的 NodeJS 应用程序中通过命令行调用它,我希望有人能告诉我哪里出错以及如何修复它。

0 投票
1 回答
90 浏览

shaka - 更改 Shaka 播放器区域设置

我正在制作的网站可以选择在德语和英语之间切换显示语言。Shaka 播放器似乎支持本地化切换,但我无法以英语以外的任何方式显示播放器。尝试在新的 shaka.ui.Localization 实例上使用 changeLocale,但它似乎对播放器没有影响。

希望有任何在语言环境之间切换的例子。

0 投票
2 回答
358 浏览

ios - 适用于 iOS 和 Safari 的 FairPlay DRM 配置(无法加载视频)

我在带有 safari 的 fairplay drm + hls 中遇到问题(我使用了 shaka 播放器),它无法加载某些内容。但有时在重新加载页面后它可以工作。非常感谢 ,在此处输入图像描述

0 投票
1 回答
222 浏览

javascript - shaka 播放器从不触发“错误”监听器

我正在将 shaka 播放器集成到我的 Web 应用程序中。我浏览了文档并找到了使用视频清单 url 加载播放器的基本程序。基本程序的链接是基本教程。它加载视频很好。

我需要为玩家实现错误处理。所以我试图了解“错误”事件侦听器将在哪里触发。以下是监听错误的代码。它不再对我触发。

以下是调用但未触发的 Trails: Trail 1:未初始化视频变量。

Trail 2:加载无效的清单 url。

我想在我的程序中实现错误处理。为此,我需要了解何时调用此“错误”侦听器。

0 投票
1 回答
168 浏览

angularjs - 在 AngularJS 指令中包装 shaka-player 不起作用(this.target.addEventListener 不是函数)

我想将shaka-player示例包装在 AngularJS 指令中。

示例播放器本身运行良好,可以播放Akamai 的 CDN 上托管的 Big Buck Bunny的 MPEG-DASH 版本。

但是,当尝试shaka-player在 AngularJS 指令中使用时,player.load(url)失败并显示this.target.addEventListener is not a function.

它还报告TypeError: Cannot read property 'textTracks' of null。(根据浏览器的不同,这些错误的顺序有时会颠倒)

我不知道为什么它可以独立工作,但不能在 AngularJS 指令中工作......

该指令的 HTML 片段如下所示:

指令代码本身几乎是示例代码的复制粘贴。(我还尝试了几种变体来处理承诺而不是async函数。所有的错误都相同。

错误日志

在 MacOS 10.12 上的 Chrome、Safari 和 Firefox 上出现相同的故障。

AngularJS 1.6.9 沙卡播放器 3.1.0

0 投票
1 回答
963 浏览

ffmpeg - FFMPEG/DASH-LL 以不同的速率创建音频和视频块;玩家很困惑(404错误)

我正在尝试从静态文件创建 MPEG-DASH“实时”流来测试各种低延迟模式。FFmpeg 中的 DASH 多路复用器创建两个 AdaptationSet,一个用于视频块,一个用于音频块。

但是,音频和视频块文件的创建速度不同(应该是这样吗?)。即,这里stream0是视频块和stream1音频块。运行几秒钟后,webroot 目录包含:

流不会在任何一个dash.js或 shaka-player 上加载(或播放),并且视频块有很多404 (Not Found)错误。播放器按顺序从stream0 和stream1 请求块,即stream0-001 + stream1-001,然后是stream0-002 + stream1-002,依此类推。

但是由于 stream0 仅从 001 到 004,因此在尝试加载 stream0-005 到 009 时会出现很多 404 错误。

让 FFmpeg 运行一段时间后,差距越来越大。例如,stream0 是 62 到 75,但 stream1 是 174 到 187。此时重新加载播放器页面失败dash.all.debug.js:15615 [2055][FragmentController] No video bytes to push or stream is inactive.并显示 404 错误 stream0块 188(尚不存在!)

在此处输入图像描述

FFmpeg 命令采用自上而下的 DASH 流式传输

并且dash.js播放器代码非常简单:

为了提供UTCTiming清单中的元素,小time.phpURL 从 Web 服务器返回一个 UTC 时间:

(它还显示最新的 stream1/audio 块的 404 错误,这可能是一个不同的问题)

我不确定下一步该尝试什么。任何和建议都非常感谢。

编辑我

@Anonymous Coward提出的更改键间隔的建议大大改善了情况。stream0 和 stream1 的块是同步的,并且具有相同的序列号。

但是,在初始页面加载(不按播放)和播放期间仍然存在许多 404 错误。

我运行watch -n 1 ls -lt <webRootFolder并与浏览器控制台中的错误并排比较。很难比较,但看起来浏览器正在尝试“在播放边缘”获取尚未由 FFmpeg 创建的文件。见下图。

如何指示浏览器在获取边缘块之前再等一会儿?

在此处输入图像描述

编辑二

使用shaka-player而不是dash.js正常播放,没有 404 错误。配置为:

客户

  • macOS 10.12
  • dash.js 最新 3.2.2
  • Chrome 79、Safari 12、FireFox v?

服务器

  • 阿帕奇 2.4.37
  • PHP 7.2.4(仅限时间函数)
  • Centos 8

(供参考,这里是FFmpeg生成的mpd文件)

0 投票
0 回答
22 浏览

casting - Chromecast 网络接收器 + DASH,更喜欢 6ch 音轨

我有一个带有多个音频适配集(各种比特率和通道配置)的 DASH 清单。当通过 shaka 播放时,清单按预期工作,但是当我使用它进行投射时,我最终只能得到 2ch 音频。我试图让网络接收器更喜欢 6ch ac-3 轨道而不是 2ch aac 轨道,但似乎无法通过清单来控制它。接收器中是否需要自定义逻辑?