问题标签 [fairplay]

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

avfoundation - 是什么导致 AVAssetCache 报告完全下载的资产无法离线播放?

我正在开发一个 iOS 应用程序,它通过 HLS 播放 FairPlay 加密的音频,并支持下载和流式传输。而且在飞行模式下我无法播放下载的内容。AVURLAsset如果我在下载完成时从本地 URL创建一个,asset.assetCache.isPlayableOffline返回NO,当我尝试以飞行模式播放时,它仍然会尝试请求 .m3u8 播放列表文件之一。

我的主播放列表如下所示:

流播放列表如下所示:

下载资产:

在代表的URLSession:assetDownloadTask:didFinishDownloadingToURL:

在代表的URLSession:task:didCompleteWithError:

除了资产缓存报告无法离线播放外,下载不会出错。但是,如果您切换到飞行模式并尝试播放下载的资产,它会正确地向资源加载器委托请求一个密钥(我使用的是持久密钥,因此离线工作正常),然后尝试发出请求media-1/stream.m3u8.

有什么我没有在这里处理的问题吗?播放列表文件应该以某种方式有所不同吗?我缺少的任务或资产是否有一些财产?

0 投票
0 回答
139 浏览

audio - 如何在装有 watchOS 5 的 AppleWatch 上播放 FairPlay 加密的音频?

watchOS 5 支持新的背景音频模式,以便音频应用程序(Audible、Overcast 等)可以直接从手表播放。我正在为我的应用程序开发音频功能,但我必须使用 FairPlay DRM。我已经用 .m3u8 播放列表对 aac 音频文件进行了分段,我正在使用 AVAssetDownloadTask 下载它们,并在 iPhone 上使用AVAssetResourceLoaderDelegate执行FairPlay关键内容。而且我想添加一个手表应用程序来播放我的内容而无需手机。

但我在手表 API 上没有看到类似的东西。AVAssetResourceLoaderDelegate 和AVContentKeySession在 watchOS 上不可用,并且AVAudioPlayer不采用 AVAsset 或看似任何其他方式来执行 FairPlay 密钥内容(我在手机上使用AVPlayer )。

在WWDC 2018 的为 watchOS 会话创建音频应用程序中,演示者说:

而在 AVAudioEngine 的情况下,您实际上可以结合 AVAudioPlayer 节点播放一些 DRM 内容。因此,您现在可以播放自己的 DRM 内容,自己解密,然后为您的用户播放。

但我还没有找到任何关于AVAudioEngine和 FairPlay 音频的信息。

我查看了AVAudioExportSession以尝试将我的 FairPlay 内容转码为 MP3 或 AAC 或 M4A 或我可以传输到手表的东西,但它认为任何格式都不兼容:

所以,我的问题是:如何在 watchOS 5 应用上播放 FairPlay 加密的音频?

0 投票
1 回答
719 浏览

sdk - 下载 FairPlay 流媒体服务器 SDK

我正在尝试在我的应用程序中包含 DRM,并希望从https://developer.apple.com/streaming/fps/下载 SDK

我在 Apple Developer Enterprise Program 中以 Team Agent 身份登录,但收到错误“403 Forbidden”。我查看了最新的许可协议;它被接受了。

以前有人遇到过这个错误吗?很高兴任何提示。

0 投票
0 回答
967 浏览

ios - 如何在 iOS 中下载加密的 m3u8。即使能够下载我也无法在离线模式下播放加密视频

在我的早期情况下,我在离线模式下播放了非加密的 .m3u8 视频

  1. 我已经下载了一个未加密的.m3u8 扩展视频文件,并且我已经播放了该视频。

  2. 该视频以.movpkg 扩展名格式下载。

  3. 我已经使用AVAsset 下载会话下载了这个视频

