• Stars
    star
    120
  • Rank 295,983 (Top 6 %)
  • Language
    Java
  • License
    MIT License
  • Created almost 10 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Pili Streaming Cloud server-side library for Java

Pili Streaming Cloud Server-Side Library For JAVA

Features

  • URL
    • RTMP推流地址: client.RTMPPublishURL(domain, hub, streamKey, expireAfterDays)
    • RTMP直播地址: RTMPPlayURL(domain, hub, streamKey)
    • HLS直播地址: HLSPlayURL(domain, hub, streamKey)
    • HDL直播地址: HDLPlayURL(domain, hub, streamKey)
    • 直播封面地址: SnapshotPlayURL(domain, hub, streamKey)
  • Hub
    • 创建流: hub.create(streamKey)
    • 查询流: hub.get(streamKey)
    • 列出流: hub.list(prefix, limit, marker)
    • 列出正在直播的流: hub.listLive(prefix, limit, marker)
    • 批量查询直播实时信息: hub.batchLiveStatus(streamTitles)
  • Stream
    • 流信息: stream.info()
    • 禁用流: stream.disable() / stream.disable(disabledTill)
    • 解禁流: stream.enable()
    • 查询直播状态: stream.liveStatus()
    • 保存直播回放: stream.save(key, start, end) / stream.save(saveOptions)
    • 保存直播截图: stream.snapshot(snapshotOptions) zzz
    • 更改流的实时转码规格: stream.updateConverts(profiles)
    • 查询直播历史: stream.historyRecord(start, end)

Contents

Java version

The project is built with java 1.7.

Compile JAR

Firstly, make sure you have gradle on your machine.

Then all you have to do is just

gradle build

Dependencies

okhttp, okio, Gson

Install via gradle

compile 'com.qiniu.pili:pili-sdk-java:2.1.0'

Usage

Init

Client cli = new Client(accessKey,secretKey);

URL

Generate RTMP publish URL

String url = cli.RTMPPublishURL("publish-rtmp.test.com", "PiliSDKTest", "streamkey", 60);
/*
rtmp://publish-rtmp.test.com/PiliSDKTest/streamkey?e=1463023142&token=7O7hf7Ld1RrC_fpZdFvU8aCgOPuhw2K4eapYOdII:-5IVlpFNNGJHwv-2qKwVIakC0ME=
*/

Generate RTMP play URL

String url = cli.RTMPPlayURL("live-rtmp.test.com", "PiliSDKTest", "streamkey");
/*
rtmp://live-rtmp.test.com/PiliSDKTest/streamkey
*/

Generate HLS play URL

url = cli.HLSPlayURL("live-hls.test.com", "PiliSDKTest", "streamkey");
/*
http://live-hls.test.com/PiliSDKTest/streamkey.m3u8
*/

Generate HDL play URL

url = cli.HDLPlayURL("live-hdl.test.com", "PiliSDKTest", "streamkey");
/*
http://live-hdl.test.com/PiliSDKTest/streamkey.flv
*/

Generate Snapshot play URL

url = cli.SnapshotPlayURL("live-snapshot.test.com", "PiliSDKTest", "streamkey");
/*
http://live-snapshot.test.com/PiliSDKTest/streamkey.jpg
*/

Hub

Instantiate a Pili Hub object

public static void main(String args[]) { 
	Client cli = new Client(accessKey, secretKey);
	Hub hub = cli.newHub("PiliSDKTest");
	// ...
}

Create a new Stream

Stream stream = hub.create("streamkey")
System.out.println(stream.toJson());
/*
{"Hub":"PiliSDKTest","Key":"streamkey","DisabledTill":0}
*/

Get a Stream

Stream stream = hub.get("streamkey")
System.out.println(stream.toJson())
/*
{"Hub":"PiliSDKTest","Key":"streamkey","DisabledTill":0}
*/

List Streams

Hub.ListRet listRet = hub.list("str", 10, "")
/*
keys=[streamkey] marker=
*/

List live Streams

Hub.ListRet listRet = hub.listLive("str", 10, "")
/*
keys=[] marker=
*/

Batch live status

Hub.BatchLiveStatus[] statuses = hub.batchLiveStatus(new String[]{"strm1","strm2"});

Stream

Get stream info

Get the latest stream info

Stream stream = hub.get("streamkey")
stream.disable()
// will get the latest info from server
stream = stream.info()

