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

ios - 离线 Fairplay AVAssetDownloadTask 在下载时收到未知错误回调(仅在 iOS 10.2 上发生)

我们正在为我们的客户端应用程序构建离线公平竞赛内容;我们通过引用 HLSatalog 演示应用程序中的 Apple 示例下载管理器 AssetPersistenceManager 类来实现该功能。我想在这里强调的 AssetPersistenceManager 类中有一个函数和两个回调,它是

并在完成下载流时回调

最后是 didCompleteWithError 回调

在 iOS < 10.2 上一切似乎都正常,但是在运行最新 iOS 10.2 的某些设备上进行测试后,应用程序总是回调到 didFinishDownloadTo 委托,而只有 13-15% 完成百分比,之后调用 didCompleteWithError 并且我们收到以下错误

检查代理调试应用程序,它指出应用程序在整个接收响应之前关闭了连接。

只有 iOS 10.2 有这个错误,在低于该版本的其他操作系统上测试的相同流仍然可以正常工作。试图找到一些关于这部分的 iOS 10.2 更新日志,但我什么也没找到?你们有什么建议吗?

0 投票
1 回答
4122 浏览

ffmpeg - HLS 支持哪些音频编解码器?

HLS 协议是否指定音频编解码器?如果支持,支持哪些?

我试图搜索,但发现了不同的列表:

MP3、HE-AAC 或 AC-3

根据维基百科

AAC, AAC-LC, HE-AAC (accPlus) v1 & v2, MP3

按照这个

AAC-LC、HE-AACV1-2、AC-3 和 EC-3

根据FairPlay 概述(它是 HLS 的子集)

0 投票
0 回答
671 浏览

google-chrome - Safari 版本的 chrome://media-internals

Safari 是否有类似于 chrome://media-internals 的内容?我正在研究 HLS/SAMPLE-AES fMP4 流和视频“MEDIA_ERR_DECODE”并不是很有帮助。我希望找到一些可以仔细检查流的工具,并提供更多关于为什么解码/解密失败的信息......

0 投票
2 回答
937 浏览

ios - FairPlay Streaming:在 AVPlayerItemVideoOutput 上调用 copyPixelBufferForItemTime 返回 NULL

有没有人有使用 HLS 和 Fairplay 并成功检索像素缓冲区的经验?

我正在使用AVURLAsset它的resourceLoader委托集。我AVAssetResourceLoaderDelegate负责处理 Fairplay 流程。

它在 an 上显示良好AVPlayerLayer,但是,当我尝试使用AVPlayerItemVideoOutput附加到AVPlayerItem并在其上使用copyPixelBufferForItemTime的 an 时,返回的 pixelBuffer 始终为 NULL。

另一方面,当我使用非加密流而不使用 resourceLoader 时,copyPixelBufferForItemTime 按预期返回像素缓冲区。

这是按预期工作吗?(即使用 FairPlay 保护的流不会暴露其像素缓冲区以防止滥用。)

如果没有,有没有办法从 iOS 上使用 FairPlay 保护的流中获取像素缓冲区?

0 投票
1 回答
906 浏览

avplayer - Fairplay 播放不工作

我们正在使用我们的视频播放器实现公平播放,我们能够完成苹果播放 drm 视频所需的所有步骤,但视频无法播放。我们可以:

  1. 接到我们委托的电话:shouldWaitForLoadingOfRequestedResource
  2. 在上面的调用中,我们正确下载了证书,并使用证书+assetId,我们成功生成了SPC
  3. 使用 SPC,我们可以 POST 到许可证服务器并成功接收 CKC
  4. 有了 CKC,我们称

    /li>

但是视频只是没有开始播放。我们缺少什么吗?我们是否需要“FPS 部署包”才能使其与我们的苹果帐户一起使用?请注意,我们已经在真实设备上进行了测试。

0 投票
1 回答
1726 浏览

