问题标签 [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.
apache - 我无法在任何 linux vm 机器上播放受 DRM 保护的破折号视频,但相同的代码正在其他共享托管 apache 服务器上运行
注意:视频 url 使用许可证密钥和所需数据进行签名。相同的代码在 xampp apache 服务器和共享主机中运行,但在 ec2、本地 ubuntu 等 linux vm 机器上无法运行。
控制台错误是:
完整的html代码为:
共享托管 apache 服务器上没有出现相同的控制台
shaka - shaka configure 选择你想玩的表示和适应集
我正在尝试将 shaka-player 配置为从我的清单而不是 SD 中播放 UHD 表示。我的问题是:
- 它如何决定播放哪个表示?
- 您如何定义要播放的表示形式?
google-cast - 如何在 google cast 中获取 Widevine 有效载荷(挑战)?
我正在开发自己的自定义接收器应用程序,并且我想播放的流受到 Widevine 的保护,我需要从自己的服务器获取许可证,并且需要传递 content_id 和有效负载。这是我的代码:
我在 Android 上实现了它,实现了我自己的 MediaDrmCallback,并且 KeyRequest 类包含所需的信息,但对象 requestInfo 的参数内容不提供该信息
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 应用程序中通过命令行调用它,我希望有人能告诉我哪里出错以及如何修复它。
shaka - 更改 Shaka 播放器区域设置
我正在制作的网站可以选择在德语和英语之间切换显示语言。Shaka 播放器似乎支持本地化切换,但我无法以英语以外的任何方式显示播放器。尝试在新的 shaka.ui.Localization 实例上使用 changeLocale,但它似乎对播放器没有影响。
希望有任何在语言环境之间切换的例子。
javascript - shaka 播放器从不触发“错误”监听器
我正在将 shaka 播放器集成到我的 Web 应用程序中。我浏览了文档并找到了使用视频清单 url 加载播放器的基本程序。基本程序的链接是基本教程。它加载视频很好。
我需要为玩家实现错误处理。所以我试图了解“错误”事件侦听器将在哪里触发。以下是监听错误的代码。它不再对我触发。
以下是调用但未触发的 Trails: Trail 1:未初始化视频变量。
Trail 2:加载无效的清单 url。
我想在我的程序中实现错误处理。为此,我需要了解何时调用此“错误”侦听器。
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
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.php
URL 从 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文件)
casting - Chromecast 网络接收器 + DASH,更喜欢 6ch 音轨
我有一个带有多个音频适配集(各种比特率和通道配置)的 DASH 清单。当通过 shaka 播放时,清单按预期工作,但是当我使用它进行投射时,我最终只能得到 2ch 音频。我试图让网络接收器更喜欢 6ch ac-3 轨道而不是 2ch aac 轨道,但似乎无法通过清单来控制它。接收器中是否需要自定义逻辑?