Disable a Stream

Stream stream = hub.get("streamkey")
stream.disable()
stream = hub.get("streamkey")
/*
before disable: {"Hub":"PiliSDKTest","Key":"streamkey","DisabledTill":0}
after disable: {"Hub":"PiliSDKTest","Key":"streamkey","DisabledTill":-1}
*/

stream.disable(1488540526L);
stream.info();
/*
after disable: {"Hub":"PiliSDKTest","Key":"streamkey","DisabledTill":1488540526}
*/

Enable a Stream

Stream stream = hub.get("streamkey")
stream.enable()
stream = hub.get("streamkey")
/*
before disable: {"Hub":"PiliSDKTest","Key":"streamkey","DisabledTill":-1}
after disable: {"Hub":"PiliSDKTest","Key":"streamkey","DisabledTill":0}
*/

Get Stream live status

Stream.LiveStatus status = stream.liveStatus();
/*
{"startAt":1463022236,"clientIP":"222.73.202.226","bps":248,"fps":{"audio":45,"vedio":28,"data":0}}
*/

Get Stream history record

Stream.Record[] records = stream.historyRecord(0, 0)
/*
[{1463022236,1463022518}]
*/

Save Stream live playback

String fname = stream.save(0, 0)
/*
recordings/z1.hub1.strm1/0_1488529267.m3u8
*/

Snapshot Stream

Stream.SnapshotOptions opts = new Stream.SnapshotOptions();
opts.fname = "test";
stream.snapshot(opts);

Update converts

String[] profiles = {"480p", "720p"};
stream.updateConverts(profiles);

More Repositories

1

PLDroidPlayer

PLDroidPlayer 是七牛推出的一款免费的适用于 Android 平台的播放器 SDK,采用全自研的跨平台播放内核,拥有丰富的功能和优异的性能,可高度定制化和二次开发。
4,540
star
2

PLPlayerKit

PLPlayerKit 是七牛推出的一款免费的适用于 iOS 平台的播放器 SDK,采用全自研的跨平台播放内核,拥有丰富的功能和优异的性能,可高度定制化和二次开发。
2,006
star
3

PLDroidShortVideo

PLDroidShortVideo 是七牛推出的一款适用于 Android 平台的短视频 SDK,提供了包括美颜、滤镜、水印、断点录制、分段回删、视频编辑、混音特效、视频剪辑、本地转码、视频上传在内的多种功能,支持高度定制以及二次开发。
Java
1,684
star
4

PLDroidMediaStreaming

PLDroidMediaStreaming 是七牛推出的一款适用于 Android 平台的推流 SDK,支持 RTMP 推流,h.264 和 AAC 编码,硬编、软编支持。具有丰富的数据和状态回调,方便用户根据自己的业务定制化开发。具有直播场景下的重要功能,如:美颜、背景音乐、水印等功能。PLDroidMediaStreaming 是现在目前重点维护的版本,自带采集模块也支持用户自己做采集端。
Java
1,451
star
5

PLCameraStreamingKit

PLCameraStreamingKit 是 Pili 直播 SDK 的 iOS 推流端,是带有采集模块老版本 SDK。如果是新用户接入,建议使用 PLMediaStreamingKit。该版本支持 RTMP 推流,h.264 和 AAC 编码,硬编软编支持。具有丰富的数据和状态回调,方便用户根据自己的业务定制化开发。具有直播场景下的重要功能,如:美颜、背景音乐、水印等功能。
C
1,034
star
6

PLMediaStreamingKit

PLMediaStreamingKit 是七牛推出的一款适用于 iOS 平台的推流 SDK,支持 RTMP 推流,h.264 和 AAC 编码,硬编、软编支持。具有丰富的数据和状态回调,方便用户根据自己的业务定制化开发。具有直播场景下的重要功能,如:美颜、背景音乐、水印等功能。
Objective-C
542
star
7

PLShortVideoKit

PLShortVideoKit 是七牛推出的一款适用于 iOS 平台的短视频 SDK,提供了包括美颜、滤镜、水印、断点录制、分段回删、视频编辑、混音特效、视频剪辑、本地转码、视频上传在内的多种功能,支持高度定制以及二次开发。
Objective-C
448
star
8

PLStreamingKit

