问题标签 [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.
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"
使用上述信息,我制作了以下播放器,但我不知道在哪里放置请求时所需的清单标头。
由于我的编程技能很少,您能否回复适当的播放器代码,包括清单标头,这将非常有帮助,并提前感谢您的宝贵时间。
variables - 如何在 Shaka Player drm.clearKeys 函数中使用变量?
如何使用 Javascript 将 32 位十六进制代码作为变量传递给 Shaka Player drm.clearKeys 函数?它似乎只接受 32 位十六进制值进行解密,并且无法用变量替换 clearKeys 输入的该值。
java - FFMPEG - 如何将视频直接流式传输到 HLS
我们需要从用户或从调用者到我们的 API 的流中获取视频文件/数据,在处理它时,我们需要使用 HLS 生成实时流
FFMPEG 支持使用以下命令创建 HLS 格式的直播流
来源可以在哪里
- 磁盘上的文件 /path/file.mp4
- UDP url udp://localhost:port
我们得到了我们需要在这样的函数中编码的字节:
然后我们可以循环输入流并使用UDP将其发送到FFMPEG
但是这种方法有两个我们可以看到的问题
我们需要使用 udp 与 FFMPEG 通信,并且每次转换都需要一个新端口,并且我们假设我们将同时运行多个转换
我们看到 ffmpeg 只在流的末尾创建 HLS 播放列表,我们在流过程中要创建什么流
有没有更好的方法将流字节传递给 FFMPEG?
我们在 java 环境中运行,我们像这样启动 FFMPEG:
html5-video - 如何在 shaka 播放器中创建自定义溢出菜单?
我正在尝试在 Shaka 播放器上做一些自定义 UI。有什么方法可以在 shaka 播放器中创建自定义 OverflowMenu 吗?
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?或者还有另一种可能添加不同的音轨和字幕?
android - Android Cast SDK 嵌入式 MediaTrack 子类型不匹配
我们有一个 React Native Android 应用程序正在生产中,它本质上是流式传输电影。我们最近遇到的问题是,在投射到 Chromecast 设备时,字幕选择不起作用,因为它的子类型设置为UNKNOWN
.
当我们第一次发布应用程序时,我很有信心这确实有效。所以我猜想 CAF V3 接收器或 Shaka Player 框架的变化导致了这个问题。
这是我到目前为止发现的:
我发现 RemoteMediaClient 报告的MediaTrack # subtype和SUBTYPE_SUBTITLES之间不匹配。
Android MediaTrack 类期望子类型为SUBTITLES
. RemoteMediaClient 使用子类型SUBTITLE
(-s) 报告 MediaTrack。
这会导致 Android MediaTrack 类将子类型报告为SUBTYPE_UNKNOWN
.
来自 CAF 接收器的媒体轨道:
来自 Android 发件人的媒体轨道
zzft
是-1
为两个文本轨道设置的子类型属性。
更新
我创建了cast_receiver_framework.js文件的修改版本,并在创建文本轨道的处理程序中进行了小改动。它使用的textTrack#kind
是单数的 Shaka 属性。
对于复数版本,它只是大写,但没有验证/更正。我现在所做的更改将 映射到和的textTrack#kind
子类型。CAPTIONS
SUBTITLES
到目前为止,这种变化似乎奏效了。
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 打包视频时是否遗漏了什么。
这是预期的行为吗?
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
http-live-streaming - 沙卡玩家在玩 ll-hls 时一直在寻找
我正在使用 shaka 播放器播放我的ll-hls
流,除了在 chrome 上没有任何参数enableLowLatency=True
,发现 shaka 播放器无法播放我的 ll-hls 流。chrome://media-internals
我发现沙卡玩家一直在寻找。日志是:
播放器属性是:
我该如何解决这个问题?