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

javascript - Shaka Player + Mux.js 在 React 上直播

我一直在尝试在 Shaka Player 上实现直播。正常Hls.js工作正常,但我似乎无法用它显示的 Shaka Player 来实现它error code 4030

React 上的纯 Hls:

React 上的 Shaka Player,mux.js已在我的index.html类似于shaka 演示中导入

错误日志: 错误日志

0 投票
2 回答
2949 浏览

angular - 在 Chrome 上使用 Shaka Player 播放 HLS m3u8

我遵循适用于 DASH 视频的 shaka 的基本用法,但在尝试加载 M3U8 时会抛出错误代码 4032。

模板是

相关的 Angular 9 依赖项是

并且还安装了(可能没有必要)

在 Safari 上它可以工作,而不是在 Chrome 上。我想我遗漏了一些与 mux.js 相关的东西。

有什么提示吗?非常感谢!

0 投票
3 回答
790 浏览

azure-media-services - Azure 媒体播放器源清单

我们是非常小的初中私人导师,他们设置了一个在线门户,学生可以登录并观看每日的视频讲座。我们有许多视频上传到 Azure 媒体服务,但我们意识到编码成本很高且无法承受。因此,我使用 FFMPEG 对视频进行了编码,并在本地使用 MPBox 生成了 m4s 和音频文件以及 .mpd(元数据)。我已经复制了 Azure blob 存储上的所有文件,并且 blob 存储具有 HTTPS 访问权限。我可以使用 .mpd 作为 Azure 媒体播放器的源 url 吗?例如 Azure 媒体播放器源是 //amssamples.streaming.mediaservices.windows.net/3b970ae0-39d5-44bd-b3a3-3136143d6435/AzureMediaServicesPromo.ism/manifest

但我从 MPDBox 生成的元数据是 https://bb.sourceoftraining.companywebinternet.storage/ssj-ewrrer-2343s-ssssdf23/process_and_benifits.mpd

或者我可以使用的任何其他播放器。我尝试了 Shaka 播放器,但无法显示分辨率和播放速度设置。

0 投票
1 回答
710 浏览

video - Shaka Player 在启动时选择低质量变体

启用 ABR 后,播放会从所选曲目开始,但会快速跳转到 shaka 播放器中的最低比特率曲目:

预期的

当带宽可用时,应选择轨道(轨道 [id=14])并在同一轨道上继续。

我试过的

最初我厌倦了在 manifestparsed 事件上将 abr.defaultBandwidthEstimate 设置为 1927692(轨道 [id=14]),但它选择了下一个轨道(轨道 [id=13])。所以我做了以下找到defaultBandwidthEstimate。

defaultBandwidthEstimate = selectedTrack.bandwidth / abr.bandwidthUpgradeTarget

默认带宽估计 = 1927692 / 0.85

然后,玩家选择了所需的曲目(曲目 [id=14])。

问题

播放从所需的轨道(轨道 [id=14])开始,但在几毫秒后立即回退到最低带宽轨道。我还观察到播放器当前估计的带宽非常低。

切换历史:

所有曲目

0 投票
1 回答
230 浏览

html5-video - 根据容器的大小(不是带宽)在网站上播放 DASH 视频

我有一个不同分辨率的视频(1200x900、800x600、400x300、200x150)和一个 DASH 清单。我尝试使用 shaka 或 video-js 视频播放器将视频嵌入到响应式网页上。到目前为止这有效,但显示的视频更多地取决于带宽而不是正在播放的容器的大小,例如:

  • 容器大小:800x600,低带宽 -> 播放视频 200x150 -> 好的
  • 容器大小:1200x900,高带宽 -> 播放视频 1200x900 -> 好的
  • 容器大小:200x150,高带宽 -> 播放视频 1200x900 -> 不行,因为没必要

我想阻止最后一种情况,因为它增加了我的流量,并且在某些设备/浏览器上,视频的缩小真的很可怕。

这发生在 shaka 和 video-js 上。如何告诉视频播放器不要使用比容器大小更大的视频?或者有没有其他玩家能够做到这一点?

0 投票
1 回答
376 浏览

ffmpeg - 如何使用 ffmpeg 为 Chromecast 创建 DASH VOD?