ios - 视频暂停时 AVPlayer Fairplay HLS 不会停止音频播放

我在https://developer.apple.com/streaming/fps/上按照 Apple 的 Fairplay Streaming 示例代码使用 Fairplay 实现,尽管我尝试仅选择与 Online Fairplay Streaming 相关的部分,而不是持久性/离线播放。在下面的代码中,没有 Fairplay 的视频正常播放/暂停/搜索,但是当我播放受 Fairplay 保护的视频时,只有视频轨道正常运行。

暂停播放不会停止音频播放,改变音轨不会停止前一个音轨,所以两者一起播放,也许搜索也不起作用。

除了下面的这个助手类之外,我还有AssetLoaderDelegate来自AssetPlaybackManagerApple 的 FairPlay Streaming Server SDK 客户端示例代码https://developer.apple.com/streaming/fps/并且我已经更新了代码来处理我们的 DRM 密钥提供程序的 SPC/CKC。

我是否错过了实现代码的一些重要部分来处理 FPS Streaming 的音频?你能指出我正确的方向吗?非常感谢。

如果需要AssetLoaderDelegate,我还可以提供代码。AssetPlaybackManager

0 投票
2 回答
1337 浏览

objective-c - 我如何通过使用桥文件将我的 swift 代码合并到现有的目标 c 项目中

我在目标 c 现有项目中使用 bridge.h 文件合并我的 swift 类,之后我无法将我的 swift 类导入到我的 bridge.h 文件中

在此处输入图像描述

0 投票
0 回答
254 浏览

objective-c - 使用 Xcode 8.2.1 将 FairPlay Streaming Server SDK(它在 swift 中)集成到我现有的目标 c 代码中

我尝试将 FairPlay Streaming Server SDK(它在 swift 中)集成到我现有的目标 c 代码中。在 MAC OSX 10.12.3 系统中使用 Xcode 8.2.1 项目。FairPlay Streaming Server SDK 包含可以导入目标的 swift 类使用桥接文件的 c 代码出现以下错误,如图所示在此处输入图像描述

0 投票
1 回答
1619 浏览

swift - 错误域=AVFoundationErrorDomain 代码=-11835 “无法打开”

我目前正在尝试实施一项服务,以在 tvOS 应用程序上使用 FairPlay 流处理 DRM。这是我的工作流程:

  1. 我将应用程序证书作为数据

  2. 从这个证书我得到 SPC 数据,使用:

    /li>
  3. 从编码为 base64Data 的 SPC 数据,我在我们的服务器上请求 POST(在有效负载中带有 SPC)以获得许可证,该许可证为我提供了 CKD 数据

  4. 然后当我得到 CKC 数据时,我使用它们如下:

    /li>

但在这些步骤之后,我得到了错误:

Error Domain=AVFoundationErrorDomain Code=-11835 "Cannot Open" UserInfo={NSUnderlyingError=0x170440de0 {Error Domain=NSOSStatusErrorDomain Code=-42681 "(null)"}, NSLocalizedFailureReason=此内容未经授权。, NSLocalizedDescription=Cannot Open}

有没有人有想法或提示?

附加信息:

  • 播放过程适用于不受保护的内容。

  • playerItem.errorLog() 返回零。

  • playerItem.status == .failed 返回真。

  • 所有服务器端进程似乎都可以,因为它已经用于网站和智能电视。

0 投票
0 回答
314 浏览

ios - JWplayer 与 Apple FairPlay DRM 实施

我正在使用这个演示: jwplayer/jwplayer-ios-bestPracticeApps

调用 self.player.load(encryptedFile) 后,当播放器确定视频受 DRM 保护后,应该调用回调函数 fetchAppIdentifier、fetchContentIdentifier 和 fetchContentKey,但没有调用任何函数。

任何想法都会有所帮助,顺便说一句,还有其他可用的演示吗?这是我唯一能找到的。

谢谢 :)