jancd/qiniu-developer_ShareGPT huggingface dataset:
human: 如何处理七牛云的直播云推流 SDK 下载体验

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 推流端 >推流 SDK 下载体验

#  推流 SDK 下载体验

最近更新时间: 2024-06-21 10:24:08

> **说明：**  
>  SDK 名称：推流 SDK  
>  开发者：上海七牛信息技术有限公司  
>  推流 SDK 合规使用说明请参考[七牛 SDK 合规使用说明
> __](https://developer.qiniu.com/pili/12616/sdk-compliance-
> instructions)；隐私政策说明请参考[七牛 SDK 隐私策略
> __](https://developer.qiniu.com/pili/8027/sdk-privacy-policy)

# SDK下载

Android SDK 下载：[PLDroidMediaStreaming v3.1.6 __](https://github.com/pili-
engineering/PLDroidMediaStreaming/tree/v3.1.6)  
iOS SDK 下载：[PLMediaStreamingKit v3.1.0 __](https://github.com/pili-
engineering/PLMediaStreamingKit/tree/v3.1.0)

# Demo 本地下载

Android Demo 下载：<http://fir.qiniuapi.com/plmsaui>[
__](http://fir.qiniuapi.com/plmsaui)  
iOS Demo 下载：<https://testflight.apple.com/join/Jz6TvWPP>[
__](https://testflight.apple.com/join/Jz6TvWPP)

# Demo 扫码下载

Android Demo 下载：（若使用微信扫码失败，可使用安卓手机自带浏览器、QQ、支付宝尝试扫码）

![](https://docs.qiniushawn.top/Android-qnsdk-streaming-demo.png)

  

iOS Demo 下载：（若使用微信扫码失败，可使用苹果手机自带相机、QQ、支付宝尝试扫码）

![](https://docs.qiniushawn.top/iOS-testflight-NiuLiving.png)

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云概述

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 推流端 >Android 推流端 SDK >概述

#  概述

最近更新时间: 2023-08-31 20:31:17

# 1 概述

PLDroidMediaStreaming 是一个适用于 Android 的 RTMP 直播推流 SDK，可高度定制化和二次开发。特色是同时支持 H.264
软编／硬编和 AAC 软编／硬编。支持 Android Camera 画面捕获，并进行 H.264 编码，以及支持 Android 麦克风音频采样并进行
AAC 编码；还实现了一套可供开发者选择的编码参数集合，以便灵活调节相应的分辨率和码率；同时，SDK 提供数据源回调接口，用户可进行 Filter
处理。借助 PLDroidMediaStreaming ，开发者可以快速构建一款类似 [Meerkat
__](https://meerkatapp.co/)或[Periscope __](https://www.periscope.tv/)的 Android
直播应用。

## 1.1 SDK 下载

[PLDroidMediaStreaming __](https://github.com/pili-
engineering/PLDroidMediaStreaming)

## 1.2 功能以及版本

功能 | 描述 | 版本号  
---|---|---  
H.264 和 AAC 软编 |  | v1.4.1(+)  
H.264 和 AAC 硬编 |  | v1.0.0(+)  
RTMP 封包及推流 |  | v1.0.0(+)  
录屏 |  | v2.1.0(+)  
外部数据源支持 |  | v2.1.0(+)  
后台推流 |  | v2.2.0(+)  
支持双声道立体声 |  | v2.2.0(+)  
数据源回调接口，可自定义 Filter (滤镜) 特效处理 |  | v1.4.1(+)  
前后置摄像头，以及动态切换 |  | v1.2.0(+)  
自动手动对焦 |  | v1.1.0(+)  
手动对焦 |  | v1.5.0(+)  
支持美颜 |  | v1.7.0(+)  
Zoom 操作 |  | v1.5.0(+)  
Mute/Unmute |  | v1.5.0(+)  
闪光灯操作 |  | v1.1.0(+)  
纯音频推流，以及后台运行 |  | v1.1.0(+)  
截帧 |  | v1.3.0(+)  
动态更改 Encoding Orientation |  | v1.4.5(+)  
动态切换横竖屏 |  | v1.4.5(+)  
ARMv7a 芯片体系架构 |  | v1.0.0(+)  
ARM, ARM64v8a, X86 主流芯片体系架构 |  | v1.3.3(+)  
SEI 信息发送 |  | v2.4.1(+)  
SRT 传输协议支持 |  | v3.1.0(+)  
H.265 硬编支持 |  | v3.1.5(+)  
  
# 2 特性

  * 支持 H.264 和 AAC 软编（推荐）
  * 支持 H.264、H.265 和 AAC 硬编
  * 支持录屏
  * 软编支持 Android Min API 15（Android 4.0.3）及其以上版本
  * 硬编支持 Android Min API 18（Android 4.3）及其以上版本
  * 支持构造带安全授权凭证的 RTMP 推流地址
  * 支持 RTMP 封包及推流
  * 支持 RTMP 推流自适应网络质量动态切换码率或自定义策略
  * 支持数据源回调接口，可自定义 Filter (滤镜) 特效处理
  * 支持前后置摄像头，以及动态切换
  * 支持自动对焦
  * 支持手动对焦
  * 支持动态水印
  * 支持美颜，以及调节磨皮、美白、红润效果
  * 支持 Encoding Mirror 设置
  * 支持 Zoom 操作
  * 支持 Mute/Unmute
  * 支持闪光灯操作
  * 支持纯音频推流，以及后台运行
  * 支持截帧功能
  * 支持动态更改 Encoding Orientation
  * 支持动态切换横竖屏
  * 支持蓝牙麦克风
  * 支持后台推流
  * 支持双声道立体声
  * 支持 QUIC 推流
  * 支持 ARM, ARMv7a, ARM64v8a, X86 主流芯片体系架构
  * 支持 SEI 信息发送
  * 支持 SRT 推流

# 3 阅读对象

本文档为技术文档，需要阅读者：

  * 具有基本的 Android 开发能力
  * 准备接入七牛直播云或已完成七牛直播云接入

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云知识补充与建议

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 推流端 >Android 推流端 SDK
>知识补充与建议

#  知识补充与建议

最近更新时间: 2017-06-01 17:15:21

# 1 编码相关参数说明

## 1.1 码率、fps、分辨率对清晰度及流畅度的影响

对于码率（BitRate）、FPS（video frame per
second）、分辨率（VideoSize）三者的关系，有必要在这里做一些说明，以便你根据自己产品的需要可以有的放矢的调节各个参数。

一个视频流个人的感受一般来说会有卡顿、模糊等消极的情况，虽然我们都不愿意接受消极情况的出现，但是在 UGC 甚至 PGC
的直播场景中，都不可避免的要面对。因为直播推流实时性很强烈，所以为了保证这一实时性，在网络带宽不足或者上行速度不佳的情况下，都需要做出选择。

要么选择更好的流程度但牺牲清晰度（模糊），要么选择更好的清晰度但牺牲流畅度（卡顿），这一层的选择大多由产品决定。

一般来说，当选定了一个分辨率后，推流过程中就不会对分辨率做变更，但可以对码率和 FPS 做出调节，从而达到上述两种情况的选择。

效果 | 码率 | FPS  
---|---|---  
流畅度 | 负相关 | 正相关  
清晰度 | 正相关 | 负相关  
  
通过这个关联，我们就可以容易的知道该如何从技术层面做出调整。在追求更好的流畅度时，我们可以适当降低码率，如果 FPS 已经较高（如 30）时，可以维持
FPS 不变更，如果此时因为码率太低而画面无法接受，可以再适当调低 FPS；在追求更清晰的画质时，可以提高码率，FPS 调节至 24
左右人眼大多还会识别为流畅，如果可以接受有轻微卡顿，那么可以将 FPS 设置的更低，比如 20 甚至 15。

总之，这三者之间一起构建其了画面清晰和视频流畅的感觉，但最终参数是否能满意需要自己不断调整和调优，从而满足产品层面的需求。

## 1.2 建议编码参数

提示：以下为建议值，可根据产品需求自行更改调节。

UGC 场景，因为主播方所在的网络环境参差不齐，所以不易将码率设置的过高，此处我们给出建议设定：

  * WiFi: `VIDEO_QUALITY_MEDIUM2` 或者自定义编码参数时设定码率为 `800Kbps`
  * 3G/4G: `VIDEO_QUALITY_MEDIUM1` 或者自定义编码参数时设定码率为 `512Kbps`

PGC 场景，因为主播方所在网络一般都会有较高的要求，并且主播网络质量大多可以保障带宽充足，此处我们给出建议设定：

  * WiFi: `VIDEO_QUALITY_HIGH1` 或者自定义编码参数时设定码率为 `1200Kbps`
  * 3G/4G: `VIDEO_QUALITY_MEDIUM2` 或者自定义编码参数时设定码率为 `800Kbps`

对于 PGC 中的 3G/4G 场景，假定 PGC 时会配备较好的外置热点保证上行带宽充足。

# 2 网络异常处理

## 2.1 重连

在网络断开、sendTimeOut 后没有发出数据、网络链接被服务端断开等网络异常后，SDK 会：

  * `DISCONNECTED` 消息会被回调；
  * 当 SDK 内部处理完一些必要的清理工作后，如果实现了 `StreamingSessionListener` interface 并调用了对应的注册函数 `mMediaStreamingManager.setStreamingSessionListener(this);`， `StreamingSessionListener.onRestartStreamingHandled` 将会被回调，用户可以在这里进行重连，即 `mMediaStreamingManager.startStreaming();`
  * 若网络不可达（即网络断开等情况），尝试重连之后，会返回 `IOERROR`，可以不用担心循环重连的问题。

需要注意的是，在网络层会有三次重连的机会，即没有必要在收到 `IOERROR` 之后继续进行重连，一般接收到 `IOERROR`
代表无法通过网络和服务端建立链接。

重连可以很好地避免网络抖动导致的断流，建议正确实现重连逻辑，可以提升用户体验。

# 3 丢帧策略

这一章节，我们谈谈追帧策略，这关乎最终的直播观看体验，这里我们主要说明为何需要它，以及它带来的利弊。

## 3.1 丢帧策略的必要性

我想可能没有人会喜欢在直播中出现丢帧，但是为何我们一定要实现并提供它呢？这是我们在最初提供出丢帧策略时也在反复考虑和一再讨论过的一个问题。

原因很简单，为了保证直播的实时性。

直播作为有别于录播的富媒体传播手段，它的第一要素就是实时，没有了实时，直播的价值就会荡然无存。保证实时性就需要确保录制端的数据尽可能少的累积，尽可能快的发送，但如果没有丢帧策略，在弱网环境下，就会因为待发送数据的不断堆积而产生累计延时，最终带来延时越来越大的情况。作为推流的发起端和推送端，推流
SDK
要考虑的还不单单是实时性这一点，因为移动设备的内存有限，而视频数据对内存的占用较大，所以在推流时还要确保不会因为待发送数据堆积过多而带来内存吃紧，触发
crash 等严重问题。所以我们需要也一定要在推流端提供丢帧策略。

丢帧的方式可以有很多种，其中有些较为粗暴，会触发各类问题，比如花屏，爆音，音画不同步等问题，在反复尝试和验证了各类的丢帧策略后，我们最终选定了优先保证音频传输且不触发花屏、爆音、音画不同步问题的技术方案。这一方案可以保证在带宽不足或上行速度不佳时，优先丢弃视频帧，保证音频的持续传输，在观看端至多出现画面跳帧的情况，但声音会是连续的片段，体验上不会认为是推流端断网，确保直播的继续进行。

## 3.2 利弊

丢帧策略固然保证了直播的实时性和推流端相对的稳定性，但是它的弊端也是显然的，就是会带来观看端体验的不佳。

面对并接受这一弊端是必要，这样才可以做出更好的产品决策，我们建议从产品层面至少需要考虑两点

在主播弱网情况下，观看端体验要保证流畅度优先还是清晰度优先 在主播弱网情况下，尽可能让主播自己知晓自己网络不佳这一事实
对于流畅度和清晰度的问题，可以参见码率、fps、分辨率对清晰度及流畅度的影响这一小节。

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云概述

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 推流端 >iOS 推流端 SDK >概述

#  概述

最近更新时间: 2024-05-31 16:58:46

# 1 概述

PLMediaStreamingKit 是一个适用于 iOS 的 RTMP 直播推流 SDK，可高度定制化和二次开发。SDK 提供 RTMP
推流的全套解决方案，包括采集，处理（美颜，水印等），编码，封包，发送。特色是支持 H.264 硬编码，以及支持 AAC-LC
硬编码；同时，还根据移动网络环境的多变性，实现了一套可供开发者灵活选择的编码参数集合。

## 1.1 SDK 下载地址

[PLMediaStreamingKit __](https://github.com/pili-
engineering/PLMediaStreamingKit)

## 1.2 功能以及版本

功能 | 描述 | 版本  
---|---|---  
支持硬件编码 | 更低的 CPU 占用及发热量 | v1.0.0(+)  
支持 ARM7, ARM64 指令集 | 为最新设备优化 | v1.0.0(+)  
提供音视频配置分离 | 配置解耦 | v1.0.0(+)  
支持推流时码率变更 | 更方便定制流畅度/清晰度策略 | v1.0.0(+)  
支持弱网丢帧策略 | 不必担心累计延时，保障实时性 | v1.0.0(+)  
支持模拟器运行 | 不影响模拟器快速调试 | v1.0.0(+)  
支持 RTMP 协议直播推流 | 保证秒级实时性 | v1.0.0(+)  
支持后台音频推流 | 轻松实现边推流边聊天等操作 | v1.0.0(+)  
提供多码率可选 | 更自由的配置 | v1.1.2(+)  
提供 H.264 视频编码 | 多种 profile level 可设定 | v1.1.2(+)  
支持多分辨率编码 | 更可控的清晰度 | v1.1.2(+)  
提供 AAC 音频编码 | 当前采用 AAC-LC | v1.1.2(+)  
提供 HeaderDoc 文档 | 开发中使用 Quick Help 及时阅读文档 | v1.1.3(+)  
支持美颜滤镜 | 轻松实现更美真人秀 | v1.7.0(+)  
支持水印功能 | 彰显自身特色 | v1.7.0(+)  
提供内置音效及音频文件播放功能 | 轻松实现各种音效 | v2.1.0(+)  
支持返听功能 | 唱歌更易把握节奏 | v2.1.0(+)  
支持截屏功能 | 轻松分享美好瞬间 | v2.1.2(+)  
支持 iOS 10 ReplayKit 录屏 | 方便分享游戏过程 | v2.1.4(+)  
支持苹果 ATS 安全标准 | 安全性更高 | v2.1.6(+)  
支持后台推图片功能 | 观看体验更佳 | v2.2.1(+)  
支持 QUIC 推流功能 | 弱网推流更流畅 | v2.3.0(+)  
支持 SEI 功能 | 推流内容更丰富 | v2.3.5(+)  
支持 HEVC 编码推流 | 提升视频质量 | v3.1.0(+)  
支持动态设置 fps | 更多的推流质量选择 | v3.1.1(+)  
  
# 2 阅读对象

本文档为技术文档，需要阅读者：

  * 具有基本的 iOS 开发能力
  * 准备接入七牛云直播

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云开发准备

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 推流端 >iOS 推流端 SDK >开发准备

#  开发准备

最近更新时间: 2023-08-17 14:14:50

# 1 设备以及系统

  * 设备要求：iPhone 5 及以上
  * 系统要求：iOS 8 及以上

# 2 前置条件

  * 已注册七牛账号
  * 通过 pili@qiniu.com 申请并已开通直播权限

## 3.3 版本升级

  * **从 v3.0.7 开始，HappyDNS 版本更新至 v1.0.0**
  * **从 v3.0.0 版本开始，七牛直播推流 SDK 需要先获取授权才能使用。授权分为试用版和正式版，可通过 400-808-9176 转 2 号线联系七牛商务咨询，或者[通过工单 __](https://support.qiniu.com/?ref=developer.qiniu.com)联系七牛的技术支持。**
  * **v3.0.0 之前的版本不受影响，请继续放心使用。**
  * **老客户升级 v3.0.0 版本之前，请先联系七牛获取相应授权，以免发生鉴权不通过的现象。**
  * **基于 114 dns 解析的不确定性，使用该解析可能会导致解析的网络 ip 无法做到最大的优化策略，进而出现推流质量不佳的现象。因此建议使用非 114 dns 解析**
  * **目前还不支持使用 srt 协议 HEVC 编码推流**

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云知识补充与建议

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 推流端 >iOS 推流端 SDK >知识补充与建议

#  知识补充与建议

最近更新时间: 2017-06-29 16:06:57

# 1 编码相关参数说明

## 1.1 码率、fps、分辨率对清晰度及流畅度的影响

对于码率（BitRate）、FPS（video frame per
second）、分辨率（VideoSize）三者的关系，有必要在这里做一些说明，以便你根据自己产品的需要可以有的放矢的调节各个参数。

一个视频流个人的感受一般来说会有卡顿、模糊等消极的情况，虽然我们都不愿意接受消极情况的出现，但是在 UGC 甚至 PGC
的直播场景中，都不可避免的要面对。因为直播推流实时性很强烈，所以为了保证这一实时性，在网络带宽不足或者上行速度不佳的情况下，都需要做出选择。

要么选择更好的流程度但牺牲清晰度（模糊），要么选择更好的清晰度但牺牲流畅度（卡顿），这一层的选择大多由产品决定。

一般来说，当选定了一个分辨率后，推流过程中就不会对分辨率做变更，但可以对码率和 FPS 做出调节，从而达到上述两种情况的选择。

效果 | 码率 | FPS  
---|---|---  
流畅度 | 负相关 | 正相关  
清晰度 | 正相关 | 负相关  
  
通过这个关联，我们就可以容易的知道该如何从技术层面做出调整。在追求更好的流畅度时，我们可以适当降低码率，如果 FPS 已经较高（如 30）时，可以维持
FPS 不变更，如果此时因为码率太低而画面无法接受，可以再适当调低 FPS；在追求更清晰的画质时，可以提高码率，FPS 调节至 24
左右人眼大多还会识别为流畅，如果可以接受有轻微卡顿，那么可以将 FPS 设置的更低，比如 20 甚至 15。

总之，这三者之间一起构建其了画面清晰和视频流畅的感觉，但最终参数是否能满意需要自己不断调整和调优，从而满足产品层面的需求。

# 2 丢帧策略

这一章节，我们谈谈丢帧策略，这关乎最终的直播观看体验，这里我们主要说明为何需要它，以及它带来的利弊。

## 2.1 丢帧策略的必要性

我想可能没有人会喜欢在直播中出现丢帧，但是为何我们一定要实现并提供它呢？这是我们在最初提供出丢帧策略时也在反复考虑和一再讨论过的一个问题。

原因很简单，为了保证直播的实时性。

直播作为有别于录播的富媒体传播手段，它的第一要素就是实时，没有了实时，直播的价值就会荡然无存。保证实时性就需要确保录制端的数据尽可能少的累积，尽可能快的发送，但如果没有丢帧策略，在弱网环境下，就会因为待发送数据的不断堆积而产生累计延时，最终带来延时越来越大的情况。作为推流的发起端和推送端，推流
SDK
要考虑的还不单单是实时性这一点，因为移动设备的内存有限，而视频数据对内存的占用较大，所以在推流时还要确保不会因为待发送数据堆积过多而带来内存吃紧，触发
crash 等严重问题。所以我们需要也一定要在推流端提供丢帧策略。

丢帧的方式可以有很多种，其中有些较为粗暴，会触发各类问题，比如花屏，爆音，音画不同步等问题，在反复尝试和验证了各类的丢帧策略后，我们最终选定了优先保证音频传输且不触发花屏、爆音、音画不同步问题的技术方案。这一方案可以保证在带宽不足或上行速度不佳时，优先丢弃视频帧，保证音频的持续传输，在观看端至多出现画面跳帧的情况，但声音会是连续的片段，体验上不会认为是推流端断网，确保直播的继续进行。

## 2.2 利弊

丢帧策略固然保证了直播的实时性和推流端相对的稳定性，但是它的弊端也是显然的，就是会带来观看端体验的不佳。

面对并接受这一弊端是必要，这样才可以做出更好的产品决策，我们建议从产品层面至少需要考虑两点

  * 在主播弱网情况下，观看端体验要保证流畅度优先还是清晰度优先
  * 在主播弱网情况下，尽可能让主播自己知晓自己网络不佳这一事实

对于流畅度和清晰度的问题，可以参考上述1.1小节。

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云QPlayer2产品简介

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 播放端 >QPlayer2产品简介

#  QPlayer2产品简介

最近更新时间: 2024-08-08 17:43:39

# QPlayer2

> **说明：**  
>  SDK名称：QPlayer2 播放器SDK  
>  开发者：上海七牛信息技术有限公司  
>  播放器 SDK 合规使用说明请参考[七牛 SDK 合规使用说明
> __](https://developer.qiniu.com/pili/12616/sdk-compliance-
> instructions)；隐私政策说明请参考[七牛 SDK 隐私策略
> __](https://developer.qiniu.com/pili/8027/sdk-privacy-policy)

QPlayer2
是一款面向未来的跨平台播放器SDK,除了基本的播放能力外，还引入目前最前沿的技术能力，同时在用户的接入上，提供了扩展插件，让客户能更便捷的实现播放器上层的相关业务逻辑。  
SDK包含两个部分：qplayer2-core提供核心播放能力，qplayer2-ext（目前仅android端支持）提供上层业务扩展能力。

QPlayer2-Android:<https://github.com/pili-
engineering/QPlayer2-Android>[__](https://github.com/pili-
engineering/QPlayer2-Android)  
QPlayer2-IOS:<https://github.com/pili-
engineering/QPlayer2-IOS>[__](https://github.com/pili-
engineering/QPlayer2-IOS)  
QPlayer2-Windows:<https://github.com/pili-
engineering/QPlayer2-Windows>[__](https://github.com/pili-
engineering/QPlayer2-Windows)  
QPlayer2-Harmony:<https://github.com/pili-engineering/QPlayer2-HarmonyOS-
NEXT>[__](https://github.com/pili-engineering/QPlayer2-HarmonyOS-NEXT)  
QPlayer2-MacOS:敬请期待  
QPlayer2-Linux:敬请期待

## SDK下载

QPlayer2-Android下载：[QPlayer2-Android v1.4.3 __](https://github.com/pili-
engineering/QPlayer2-Android/releases/tag/v1.4.3)  
QPlayer2-IOS下载：[QPlayer2-IOS v1.4.3 __](https://github.com/pili-
engineering/QPlayer2-IOS/releases/tag/v1.4.3)  
QPlayer2-Harmony下载：[QPlayer2-Harmony v1.5.0-preview4
__](https://github.com/pili-engineering/QPlayer2-HarmonyOS-
NEXT/releases/tag/v1.5.0-preview4)  
QPlayer2-Windows下载：[QPlayer2-Windows v1.4.1 __](https://github.com/pili-
engineering/QPlayer2-Windows/releases/tag/v1.4.1)

## qplayer2-core 功能列表

### 媒体资源组成形式

一个媒体资源支持多url，比如一个音频url和一个视频url组成一个媒体资源,提升拉流速度和解封装速度

### 播放协议及封装

目前支持的如下，如有其他需求可以联系技术支持或者提交github需求issue。

  * 协议：http/https/rtmp/srt
  * 封装格式:flv/m3u8/mp4/flac/wav(PCM_S24LE)

### 解码方式

  * 软解
  * 硬解
  * 自动：自动选择合适的解码方式
  * 混解(Android端)

### 色盲模式

在业务场景中更好的服务视觉有障碍的客户

### 倍速

改变视频播放的速度，且变速不变调

### 清晰度切换

通用清晰度切换方案，无缝切换，即使媒体资源gop不对齐

### SEEK

支持精准/关键帧 seek 两种方式

### 指定起播位置

从指定位置开始播放

### 起播方式

  * 起播播放
  * 起播暂停 ：起播后首帧渲染出来就停止画面

### 预加载

提前加载点播视频，获得更好的首帧体验

### SEI数据回调

将sei数据上抛到上层供业务层使用，所有解码方式都支持

### 纯音频播放/纯视频播放

播放只有单音频流或者只有单视频流的视频

### VR视频

支持Equirect-Angular类型的vr视频播放

## qplayer2-ext 功能列表(目前仅Android支持)

### 场景切换定制

当一个播放器有直播点播场景时，且2个场景的业务逻辑完全不同时，通过场景定制，能更丝滑的在2套逻辑中切换

### 播放面板定制

统一控制面板的显示隐藏，不同的视频场景中 可快速切换面板

### 播放器上层浮窗定制

拥有统一的浮窗展示隐藏动画和布局规范，更快的实现各类弹窗

### 播放器上层手势

支持多种手势判定回调，上层只需关心业务逻辑

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云QPlayer2 鉴权相关

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 播放端 >QPlayer2 鉴权相关

#  QPlayer2 鉴权相关

最近更新时间: 2022-09-27 16:01:43

# 鉴权

权限 | 说明 | 鉴权失败结果  
---|---|---  
Base | 基础播放能力 | 播放器进入error状态  
VR | 播放VR视频 | 播放vr视频，起播后播放器进入error状态  
SEI | SEI数据回调 | 开启sei 回调，且视频有sei数据。能正常播放视频，SEI数据不回调，同时抛出鉴权失败错误码  
SRT | srt协议视频 | 播放srt链接 播放器进入error状态  
BLIND | 色盲滤镜 | 开启色盲滤镜，视频正常播放，滤镜不生效。  
  
如需使用该套sdk到其他工程中，请联系我们的技术支持开通帐号和权限。

# 鉴权的执行逻辑

  * 每一次播放会鉴权一次，可能走本地鉴权也可能走服务端鉴权
  * 鉴权时机 鉴权是个异步过程，不会阻止视频播放的流程，所有有可能存在视频已经播放起来之后，才拿到鉴权结果，那么如果结果是失败时，则播放器会跳转到错误状态。
  * 鉴权的结果有3种 
    * 鉴权成功：有权限执行本次播放
    * 鉴权失败：没有权限本次播放或视频正常播放但是某些功能不生效
    * 鉴权错误 在鉴权过程中，由于过程中出现异常情况导致无法判定到底是成功还是失败，则不会阻止本次播放的进行。

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云QPlayer2 Harmony 端

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 播放端 >QPlayer2 Harmony 端

#  QPlayer2 Harmony 端

最近更新时间: 2024-06-11 17:46:29

QPlayer2 Harmony 端文档包含如下几个部分

集成准备：主要介绍将QPlayer2引入到工程中的一些配置  
基于qplayer2-core的QPlayer2接入指南：如果仅仅使用qplayer2-core开发，则参考这个文档。

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云集成准备

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 播放端 >[QPlayer2 Harmony
端](https://developer.qiniu.com/pili/sdk/12702/qplayer2-harmony) > 集成准备

#  集成准备

最近更新时间: 2024-07-31 11:50:02

# 集成准备

本文为您介绍 harmony qplayer2 SDK 的集成准备的环境要求和具体操作步骤。

系统版本为 NEXT.0.0.26 的 harmony-next 手机

## 环境要求

类别 | 说明  
---|---  
系统版本 | 版本为 NEXT.0.0.26 的 harmony-next 手机  
IDE 版本 | DevEco Studio NEXT Developer Beta1 version 5.0.3.403  
  
## 权限要求

    
    
    {
        "name": "ohos.permission.INTERNET"
    },
    {
        "name": "ohos.permission.GET_NETWORK_INFO"
    },
    {
        "name": "ohos.permission.KEEP_BACKGROUND_RUNNING"
    }
    

## 获取 QPlayer2 License

联系技术支持获取

## 添加 QPlayer2 依赖

### 1.进入 [鸿蒙仓库 __](https://github.com/pili-engineering/QPlayer2-HarmonyOS-
NEXT)查看最新QPlayer2的版本

### 2.使用下面的命令下载安装 QPlayer2

    
    
    ohpm install @qiniu/qplayer2-core 
    

### 3\. 打开项目的 oh-package.json5 文件，查看 QPlayer2 的引用

    
    
    "dependencies": {
        "@qiniu/qplayer2-core" : '^1.5.0-preview4'  //版本号
     }
    

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云基于 Core 的 QPlayer2 接入指南

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 播放端 >[QPlayer2 Harmony
端](https://developer.qiniu.com/pili/sdk/12702/qplayer2-harmony) > 基于 Core 的
QPlayer2 接入指南

#  基于 Core 的 QPlayer2 接入指南

最近更新时间: 2024-06-11 17:46:45

如果业务场景中没有复杂的场景切换，也不想用播放面板定制、播放器上层浮窗定制、播放器上层手势逻辑则可以只用qplayer2-core，接入成本低，学习门槛低。

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云快速开始

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 播放端 >[QPlayer2 Harmony
端](https://developer.qiniu.com/pili/sdk/12702/qplayer2-harmony) > [基于 Core 的
QPlayer2 接入指南](https://developer.qiniu.com/pili/sdk/12704/based-on-
qplayer2-access-guide-to-the-core-harmony) > 快速开始

#  快速开始

最近更新时间: 2024-07-31 11:50:08

## 快速开始

### 基于 qplayer2-core 的播放器使用

#### 导入头文件

    
    
    import { QPlayerContextFactory, QIPlayerContext, QLogLevel,QMediaModel,QSurfaceRenderView} from '@qiniu/qplayer2-core/qplayer2-core'
    

#### 初始化

    
    
    @State mPlayerContext : QIPlayerContext = QPlayerContextFactory.createPlayerContext(
        QLogLevel.LOG_INFO,
        (AppStorage.get("context") as Context).filesDir,
        bundleManager.getBundleInfoForSelfSync(bundleManager.BundleFlag.GET_BUNDLE_INFO_DEFAULT).versionName,
        "")
    
    this.mPlayerContext.init(AppStorage.get('context') as Context , getContext(this) as common.UIAbilityContext)
    

#### 设置显示视图

一个 QSurfaceRenderView 对应一个 mPlayerContext , 如果一个 mPlayerContext 对应多个
QSurfaceRenderView 无法保证预期效果

    
    
    QSurfaceRenderView({ mQPlayerContext: this.mPlayerContext, mXComponentId: this.mXComponentId })
              .width('100%')
              .height('100%')
    

#### 播放

    
    
    let builder : QMediaModelBuilder = new QMediaModelBuilder()
    builder.addStreamElement("",QPlayerUrlType.QAUDIO_AND_VIDEO,1080,"http://demo-videos.qnsdk.com/qiniu-2023-1080p.mp4",true,"","")
    let model : QMediaModel = builder.build(false)
    this.mPlayerContext.get_control_handler().playMediaModel(model,0)
    

#### 销毁

    
    
    this.mPlayerContext.get_control_handler().release()
    

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云QPlayer2 Windows端

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 播放端 >QPlayer2 Windows端

#  QPlayer2 Windows端

最近更新时间: 2024-03-12 11:20:51

QPlayer2 Windows端文档包含如下几个部分

  * 集成准备：主要介绍将 QPlayer2 引入到工程中的一些配置
  * 基于 qplayer2-core 的 QPlayer2 接入指南：如果仅仅使用 qplayer2-core 开发，则参考这个文档。

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云基础准备

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 播放端 >[QPlayer2
Windows端](https://developer.qiniu.com/pili/sdk/12642/qplayer2-windows) > 基础准备

#  基础准备

最近更新时间: 2024-03-12 11:20:59

## 集成准备

本文为您介绍 Windows qplayer2 SDK 的集成准备的环境要求和具体操作步骤。

### 环境要求

类别 | 说明  
---|---  
系统版本 | win7 SP1 以上  
渲染环境 | D3D11  
C++ | C++ 14 及以上  
visual studio | 建议使用 visual studio 2022 及以上  
  
## 获取 QPlayer2 License

联系技术支持获取

## 添加 QPlayer2 依赖

### 1.进入 [QPlayer2 Windows 仓库 __](https://github.com/pili-
engineering/QPlayer2-Windows)查看最新 QPlayer2 的版本

### 2.配置依赖关系，引入 QPlayer2

将 qplayer2demo\dependency\qplayer-core 目录中对应平台的 qplayer2-core.lib
拷贝到您项目的目标目录，并在项目配置中配置相关路径  
![image.png](https://dn-odum9helk.qbox.me/FiST3Jhlqk6WEpzaIyYFtyUciqx7)  
![image.png](https://dn-odum9helk.qbox.me/FrxyUtlRBiAnjFXCiC6eEB_VQ-Mi)

### 3.配置头文件

将 qplayer2demo\dependency\qplayer-core 目录中对应平台的头文件拷贝到您项目的目标目录，并在项目配置中配置相关路径

![image.png](https://dn-odum9helk.qbox.me/FqMjJ2jz0O-byU94XbSNqk70ruht)

### 4.配置 manifest

将 qplayer2demo\dependency\qplayer-core 目录中对应平台的 manifest 拷贝到您项目的 exe
所在同级目录，并在项目配置中配置相关依赖  
![image.png](https://dn-odum9helk.qbox.me/FuaIZhcqOtuTStoLuz-3Iawj_fZn)

### 5.配置 dll

将 qplayer2demo\dependency\qplayer-core 目录中对应平台的 dll 拷贝到您项目的 exe 所在同级目录

## D3D11 相关问题

1.通常情况下系统自带 D3D11，如果缺少 D3D11 相关报错，可通过下面链接下载安装  
下载链接：[https://www.microsoft.com/zh-cn/download/details.aspx?id=35
__](http://www.microsoft.com/zh-cn/download/details.aspx?id=35)

下载完成后，双击启动，一直点击下一步，待安装完成后即可

2.如遇到 D3D11 相关报错，可按照下面的方法尝试解决

（1）右键桌面 -> 显示设置  
![image.png](https://dn-odum9helk.qbox.me/Fk9NzOtjDxj0l6GxEgT4y7mtmWHf)  
（2）搜索 “添加可选功能”  
![image.png](https://dn-odum9helk.qbox.me/Fo9Y5yJfqdV36tFbTparLIkCLe-s)  
（3）点击 “添加功能”  
![image.png](https://dn-odum9helk.qbox.me/Fs9CIRoiW7PMfzTC3_44mdpYao1q)  
（4）安装 “图形工具”  
![image.png](https://dn-odum9helk.qbox.me/FklPONlU209ePSvUilxhK8cN-Xmb)

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云基于 Core 的 QPlayer2 接入指南

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 播放端 >[QPlayer2
Windows端](https://developer.qiniu.com/pili/sdk/12642/qplayer2-windows) > 基于
Core 的 QPlayer2 接入指南

#  基于 Core 的 QPlayer2 接入指南

最近更新时间: 2024-03-12 11:21:07

如果业务场景中没有复杂的场景切换，也不想用播放面板定制、播放器上层浮窗定制、播放器上层手势逻辑则可以只用
qplayer2-core，接入成本低，学习门槛低。

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云QPlayer2 iOS端

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 播放端 >QPlayer2 iOS端

#  QPlayer2 iOS端

最近更新时间: 2022-09-27 15:57:48

QPlayer2 iOS端文档包含如下几个部分

  * 集成准备：主要介绍将QPlayer2引入到工程中的一些配置
  * 基于qplayer2-core的QPlayer2接入指南：如果仅仅使用qplayer2-core开发，则参考这个文档。

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云集成准备

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 播放端 >[QPlayer2
iOS端](https://developer.qiniu.com/pili/sdk/12225/qplayer2-ios-side) > 集成准备

#  集成准备

最近更新时间: 2023-12-08 18:35:58

# 集成准备

本文为您介绍 iOS qplayer2 SDK 的集成准备的环境要求和具体操作步骤。

## 环境要求

类别 | 说明  
---|---  
系统版本 | iOS 10.0 及 以上版本的iOS设备  
  
## 获取 QPlayer2 License

联系技术支持获取

## 添加 QPlayer2 依赖

### 1.进入[https://github.com/pili-engineering/QPlayer2-IOS.git
__](https://github.com/pili-engineering/QPlayer2-IOS)查看最新QPlayer2的版本

![readme.png](https://dn-odum9helk.qbox.me/FqQlVjD4BFesWFkeCq_PRyBK4_S-)

### 2.配置 podfile 文件，引入 qplayer2-core

    
    
     pod 'qplayer2-core', '1.0.2'
    

![image-20220915165921376](/Users/wangshenglu/Library/Application
Support/typora-user-images/image-20220915165921376.png)  
![podfile.png](https://dn-odum9helk.qbox.me/Fkljc-uk9aTusyX1qoBDKd12hakM)

#### 如需要真机 ＋ 虚拟机可以改用如下配置：

    
    
      pod "qplayer2-core", :podspec => 'https://raw.githubusercontent.com/pili-engineering/QPlayer2-IOS/main/qplayer2-core-Universal.podspec'
    

### 3.关闭Bitcode

![bitcode.png](https://dn-odum9helk.qbox.me/FpevbowCqHa-QO-fs9oIidMW80Lg)

### 4.取消勾选 Metal 中 API Validation

![image.png](https://dn-odum9helk.qbox.me/FqNZAGyh29RLueZRE2uupdG96nnO)  
![image.png](https://dn-odum9helk.qbox.me/FicxZvg_JQMVg6iWu_veYr8xD03m)

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云基于 Core 的 QPlayer2 接入指南

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 播放端 >[QPlayer2
iOS端](https://developer.qiniu.com/pili/sdk/12225/qplayer2-ios-side) > 基于 Core
的 QPlayer2 接入指南

#  基于 Core 的 QPlayer2 接入指南

最近更新时间: 2022-09-27 16:38:38

如果业务场景中没有复杂的场景切换，也不想用播放面板定制、播放器上层浮窗定制、播放器上层手势逻辑则可以只用qplayer2-core，接入成本低，学习门槛低。

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云QPlayer2  Android端

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 播放端 >QPlayer2 Android端

#  QPlayer2 Android端

最近更新时间: 2022-09-27 15:58:34

QPlayer2 Android端文档包含如下几个部分

  * 集成准备：主要介绍将QPlayer2引入到工程中的一些配置
  * 基于qplayer2-core的Qplayer2接入指南：如果仅仅使用qplayer2-core开发，则参考这个文档。
  * 基于ext扩展插件的Qplayer2接入指南： 如果同时要使用qplayer2-ext 和 qplayer2-core 则参考这个文档。

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云集成准备

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 播放端 >[QPlayer2
Android端](https://developer.qiniu.com/pili/sdk/12214/qplayer2-android) > 集成准备

#  集成准备

最近更新时间: 2022-09-27 15:58:44

## 集成准备

### 获取QPlayer2的licence

联系技术支持获取

### 添加 maven 仓库

确保 project 根目录下的 build.gradle 文件中的 repositories添加了`mavenCentral()`

![maven配置.png](https://dn-odum9helk.qbox.me/FmkFmHB4BnDA-nnwRxXNqQLVR0G1)

### 添加 QPlayer2 依赖

1.进入<https://github.com/pili-engineering/QPlayer2-Android>[
__](https://github.com/pili-engineering/QPlayer2-Android)查看最新QPlayer2的版本  
![最新版本号.png](https://dn-odum9helk.qbox.me/FsNryXBfoCOEczYCj6F-VanOt7tW)  
2.引入qplayer2-core和qplayer2-ext(可选)  
![引入qplayer2.png](https://dn-odum9helk.qbox.me/FoZpvGgAfndJfe_oIfKJh3aQmAYh)  
3.如果引入了qplayer2-ext 需要再引入  
`implementation "io.reactivex.rxjava3:rxjava:3.1.3"`  
`implementation 'io.reactivex.rxjava3:rxandroid:3.0.0'`

### 添加权限声明

在 AndroidManifest.xml 文件中声明 SDK 需要的权限。  
`<uses-permission android:name="android.permission.INTERNET" />`  
`<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />`

### 添加混淆规则

  * qplayer2-core  
`-keep class com.qiniu.qmedia.** {*;} `

  * qplayer2-ext  
`-keep class com.qiniu.qplayer2ext.** {*;} `

以上内容是否对您有帮助？
human: 如何处理七牛云的直播云基于Core的Qplayer2接入指南

gpt: [直播云](https://developer.qiniu.com/pili) > SDK 下载 > 播放端 >[QPlayer2
Android端](https://developer.qiniu.com/pili/sdk/12214/qplayer2-android) >
基于Core的Qplayer2接入指南

#  基于Core的Qplayer2接入指南

最近更新时间: 2022-09-27 15:58:53

如果业务场景中没有复杂的场景切换，也不想用播放面板定制、播放器上层浮窗定制、播放器上层手势逻辑则可以只用qplayer2-core，接入成本低，学习门槛低。

以上内容是否对您有帮助？