我需要从网络服务器向移动客户端提供长视频(约 2 小时),客户端应该能够通过Chromecast. 我mpeg-dash为此选择了:视频编码器是h.264(4.1级),音频是aac(尽管我尝试过不同的)。

我已经尝试过ffmpegMP4Box以及其他一些生成视频的工具;大多数时候我成功地在 VLC 或移动客户端(本地)上播放它们,但不是用 Chromecast。

我已经尝试过亚马逊的Elastic Transcoder并且它有效,但它给了我一个大文件,而我需要许多小片段。

CORS 已设置。

Chromecast 远程调试没有多大帮助。

你知道怎么做吗?

0 投票
1 回答
676 浏览

bash - 如何使用 ffmpeg 和 shaka-packager 优化编码和打包视频

我正在尝试为视频大小可能不同的 LMS 网站编码和打包上传的视频。如何编写一个sh脚本,根据其大小转换和打包给定的视频(例如,如果给定的视频分辨率大于720p且小于1080p FFmpeg应转换 2 种尺寸的视频[360p,720p]然后shaka-打包者应该打包它们)。

到目前为止,我有这个脚本,假设输入视频分辨率为 1080p(或 1080p <= size < 4k

上面的脚本首先通过给定的 URL 下载视频,然后在调整大小和打包之前将其转换为适当的视频格式。我假设如果我在缩放之前转换视频会比每次转换和调整它的大小都更好。另外,我假设如果我在一个命令中调整所有分辨率的大小会更快,但我认为这不是 FFmpeg 的工作方式。我在 FFmpeg 的世界里不知道如何更好、更干净、更动态地编写 sh(或 bash)脚本来编码和打包在线流媒体视频。我认为还有其他人有同样的问题或同样的情况。因此,感谢您提供任何帮助、修复和建议

0 投票
1 回答
124 浏览

ios - Shaka Player 嵌入式 Widevine 配置 JSON 缺失

我继承了一个使用 Shaka Player Embedded 播放 Widevine 内容的项目,我想重建 Shaka Player 以将其更新到最新版本。我确实有 Widevine CDM 文件,该应用程序适用于旧版本。

好像我缺少JSON此行中引用的配置文件: ../configure --ios --eme-impl ../../WidevineCDM/shaka_plugin/dev_cdm.json --ide xcode --debug --cpu x64

该应用程序是由第三方为我们构建的,几周以来我根本没有收到谷歌通过官方渠道寻求帮助的任何回复。

0 投票
0 回答
451 浏览

safari - 在 Safari 中解析实时流的 HLS 清单以检索基于时间的元数据

我正在使用原生Safari 播放器实现通过 HLS 流协议流式传输视频。

EXT-X-DATERANGE我的目标是从实时流清单中获取基于时间的元数据(例如)。

据我所知,无法检索此数据,因为流逻辑完全由不公开此数据的 Safari 播放器控制。

目前,我想到了两种可能的解决方案:

  1. 手动下载清单并解析出EXT-X-DATERANGE标签。但是使用这种方法,下载计时器也应该手动管理。当然,对播放列表的请求数量也会增加。
  2. 桌面 Safari 浏览器支持 MSE。这意味着可以完全控制清单检索和解析。有一些很棒的库已经提供了这个功能,例如shaka-playerhls.js. 可以为段(shaka-player)实现自定义响应过滤器或监听Hls.Events.FRAG_CHANGED事件(hls.js),以便访问播放列表。问题是 IOS mobile 中的 Safari 仍然不支持 MSE。因此,无法将此解决方案应用于手机。

是否有任何其他方法可以使用原生 Safari 播放器实现来检索基于时间的元数据(例如 EXT-X-DATERANGE)?

提前非常感谢!

0 投票
1 回答
481 浏览

html5-video - 可以通过操作 bufferBehind 来增加 Shaka 中的搜索范围吗?

我正在尝试使用 Shaka 将实时 DASH 流的回溯时间增加到 15 分钟。默认情况下,流可以从当前时间倒退到 5 分钟。这可以通过指示玩家存储过去 15 分钟的缓冲区来实现吗?我尝试使用 bufferBehind 并将其设置为 900(15 分钟)。这似乎不起作用,并且倒带不会超出搜索范围

这是我正在使用的 DASH Live URL:https ://livesim.dashif.org/livesim/testpic_2s/Manifest.mpd