1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/Bping-aliyun-live-go-sdk

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
doc
Loading...
README.md

АлиЮнь-Лайв-Го-СДК

SDK для прямой трансляции АлиЮнь на языке Go

Документация по видеосервису АлиЮнь

Быстрый старт

package main

import (
    "github.com/BPing/aliyun-live-go-sdk/aliyun"
    "github.com/BPing/aliyun-live-go-sdk/device/live"
    "github.com/BPing/aliyun-live-go-sdk/util"
    "time"
    "fmt"
)

const (
    AccessKeyId = "<Yours' Id>"
    AccessKeySecret = "<...>"
)

func main() {
    cert := aliyun.NewCredentials(AccessKeyId, AccessKeySecret)
    live := live.NewLive(cert, "<Yours' CDN>", "app-name",nil).SetDebug(true)
    resp := make(map[string]interface{})
    live.StreamsPublishList(time.Now().Add(-time.Hour * 12), time.Now(), &resp)
    fmt.Println(resp)
}

Сборка и установка

go get:

go get github.com/BPing/aliyun-live-go-sdk

Документация

Пример

Прямая трансляция (Live)

(v0.5, v0.5-)

  • Методы с суффиксом «WithApp» позволяют изменить запрос с именем приложения («AppName»).
  • Если имя приложения не указано или пусто, параметр AppName игнорируется.

(v0.6+)

  • Убраны методы с суффиксом «WithApp».
cert := client.NewCredentials(AccessKeyId, AccessKeySecret)
liveM := live.NewLive(cert, DomainName, AppName, nil).SetDebug(true)
  • Получение списка потоков
resp := make(map[string]interface{})
liveM.StreamsPublishList(time.Now().Add(-time.Hour * 12), time.Now(), &resp)
fmt.Println(resp)
// @appname Имя приложения пусто, этот параметр игнорируется
resp := make(map[string]interface{})
liveM.StreamsPublishListWithApp(AppName,time.Now().Add(-time.Hour * 12), time.Now(), &resp)
fmt.Println(resp)
  • Получение чёрного списка
resp = make(map[string]interface{})
err = liveM.StreamsBlockList(&resp)
fmt.Println(err, resp)
  • Получение количества онлайн-пользователей потока
resp1 := live.OnlineInfoResponse{}
err := liveM.StreamOnlineUserNum("video-name", &resp1)
fmt.Println(err, resp1)  
// @appname Имя приложения пусто, этот параметр игнорируется (v0.5,v0.5-)
resp1 := live.OnlineInfoResponse{}
err := liveM.StreamOnlineUserNumWithApp(AppName,"video-name", &resp1)
fmt.Println(err, resp1)  
  • Получение истории управления
resp = make(map[string]interface{})
err = liveM.StreamsControlHistory(time.Now().Add(-time.Hour * 12), time.Now(), &resp)
// (v0.5,v0.5-)
//err = liveM.StreamsControlHistoryWithApp(AppName,time.Now().Add(-time.Hour * 12), time.Now(), &resp)
fmt.Println(err, resp)
  • Запрет
resp = make(map[string]interface{})
err = liveM.ForbidLiveStreamWithPublisher("video-name", nil, &resp)
fmt.Println(err, resp)
  • Возобновление
resp = make(map[string]interface{})
err = liveM.ResumeLiveStreamWithPublisher("video-name", &resp)
fmt.Println(err, resp)

Запись (см. документацию)

Снимок экрана (2017-01-18)

  • Добавление конфигурации снимка экрана
oss := live.OssInfo{
    OssBucket:       OssBucket,
    OssEndpoint:     OssEndpoint,
    OssObject:       OssObject,
    OssObjectPrefix: OssObjectPrefix,
} 
config:=live.SnapshotConfig{
    OssInfo:oss,
    TimeInterval       : 5,
``` **Обновление конфигурации снимка экрана**

```go
config.SequenceOssObject="{AppName}/{StreamName}.jpg"
resp = make(map[string]interface{})
err=liveM.UpdateLiveAppSnapshotConfig(config,&resp)
fmt.Println(err, resp)

Добавление конфигурации снимка экрана

config.SequenceOssObject="{AppName}/{StreamName}.jpg"
resp = make(map[string]interface{})
err=liveM.AddLiveAppSnapshotConfig(config,&resp)
fmt.Println(err, resp)

Запрос конфигурации снимка экрана домена

param:=live.LiveSnapshotParam{
        PageNum:1,
        PageSize:10,
        Order:"asc",
    }
    resp = make(map[string]interface{})
    err=liveM.LiveSnapshotConfig(param,&resp)
    fmt.Println(err, resp)  

Информация о снимке экрана потока

resp = make(map[string]interface{})
err=liveM.LiveStreamSnapshotInfo("test-video-name1",time.Now().Add(-time.Hour*24*20), time.Now(),10,&resp)
fmt.Println(err, resp)   

Удаление конфигурации снимка экрана приложения

resp = make(map[string]interface{})
err=liveM.DeleteLiveAppSnapshotConfig(&resp)
fmt.Println(err, resp)    
  • Примечание. В запросе присутствуют фрагменты кода на языке Go. В ответе они сохранены без изменений. Получение RTMP-адреса для потоковой передачи
// RTMP 推流地址
// Если включена аутентификация потоковой передачи, то при истечении срока действия подписи будет сгенерирован новый действительный адрес для потоковой передачи.
stream.RtmpPublishUrl()

RTMP-адрес для онлайн-трансляции

url:=stream.RtmpLiveUrls()

Адрес трансляции в формате HLS

url:=stream.HlsLiveUrls()

FLV-адрес трансляции

url:=stream.HttpFlvLiveUrls()

Получение количества зрителей онлайн

num:=stream.OnlineUserNum()

Проверка подключения к трансляции

isOnline:=stream.Online()

Проверка блокировки трансляции

isBlocked:=stream.Blocked()

Получение частоты кадров и битрейта трансляции

frameRateAndBitRateInfo,err:=stream.FrameRateAndBitRateData()

Запрос информации о скриншотах

streamSnapshotInfo,err:=stream.SnapshotInfo(time.Now().Add(-time.Hour * 12), time.Now(), 10)

Зависимости

github.com/BPing/go-toolkit/http-client

Участники проекта

Лицензия

Проект лицензирован на условиях Apache License, Version 2.0.

Ссылки

Исходный проект: https://github.com/denverdino/aliyungo

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Алиюнь прямой эфир Golang SDK. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/Bping-aliyun-live-go-sdk.git
git@api.gitlife.ru:oschina-mirror/Bping-aliyun-live-go-sdk.git
oschina-mirror
Bping-aliyun-live-go-sdk
Bping-aliyun-live-go-sdk
master