Documentation
¶
Index ¶
- Constants
- Variables
- type Channel
- type Device
- type DeviceChannels
- type DeviceVideoItems
- type DomainInfo
- type DynamicLiveRoute
- type FlowBadwidthData
- type M
- type Manager
- func (manager *Manager) AddDevice(device *Device) (*Device, error)
- func (manager *Manager) AddDomain(nsId string, domainInfo *DomainInfo) error
- func (manager *Manager) AddNamespace(ns *NameSpace) (*NameSpace, error)
- func (manager *Manager) AddStream(nsId string, stream *Stream) (*Stream, error)
- func (manager *Manager) AddTemplate(tmpl *Template) (*Template, error)
- func (manager *Manager) DeleteChannel(nsId, gbId, channelId string) error
- func (manager *Manager) DeleteDevice(nsId string, gbId string) error
- func (manager *Manager) DeleteDomain(nsId string, domain string) error
- func (manager *Manager) DeleteNamespace(nsId string) error
- func (manager *Manager) DeleteSnapshots(nsId, streamId string, files []string) error
- func (manager *Manager) DeleteStream(nsId string, streamId string) error
- func (manager *Manager) DeleteStreamRecordHistories(nsId, streamId string, files []string) error
- func (manager *Manager) DeleteTemplate(templId string) error
- func (manager *Manager) DisableNamespace(nsId string) error
- func (manager *Manager) DisableStream(nsId string, streamId string) error
- func (manager *Manager) DynamicPublishPlayURL(nsId string, streamId string, route *DynamicLiveRoute) (*RouteRet, error)
- func (manager *Manager) EnableNamespace(nsId string) error
- func (manager *Manager) EnableStream(nsId string, streamId string) error
- func (manager *Manager) FetchCatalog(nsId, gbId string) error
- func (manager *Manager) ListChannels(nsId string, gbId string, prefix string) (*DeviceChannels, error)
- func (manager *Manager) ListDevice(nsId string, offset, line int, prefix, state string, qType int) ([]Device, int64, error)
- func (manager *Manager) ListDomain(nsId string) ([]DomainInfo, error)
- func (manager *Manager) ListNamespace(offset, line int, sortBy string) ([]NameSpace, int64, error)
- func (manager *Manager) ListStream(nsId string, offset, line int, prefix, sortBy string, qType int) ([]Stream, int64, error)
- func (manager *Manager) ListTemplate(offset, line int, sortBy string, templateType int, match string) ([]Template, int64, error)
- func (manager *Manager) OndemandSnap(nsId, streamId string) error
- func (manager *Manager) QueryBandwidth(nsId, streamId, tu string, start, end int) (*FlowBadwidthData, error)
- func (manager *Manager) QueryChannel(nsId, gbId, channelId string) (*Channel, error)
- func (manager *Manager) QueryDevice(nsId string, gbId string) (*Device, error)
- func (manager *Manager) QueryFlow(nsId, streamId, tu string, start, end int) (*FlowBadwidthData, error)
- func (manager *Manager) QueryGBRecordHistories(nsId, gbId, chId string, start, end int) (*DeviceVideoItems, error)
- func (manager *Manager) QueryNamespace(nsId string) (*NameSpace, error)
- func (manager *Manager) QueryStream(nsId string, streamId string) (*Stream, error)
- func (manager *Manager) QueryStreamCover(nsId string, streamId string) (string, error)
- func (manager *Manager) QueryStreamPubhistories(nsId string, streamId string, start, end int, line, offset int) ([]StreamPublishHistory, int64, error)
- func (manager *Manager) QueryStreamRecordHistories(nsId string, streamId string, start, end int, marker string, line int, ...) ([]RecordHistory, string, error)
- func (manager *Manager) QueryTemplate(templId string) (*Template, error)
- func (manager *Manager) RecordClipsSaveas(nsId, streamId string, arg *saveasArgs) (*saveasReply, error)
- func (manager *Manager) RecordsPlayback(nsId, streamId string, start, end int) (string, error)
- func (manager *Manager) StartDevice(nsId string, gbId string, channels []string) error
- func (manager *Manager) StartRecord(nsId, streamId string) error
- func (manager *Manager) StaticPublishPlayURL(nsId, streamId string, route *StaticLiveRoute) (string, error)
- func (manager *Manager) StopDevice(nsId string, gbId string, channels []string) error
- func (manager *Manager) StopRecord(nsId, streamId string) error
- func (manager *Manager) StopStream(nsId string, streamId string) error
- func (manager *Manager) StreamsSnapshots(nsId string, streamId string, start, end int, qtype int, line int, ...) ([]byte, error)
- func (manager *Manager) UpdateDevice(nsId string, gbId string, ops []PatchOperation) (*Device, error)
- func (manager *Manager) UpdateNamespace(nsId string, ops []PatchOperation) (*NameSpace, error)
- func (manager *Manager) UpdateStream(nsId string, streamId string, ops []PatchOperation) (*Stream, error)
- func (manager *Manager) UpdateTemplate(templId string, ops []PatchOperation) (*Template, error)
- type NameSpace
- type PatchOperation
- type QueryChannelsArgs
- type RecordHistory
- type RoutePlayUrls
- type RouteRet
- type SipAddr
- type StaticLiveRoute
- type Stream
- type StreamPublishHistory
- type Template
Constants ¶
const ( DomainPublishRTMP string = "publishRtmp" DomainLiveRTMP string = "liveRtmp" DomainLiveHLS string = "liveHls" DomainLiveHDL string = "liveHdl" )
Variables ¶
var APIHTTPScheme = "http://"
APIHTTPScheme 指定了在请求 API 服务器时使用的 HTTP 模式.
var APIHost = "qvs.qiniuapi.com/v1"
APIHost 指定了 API 服务器的地址
Functions ¶
This section is empty.
Types ¶
type Device ¶
type Device struct {
NamespaceId string `json:"nsId"`
Name string `json:"name"`
GBId string `json:"gbId"`
Type int `json:"type"`
Username string `json:"username"`
Password string `json:"password"`
PullIfRegister bool `json:"pullIfRegister"` //按需拉流
Desc string `json:"desc"`
NamespaceName string `json:"nsName"`
State string `json:"state"`
Channels int `json:"channels"`
Vendor string `json:"vendor"`
CreatedAt int64 `json:"createdAt"`
UpdatedAt int64 `json:"updatedAt"`
LastRegisterAt int64 `json:"lastRegisterAt"`
LastKeepaliveAt int64 `json:"lastKeepaliveAt"`
}
type DeviceChannels ¶
type DeviceVideoItems ¶
type DeviceVideoItems struct {
Items []deviceVideoItem `json:"items"`
}
type DomainInfo ¶
type DynamicLiveRoute ¶
type FlowBadwidthData ¶
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager 代表一个 qvs 用户的客户端
func NewManager ¶
func NewManager(mac *auth.Credentials, tr http.RoundTripper) *Manager
New 初始化 Client.
func (*Manager) AddDevice ¶
创建设备API 参数device需要赋值字段:
NamespaceId 必填 Name GBId Username 必填 Password 必填 PullIfRegister Desc Type
func (*Manager) AddDomain ¶
func (manager *Manager) AddDomain(nsId string, domainInfo *DomainInfo) error
添加域名API
请求参数Body: 只需填入domain和type
domainType支持四种类型 "publishRtmp":rtmp推流, "liveRtmp": rtmp播放, "liveHls": hls播放, "liveHdl": flv播放
func (*Manager) AddNamespace ¶
创建空间API
请求参数Body: name必填 accessType必填 rtmpUrlType当accessType为"rtmp"时必填 domains当rtmpUrlType为1时必填
func (*Manager) AddTemplate ¶
创建模板API
func (*Manager) DeleteChannel ¶
删除通道
func (*Manager) DeleteDevice ¶
删除设备API
func (*Manager) DeleteDomain ¶
删除域名API
func (*Manager) DeleteNamespace ¶
删除空间API
func (*Manager) DeleteSnapshots ¶
删除截图
func (*Manager) DeleteStream ¶
删除流API
func (*Manager) DeleteStreamRecordHistories ¶
删除录制片段
func (*Manager) DeleteTemplate ¶
删除模板API
func (*Manager) DisableNamespace ¶
禁用空间API
func (*Manager) DisableStream ¶
禁用流
func (*Manager) DynamicPublishPlayURL ¶
func (manager *Manager) DynamicPublishPlayURL(nsId string, streamId string, route *DynamicLiveRoute) (*RouteRet, error)
动态获取流地址API:推拉流IP地址计算最合适的设备端推拉流地址
func (*Manager) EnableNamespace ¶
启用空间API
func (*Manager) EnableStream ¶
恢复流
func (*Manager) ListChannels ¶
func (manager *Manager) ListChannels(nsId string, gbId string, prefix string) (*DeviceChannels, error)
查询通道列表
func (*Manager) ListDevice ¶
func (manager *Manager) ListDevice(nsId string, offset, line int, prefix, state string, qType int) ([]Device, int64, error)
查询设备列表API
func (*Manager) ListDomain ¶
func (manager *Manager) ListDomain(nsId string) ([]DomainInfo, error)
域名列表API
func (*Manager) ListNamespace ¶
列出空间API
func (*Manager) ListStream ¶
func (manager *Manager) ListStream(nsId string, offset, line int, prefix, sortBy string, qType int) ([]Stream, int64, error)
查询流列表API
func (*Manager) ListTemplate ¶
func (manager *Manager) ListTemplate(offset, line int, sortBy string, templateType int, match string) ([]Template, int64, error)
获取模版列表API
func (*Manager) OndemandSnap ¶
按需截图
func (*Manager) QueryBandwidth ¶
func (manager *Manager) QueryBandwidth(nsId, streamId, tu string, start, end int) (*FlowBadwidthData, error)
查询带宽数据
func (*Manager) QueryChannel ¶
查询通道详情
func (*Manager) QueryDevice ¶
查询设备API
func (*Manager) QueryFlow ¶
func (manager *Manager) QueryFlow(nsId, streamId, tu string, start, end int) (*FlowBadwidthData, error)
查询流量数据
func (*Manager) QueryGBRecordHistories ¶
func (manager *Manager) QueryGBRecordHistories(nsId, gbId, chId string, start, end int) (*DeviceVideoItems, error)
查询本地录像列表 普通设备chId可以忽略, 置为空字符串即可
func (*Manager) QueryNamespace ¶
查询空间信息API
func (*Manager) QueryStream ¶
查询流API
func (*Manager) QueryStreamCover ¶
查询流封面
func (*Manager) QueryStreamPubhistories ¶
func (manager *Manager) QueryStreamPubhistories(nsId string, streamId string, start, end int, line, offset int) ([]StreamPublishHistory, int64, error)
查询推流历史记录
func (*Manager) QueryStreamRecordHistories ¶
func (manager *Manager) QueryStreamRecordHistories(nsId string, streamId string, start, end int, marker string, line int, format string) ([]RecordHistory, string, error)
查询视频流的录制记录
func (*Manager) QueryTemplate ¶
查询模板信息API
func (*Manager) RecordClipsSaveas ¶
func (manager *Manager) RecordClipsSaveas(nsId, streamId string, arg *saveasArgs) (*saveasReply, error)
录制视频片段合并
func (*Manager) RecordsPlayback ¶
录制回放
func (*Manager) StartDevice ¶
启动设备拉流API
func (*Manager) StartRecord ¶
启动按需录制
func (*Manager) StaticPublishPlayURL ¶
func (manager *Manager) StaticPublishPlayURL(nsId, streamId string, route *StaticLiveRoute) (string, error)
静态获取流地址API:根据domain生成推拉流地址
func (*Manager) StopDevice ¶
停止设备拉流API
func (*Manager) StopStream ¶
停止推流
func (*Manager) StreamsSnapshots ¶
func (manager *Manager) StreamsSnapshots(nsId string, streamId string, start, end int, qtype int, line int, marker string) ([]byte, error)
查询截图列表
func (*Manager) UpdateDevice ¶
func (manager *Manager) UpdateDevice(nsId string, gbId string, ops []PatchOperation) (*Device, error)
更新设备API
func (*Manager) UpdateNamespace ¶
func (manager *Manager) UpdateNamespace(nsId string, ops []PatchOperation) (*NameSpace, error)
更新空间API
可编辑参数: name/desc/callBack/recordTemplateId/snapshotTemplateId/recordTemplateApplyAll/snapshotTemplateApplyAll
func (*Manager) UpdateStream ¶
func (manager *Manager) UpdateStream(nsId string, streamId string, ops []PatchOperation) (*Stream, error)
更新流API
func (*Manager) UpdateTemplate ¶
func (manager *Manager) UpdateTemplate(templId string, ops []PatchOperation) (*Template, error)
修改模板API
type NameSpace ¶
type NameSpace struct {
ID string `json:"id"`
Name string `json:"name"` // 空间名称(格式"^[a-zA-Z0-9_-]{1,100}$")
Desc string `json:"desc,omitempty"` // 空间描述
AccessType string `json:"accessType"` // 接入类型"gb28181"或者“rtmp”
RTMPURLType int `json:"rtmpUrlType"` // accessType为“rtmp”时,推拉流地址计算方式,1:static, 2:dynamic
Zone string `json:"zone"` // zone为服务区域配置项,可选项为z0, z1, z2,默认为z0. z0表示华东, z1表示华北、z2表示华南
Domains []string `json:"domains"` // 直播域名
Callback string `json:"callback,omitempty""` // 后台服务器回调URL
Disabled bool `json:"disabled"` // 流是否被启用, false:启用,true:禁用
RecordTemplateId string `jons:"recordTemplateId,omitempty"` // 录制模版id
SnapShotTemplateId string `jons:"snapshotTemplateId,omitempty"` // 截图模版id
RecordTemplateApplyAll bool `json:"snapshotTemplateApplyAll"` // 空间模版是否应用到全局
SnapTemplateApplyAll bool `json:"snapshotTemplateApplyAll"` // 截图模版是否应用到全局
HLSLowLatency bool `json:"hlsLowLatency"` // HLS低延时开关
CreatedAt int64 `json:"createdAt,omitempty"` // 空间创建时间
UpdatedAt int64 `json:"updatedAt,omitempty"` // 空间更新时间
DevicesCount int64 `json:"deviceCount"` // 设备数量
StreamCount int64 `json:"streamCount"` // 流数量
OnlineStreamCount int64 `json:"onlineStreamCount"` // 在线流数量
DisabledStreamCount int64 `json:"disabledStreamCount"` // 禁用流数量
UrlMode int `json:"urlMode"` // 推拉流地址计算方式,1:static, 2:dynamic
SipAddrs []SipAddr `json:"sipAddrs"` // sip信息数组
OnDemandPull bool `json:"onDemandPull"` // 按需拉流开关
}
type PatchOperation ¶
type QueryChannelsArgs ¶
type RecordHistory ¶
type RoutePlayUrls ¶
type RouteRet ¶
type RouteRet struct {
PublishUrl string `json:"publishUrl"` // rtmp推流地址
PlayUrls RoutePlayUrls `json:"playUrls"` // 拉流URLs
PublishUrlExpired int64 `json:"publishUrlExpired"` // 推拉流地址过期时间点(unix时间戳,单位second)
}
type StaticLiveRoute ¶
type Stream ¶
type Stream struct {
StreamID string `json:"streamId"` // 流名称, 流名称在空间中唯一,可包含 字母、数字、中划线、下划线;1 ~ 100 个字符长;创建后将不可修改
Desc string `json:"desc,omitempty"` // 关于流的描述信息
NamespaceId string `json:"nsId"` // 所属的空间ID
Namespace string `json:"nsName"` // 所属的空间名称
RecordTemplateId string `json:"recordTemplateId"` // 录制模版ID,配置流维度的录制模板
SnapShotTemplateId string `json:"snapshotTemplateId"` // 截图模版ID,配置流维度的截图模板
Status bool `json:"status"` // 设备是否在线
Disabled bool `json:"disabled"` // 流是否被禁用
LastPushedAt int64 `json:"lastPushedAt"` // 最后一次推流时间,0:表示没有推流
CreatedAt int64 `json:"createdAt,omitempty"` // 流创建时间
UpdatedAt int64 `json:"updatedAt,omitempty"` // 流更新时间
// 以下字段只有在设备在线是才会出现
UserCount int `json:"userCount"`
ClientIp string `json:"clientIp,omitempty"`
AudioFrameRate int64 `json:"audioFrameRate,omitempty"`
BitRate int64 `json:"bitRate,omitempty"`
VideoFrameRate int64 `json:"videoFrameRate,omitempty"`
}
type StreamPublishHistory ¶
type Template ¶
type Template struct {
ID string `json:"id"`
Name string `json:"name"` // 模版名称,格式为 4 ~ 100个字符,可包含小写字母、数字、中划线、汉字)
Desc string `json:"desc,omitempty"` // 模版描述
Bucket string `json:"bucket"` // 模版对应的对象存储的bucket
DeleteAfterDays int `json:"deleteAfterDays"` // 存储过期时间,默认永久不过期
TemplateType int `json:"templateType"` // 模板类型,取值:0(录制模版), 1(截图模版)
FileType int `json:"fileType"` // 文件存储类型,取值:0(普通存储),1(低频存储)
RecordType int `json:"recordType"` // 录制模式, 0(不录制),1(实时录制), 2(按需录制)
RecordFileFormat int `json:"recordFileFormat"` // 录制文件存储格式(多选), 范围:1(001)~7(111), 从左往右的三位二进制数分别代表MP4, FLV, M3U8; 0代表不选择该格式, 1代表选择;例如:2(010)代表选择FLV格式,6(110)代表选择MP4和FLV格式,1(001)代表选择M3U8格式,7(111)代表三种格式均选择
//record/ts/${namespaceId}/${streamId}/${startMs}-${endMs}.ts
TSFileNameTemplate string `json:"tsFileNameTemplate"`
//record/snap/${namespaceId}/${streamId}/${startMs}.jpg // 录制封面
RecordSnapFileNameFmt string `json:"recordSnapFileNameTemplate"`
RecordInterval int `json:"recordInterval"` //录制文件长度
M3u8FileNameTemplate string `json:"m3u8FileNameTemplate,omitempty"` // m3u8文件命名格式
FlvFileNameTemplate string `json:"flvFileNameTemplate,omitempty"` // flv文件命名格式
Mp4FileNameTemplate string `json:"mp4FileNameTemplate,omitempty"` // mp4文件命名格式
JpgOverwriteStatus bool `json:"jpgOverwriteStatus"` // 开启覆盖式截图(一般用于流封面)
JpgSequenceStatus bool `json:"jpgSequenceStatus"` // 开启序列式截图
JpgOnDemandStatus bool `json:"jpgOnDemandStatus"` // 开启按需截图
// 覆盖式截图文件命名格式:snapshot/jpg/${namespaceId}/${streamId}/${streamId}.jpg
JpgOverwriteFileNameTemplate string `json:"jpgOverwriteFileNameTemplate"`
// 序列式截图文件命名格式:snapshot/jpg/${namespaceId}/${streamId}/${startMs}.jpg
JpgSequenceFileNameTemplate string `json:"jpgSequenceFileNameTemplate"`
// 按需式截图文件命名格式:snapshot/jpg/${namespaceId}/${streamId}/ondemand-${startMs}.jpg
JpgOnDemandFileNameTemplate string `json:"jpgOnDemandFileNameTemplate"`
SnapInterval int `json:"snapInterval"` // 序列式截图时间间隔
CreatedAt int64 `json:"createdAt,omitempty"` // 模板创建时间
UpdatedAt int64 `json:"updatedAt,omitempty"` // 模板更新时间
Zone string `json:"zone"` // zone为服务区域配置项,可选项为z0, z1, z2,默认为z0. z0表示华东, z1表示华北、z2表示华南
}