PLStreamingKit 是 Pili 直播 SDK 的 iOS 推流端,是不带采集模块老版本 SDK。如果是新用户接入,请使用 PLDroidMediaStreaming。该版本支持 RTMP 推流,h.264 和 AAC 编码,软编硬编支持。具有丰富的数据和状态回调,方便用户根据自己的业务定制化开发。具有直播场景下的重要功能,如:美颜、背景音乐、水印等功能。
Objective-C
250
star
9

ipcam_sdk

七牛推出了一款适用于嵌入式 IP Camera 设备进行 RTMP 推流的 SDK 开发套件
C++
169
star
10

wxapp-live-demo

七牛直播小程序 demo 代码
JavaScript
162
star
11

QNRTC-Web

QNRTCWeb 是七牛云推出的一款适用于 Web 平台的实时音视频 SDK,提供了包括音视频通话、静音、发布、订阅多种功能,提供灵活的接口,支持高度定制以及二次开发。
HTML
131
star
12

pili-librtmp

C
116
star
13

QNRTC-Android

QNDroidRTC 是七牛云推出的一款适用于 Android 平台的实时音视频 SDK,提供了包括音视频通话、美颜、滤镜、水印等多种功能,提供灵活的接口,支持高度定制以及二次开发。
Java
114
star
14

QPlayer2-Android

HTML
96
star
15

pili-sdk-php

Pili Streaming Cloud server-side library for PHP
PHP
73
star
16

pili-sdk-nodejs

Pili Streaming Cloud server-side library for NodeJS
JavaScript
68
star
17

pili-html5-player-example

HTML5 <audio> or <video> player with Flash and Silverlight shims that mimics the HTML5 MediaElement API, enabling a consistent UI in all browsers.
JavaScript
60
star
18

pili-sdk-python

Pili Streaming Cloud server-side library for Python
Python
52
star
19

QNRTC-iOS

QNRTCKit 是七牛云推出的一款适用于 iOS 平台的实时音视频 SDK,提供了包括音视频通话、美颜、滤镜、水印等多种功能,提供灵活的接口,支持高度定制以及二次开发。
Objective-C
52
star
20

PLDroidRTCStreaming

PLDroidRTCStreaming 是七牛推出的一款适用于 Android 平台的连麦互动 SDK,支持低延时音视频通话、RTMP 直播推流,可快速开发一对一视频聊天、多人视频会议、网红直播连麦、狼人杀、娃娃机等应用,接口简单易用,支持高度定制以及二次开发。
Java
50
star
21

PLAudioStreamingKit

Pili Live Streaming SDK for iOS, AAC hardware encoding and RTMP publishing supported.
C
48
star
22

pili-sdk-php.v2

Pili Streaming Cloud Server-Side Library For PHP, Version 2
PHP
46
star
23

pili-sdk-go

Pili Streaming Cloud server-side library for Go
Go
38
star
24

PLWinPlayer

PLWinPlayer 是七牛推出的一款适用于 Windows 平台的播放器 SDK,采用全自研的跨平台播放内核,拥有丰富的功能和优异的性能,可高度定制化和二次开发。
C++
38
star
25

pili-streaming-react-native

pili-streaming-react-native 是支持 React Native 项目添加直播推流功能的 SDK,底层基于 PLDroidMediaStreaming (Android) 和 PLMediaStreamingKit(iOS) 实现。
Java
37
star
26

pili-react-native

Pili Streaming Cloud React Native SDK
Java
32
star
27

pili-sdk-go.v2

Pili Streaming Cloud Server-Side Library For Go, Version 2
Go
28
star
28

PLLiving

The best practice of Pili iOS Streaming SDK
Objective-C
26
star
29

QPlayer2-IOS

HTML
25
star
30

PLRTCStreamingKit

PLRTCStreamingKit 是七牛推出的一款适用于 iOS 平台的连麦互动 SDK,支持低延时音视频通话、RTMP 直播推流,可快速开发一对一视频聊天、多人视频会议、网红直播连麦、狼人杀、娃娃机等应用,接口简单易用,支持高度定制以及二次开发。
Objective-C
25
star
31

pili-sdk-ruby

Pili Streaming Cloud server-side library for Ruby
Ruby
23
star
32

pili-videojs-example

An example application in Video.js
JavaScript
22
star
33

QNRTC-WxApp

QNRTCWxApp 是七牛云推出的一款适用于微信小程序平台的实时音视频 SDK,提供了包括音视频通话、静音、发布、订阅多种功能,
20
star
34

