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表示华南 }