但在加密视频的情况下

  1. 我可以下载 .m3u8 扩展视频,这个视频保存在 .movpkg 的扩展中

  2. 当保存的视频在没有任何互联网连接的情况下播放时,问题就会出现我知道这是因为解密密钥不可用。这样视频就可以自己解密并在播放器级别播放

  3. 有没有可能在不使用互联网的情况下播放保存的视频文件(离线)

  4. 播放 m3u8 视频是否需要使用 Apple Fair Play 概念?如果是这样,如何在服务器端实现它?

  5. 有人用过苹果公平竞争的概念吗?

  6. 如何在 FFmpeg 转换器中实现公平竞争的概念?

  7. 是否有任何方法可以覆盖 AVPlayer 中的密钥传递模式

0 投票
0 回答
587 浏览

ios - Swift:如何使用 FairPlay 流媒体?

我刚刚发现苹果中有一项名为 FairPlay 的服务与播放加密的视频文件有关。

我的问题:

如果我在 ios 设备上加密了视频:

我应该如何使用 FairPlay(我应该为服务付费,我是单个开发者而不是团队)?

我不知道如何使用该服务,请帮助我解决这个问题。

更新:

我有付费的视频,我制作了视频。但我不希望用户在他们的设备上下载这些内容时分享这些内容。所以我来到了 FairPlay,不知道从哪里开始。如何使用它?

0 投票
1 回答
1264 浏览

swift - 无法使用 Fairplay HLS 从 AVPlayer 获取视频缩略图

我正在尝试为 tvOS 中的视频播放器应用程序构建自定义进度条,并希望在用户扫描视频时显示视频的缩略图。

我正在使用AVPlayerFairplay HLS 来播放远程视频文件。我尝试使用 2 种方法来做到这一点。一个带有AVAssetImageGenerator's copyCGImage,另一个带有AVPlayerItemVideoOutput'copyPixelBuffer方法。两者都返回零。

当我尝试使用本地视频文件时,第一种方法有效。

方法一:

方法二:

有什么想法我做错了什么还是有其他方法?

谢谢!

0 投票
1 回答
292 浏览

ios - 存储 AVURLAsset 的 ckc 关键数据而不播放视频

我想以编程方式调用

来自AVURLAsset, 的代表AVPlayerAVAssetResourceLoaderDelegate这样我就可以兑现 ckc 数据,以便我可以离线播放解密的内容。

我按照https://developer.apple.com/videos/play/wwdc2016/504/的步骤

如果我播放AVURLAsset现金 ckc 密钥数据然后关闭互联网并AVURLAsset再次播放它可以正常工作,我可以离线观看视频。

但我需要调用该resourseLoader函数而不播放视频。

我无法执行这些步骤的原因是因为要获取 ckc 数据,我需要loadingRequest来自委托函数的对象resourceLoader

有没有办法在我存储密钥时不调用 play 方法并丢弃播放器来实现这一点?

0 投票
1 回答
301 浏览

avfoundation - HEVC Fairplay 流

我正在尝试创建一个 HEVC Fairplay 流。我尝试过使用 Shaka Packager、Bento4 和 Zencoder。但没有运气。

有人创建了 HEVC Fairplay 流吗?如果是,那么如何?

0 投票
0 回答
914 浏览

swift - streamingContentKeyRequestData 返回错误 Domain=NSOSStatusErrorDomain 代码=-12158

我正在尝试按照 Apple 示例代码设置 Fairplay + HLS。但是,当我调用 streamingContentKeyRequestData 时,我看到了错误

它总是会抛出错误

我检查了 applicationCertificate 不是 nil,assetIDData 不是 nil。不知道我还需要做什么才能使其工作。这是我的证书的问题还是我如何从文件创建数据。

0 投票
1 回答
667 浏览

ios - WKWebView 可以播放受公平播放/drm 保护的视频吗?

我想播放 fairplay 视频/受 DRM 保护的视频,WKWebView但除了AVPlayerSFSafariViewControler. 有没有办法这样做,或者如果没有,Apple 是否有任何确认WKWebView无法播放这些视频?