PLLiveCourse

Pili 公开课
Objective-C
19
star
35

QNRTC-SampleCode-Video-Basic

Sample Code 工程用于展示如何 加入/离开 房间,发布/订阅 音视频数据流,动态 启用/禁用 本地音视频数据流,切换前后置摄像头等功能使用
Objective-C
17
star
36

QNRTC-Windows

QNRTCWin 是七牛云推出的一款适用于 Windows 平台的实时音视频 SDK,提供了灵活的接口,支持高度定制以及二次开发。
C++
16
star
37

pili-sdk-csharp

C#
13
star
38

PLDroidMediaStreaming-ByteDance

Java
13
star
39

pilipilid

pilipilid
JavaScript
13
star
40

PLMediaStreamingKit-ByteDance

PLMediaStreamingKit-ByteDance 是七牛推出的一款适用于 iOS 平台的具有高级特效功能的推流 SDK,提供了包括高级美颜、高级滤镜、动态贴纸、水印、推流、混音、QUIC等在内的多种功能,支持高度定制以及二次开发。
Objective-C
13
star
41

cpili

A command line tool for streaming an h.264 / aac / flv file over RTMP
C
12
star
42

pili-sdk-demo-server

七牛直播/连麦 SDK 官方 demo 的后台业务服务器代码
Go
10
star
43

QNCube_Android

牛魔方是七牛云推出的一款基于七牛rtc的方案研发demo集合app,包含了面试场景、工业检修、在线教育、在线ktv、互动娱乐、一起看电影、在线考试,语聊房、pk直播解决方案demo。
Kotlin
9
star
44

QNRTC-Linux

QNRTCLinux 是七牛云推出的一款适用于 Linux 平台的实时音视频 SDK,提供了灵活的接口,支持高度定制以及二次开发。
C++
8
star
45

docs

documentation for Pili
7
star
46

PLVendorLibs

The Third Party Dependency Libraries of iOS
C
7
star
47

QNRTC-Uniapp

Objective-C
7
star
48

QPlayer2-HarmonyOS-NEXT

TypeScript
7
star
49

QNLiveKit_Web

互动直播低代码Web
TypeScript
6
star
50

PLDroidShortVideo-ByteDance

Lua
6
star
51

pili-sdk-go-example

CSS
6
star
52

QNRTPlayer-Web

TypeScript
5
star
53

PLShortVideoKit-ByteDance

Lua
5
star
54

QNRTCLive-iOS

Lua
3
star
55

pili-sdk-c

Pili Streaming Cloud server-side library for C/C++
C
3
star
56

QNLiveKit_Server

互动直播低代码服务端
Go
3
star
57

QNShortVideo-ByteDance

Things related to ByteDance SDK and QNShortVideo SDK
Objective-C
3
star
58

pili-camera-sdk-demo

An example based on the pili-camera-sdk
C
3
star
59

QNLiveKit_Android

互动直播低代码Android
Kotlin
3
star
60

QNAISDK-iOS

Objective-C
3
star
61

PLMediaStreaming-RongCloud

Java
3
star
62

PLMediaStreaming-ByteDance

Things related to ByteDance SDK and PLMediaStreaming SDK
Objective-C
3
star
63

QNCube_Web

TypeScript
3
star
64

QPlayer2-Windows

HTML
2
star
65

QNRTCLive-Android

Lua
2
star
66

QNRTC-Signal

Signal API for QNRTC
2
star
67

QNRTPlayer-iOS

Objective-C
2
star
68

QNDroidIMSDK

Java
2
star
69

QNLiveKit_iOS

互动直播低代码iOS
Objective-C
1
star
70

QNRTC-ByteDance-Android

Lua
1
star
71

QNUniappIMSDK

QNUniappIMSDK
Vue
1
star
72

QNVideoTemplate-Android

Java
1
star
73

QAuth_iOS

一键登录对外demo
Objective-C
1
star
74

QNCube_Server

Go
1
star
75

NiuVideo-iOS

七牛 SDK 演示型 app 源码
Objective-C
1
star
76

QNShortVideo-FaceUnity

Things related to FaceUnity SDK and QNShortVideo SDK
Java
1
star
77

QNDroidWhiteBoardSDK

Kotlin
1
star
78

QNRTPlayer-Android

Java
1
star