Documentation ¶
Index ¶
- Constants
- Variables
- type ApplicationType
- type Audio
- type AudioLayout
- type BaseResponseOK
- type CodecVideo
- type HeaderConfigurator
- func (h *HeaderConfigurator) CreateBasicAuthHeader(username string, password string)
- func (h *HeaderConfigurator) CreateBasicAuthHeaderEncoded(base64EncodedToken string)
- func (h *HeaderConfigurator) CreateOmeBasicAuthHeader(username string, password string)
- func (h *HeaderConfigurator) CreateOmeBasicAuthHeaderEncoded(base64EncodedToken string)
- func (h *HeaderConfigurator) CreateOmeBasicAuthHeaderWord(word string)
- func (h *HeaderConfigurator) DeleteHeader(key string)
- func (h *HeaderConfigurator) DeleteHeaders()
- func (h *HeaderConfigurator) GetHeader(key string) *string
- func (h *HeaderConfigurator) GetHeaderKeyValuePairs() map[string]string
- func (h *HeaderConfigurator) GetHeaderKeys() []string
- func (h *HeaderConfigurator) GetHeaderValues() []string
- func (h *HeaderConfigurator) GetHeaders() map[string]string
- func (h *HeaderConfigurator) HasHeader(key string) bool
- func (h *HeaderConfigurator) HasHeaders() bool
- func (h *HeaderConfigurator) SetHeader(key string, value string)
- func (h *HeaderConfigurator) SetHeaders(headers map[string]string)
- type IOvenMediaClient
- type MediaType
- type RequestBodyPush
- type RequestCreateVirtualHost
- type RequestRecordingStart
- type RequestRecordingStop
- type ResponsePush
- type ResponsePushes
- type ResponseRecording
- type ResponseRecordingStart
- type ResponseRecordingStateList
- type ResponseStartPush
- type ResponseStats
- type ResponseStreamInfo
- type ResponseVirtualHost
- type ResponseVirtualList
- type SessionState
- type SimpleStream
- type Track
- type VRHostResponse
- type Video
- type VirtualHost
Constants ¶
View Source
const ( //virtual hosts V1_HOSTS = "/v1/vhosts" V1_HOSTS_NAME = "/v1/vhosts/%s" // PUSH // /v1/vhosts/{vhost_name}/apps/{app_name}:startPush V1_HOSTS_START_PUSH_NAME = "/v1/vhosts/%s/apps/%s:startPush" // V1_HOSTS_STOP_PUSH_NAME = "/v1/vhosts/%s/apps/%s:stopPush" //http://<OME_HOST>:<API_PORT>/v1/vhosts/{vhost_name}/apps/{app_name}:pushes V1_HOSTS_PUSHES_NAME = "/v1/vhosts/%s/apps/%s:pushes" // // RECORDING // http://<OME_HOST>:<API_PORT>/v1/vhosts/{vhost_name}/apps/{app_name}:startRecord V1_HOSTS_START_RECORD_NAME = "/v1/vhosts/%s/apps/%s:startRecord" //http://<OME_HOST>:<API_PORT>/v1/vhosts/{vhost_name}/apps/{app_name}:stopRecord V1_HOSTS_STOP_RECORD_NAME = "/v1/vhosts/%s/apps/%s:stopRecord" // http://<OME_HOST>:<API_PORT>/v1/vhosts/{vhost_name}/apps/{app_name}:records V1_HOSTS_RECORDS_NAME = "/v1/vhosts/%s/apps/%s:records" // // STATS // http://<OME_HOST>:<API_PORT>/v1/stats/current/vhosts/{vhost_name} V1_CURRENT_STATS_NAME = "/v1/stats/current/vhosts/%s" // http://<OME_HOST>:<API_PORT>/v1/stats/current/vhosts/{vhost_name}/apps/{app_name} V1_CURRENT_STATS_APPP_NAME = "/v1/stats/current/vhosts/%s/apps/%s" // http://<OME_HOST>:<API_PORT>/v1/stats/current/vhosts/{vhost_name}/apps/{app_name}/stream/{stream} V1_CURRENT_STATS_APPP_STREAMS_NAME = "/v1/stats/current/vhosts/%s/apps/%s/stream/%s" )
Variables ¶
View Source
var ( // GET_VHOSTS_BY_NAME = func(vhostName string) string { return fmt.Sprintf(V1_HOSTS_NAME, vhostName) } // Get all vhost start push by name GET_VHOSTS_PUSH_BY_NAME = func(vhostName string, appName string) string { return fmt.Sprintf(V1_HOSTS_START_PUSH_NAME, vhostName, appName) } // Get all vhost stop by name GET_VHOSTS_STOP_BY_NAME = func(vhostName string, appName string) string { return fmt.Sprintf(V1_HOSTS_STOP_PUSH_NAME, vhostName, appName) } // GET_VHOSTS_PUSHES_BY_NAME = func(vhostName string, appName string) string { return fmt.Sprintf(V1_HOSTS_PUSHES_NAME, vhostName, appName) } // GET_VHOSTS_START_RECORDED_BY_NAME = func(vhostName string, appName string) string { return fmt.Sprintf(V1_HOSTS_START_RECORD_NAME, vhostName, appName) } // GET_VHOSTS_STOP_RECORDED_BY_NAME = func(vhostName string, appName string) string { return fmt.Sprintf(V1_HOSTS_STOP_RECORD_NAME, vhostName, appName) } // GET_VHOSTS_RECORDS_BY_NAME = func(vhostName string, appName string) string { return fmt.Sprintf(V1_HOSTS_RECORDS_NAME, vhostName, appName) } // GET_CURRENT_STATS_NAME = func(vhostName string) string { return fmt.Sprintf(V1_CURRENT_STATS_NAME, vhostName) } // GET_CURRENT_STATS_APP_NAME = func(vhostName string, appName string) string { return fmt.Sprintf(V1_CURRENT_STATS_APPP_NAME, vhostName, appName) } // GET_CURRENT_STATS_STREAM = func(vhostName string, appName string, stream string) string { return fmt.Sprintf(V1_CURRENT_STATS_APPP_STREAMS_NAME, vhostName, appName, stream) } // GET_THUMBNAIL = func(appName string, streamKey string) string { return fmt.Sprintf("/%s/%s/thumb.png", appName, streamKey) } )
Functions ¶
This section is empty.
Types ¶
type ApplicationType ¶
type ApplicationType string
const ( LIVE ApplicationType = "live" VOD ApplicationType = "vod" )
type AudioLayout ¶
type AudioLayout string
const ( STEREO AudioLayout = "stereo" MONO AudioLayout = "mono" )
type BaseResponseOK ¶ added in v0.4.42
type CodecVideo ¶
type CodecVideo string
const ( H264 CodecVideo = "h264" H265 CodecVideo = "h265" VP8 CodecVideo = "vp8" OPUS CodecVideo = "opus" AAC CodecVideo = "aac" )
type HeaderConfigurator ¶ added in v0.3.0
func InitHeaderConfigurator ¶ added in v0.3.0
func InitHeaderConfigurator() *HeaderConfigurator
func (*HeaderConfigurator) CreateBasicAuthHeader ¶ added in v0.3.0
func (h *HeaderConfigurator) CreateBasicAuthHeader(username string, password string)
Authorization Stuff
func (*HeaderConfigurator) CreateBasicAuthHeaderEncoded ¶ added in v0.3.0
func (h *HeaderConfigurator) CreateBasicAuthHeaderEncoded(base64EncodedToken string)
func (*HeaderConfigurator) CreateOmeBasicAuthHeader ¶ added in v0.3.0
func (h *HeaderConfigurator) CreateOmeBasicAuthHeader(username string, password string)
func (*HeaderConfigurator) CreateOmeBasicAuthHeaderEncoded ¶ added in v0.3.0
func (h *HeaderConfigurator) CreateOmeBasicAuthHeaderEncoded(base64EncodedToken string)
func (*HeaderConfigurator) CreateOmeBasicAuthHeaderWord ¶ added in v0.4.1
func (h *HeaderConfigurator) CreateOmeBasicAuthHeaderWord(word string)
func (*HeaderConfigurator) DeleteHeader ¶ added in v0.3.0
func (h *HeaderConfigurator) DeleteHeader(key string)
func (*HeaderConfigurator) DeleteHeaders ¶ added in v0.3.0
func (h *HeaderConfigurator) DeleteHeaders()
func (*HeaderConfigurator) GetHeader ¶ added in v0.3.0
func (h *HeaderConfigurator) GetHeader(key string) *string
func (*HeaderConfigurator) GetHeaderKeyValuePairs ¶ added in v0.3.0
func (h *HeaderConfigurator) GetHeaderKeyValuePairs() map[string]string
func (*HeaderConfigurator) GetHeaderKeys ¶ added in v0.3.0
func (h *HeaderConfigurator) GetHeaderKeys() []string
func (*HeaderConfigurator) GetHeaderValues ¶ added in v0.3.0
func (h *HeaderConfigurator) GetHeaderValues() []string
func (*HeaderConfigurator) GetHeaders ¶ added in v0.3.0
func (h *HeaderConfigurator) GetHeaders() map[string]string
func (*HeaderConfigurator) HasHeader ¶ added in v0.3.0
func (h *HeaderConfigurator) HasHeader(key string) bool
func (*HeaderConfigurator) HasHeaders ¶ added in v0.3.0
func (h *HeaderConfigurator) HasHeaders() bool
func (*HeaderConfigurator) SetHeader ¶ added in v0.3.0
func (h *HeaderConfigurator) SetHeader(key string, value string)
func (*HeaderConfigurator) SetHeaders ¶ added in v0.3.0
func (h *HeaderConfigurator) SetHeaders(headers map[string]string)
type IOvenMediaClient ¶
type IOvenMediaClient interface { IsDebug() bool HealthCheck() error // VirtualHost CreateVirtualHost(name string) (*ResponseVirtualHost, error) GetAllVirtualHosts() (*ResponseVirtualList, error) // Application GetApplications(host string) (*ResponseVirtualList, error) //Stream GetStreams(host string, application string) (*ResponseVirtualList, error) GetStreamInfo(host string, application string, stream string) (*ResponseStreamInfo, error) // Push StartPush(vHost string, appName string, body RequestBodyPush) (*ResponseStartPush, error) StopPush(vHost string, appName string, body RequestBodyPush) (*resty.Response, error) GetAllPushes(vHost string, appName string) (*ResponsePushes, error) // Recording StartRecording(vHost string, appName string, body RequestRecordingStart) (*ResponseRecordingStart, error) StopRecording(vHost string, appName string, body RequestRecordingStop) (*ResponseRecordingStart, error) GetRecordingState(vHost string, appName string, body RequestRecordingStop) (*ResponseRecordingStart, error) ListRecordingState(vHost string, appName string) (*ResponseRecordingStateList, error) // Stats GetStatsVhosts(vHost string) (*ResponseStats, error) GetStatsAppVhosts(vHost string, appName string) (*ResponseStats, error) GetStatsStreamVhosts(vHost string, appName string, stream string) (*ResponseStats, error) // Thumbnail GetThumbnail(host string, appName string, streamKey string) (*resty.Response, error) }
func BuildOven ¶
func BuildOven(url string, debug bool, header *HeaderConfigurator) (IOvenMediaClient, error)
type Builder OvenMedia
type RequestBodyPush ¶ added in v0.2.0
type RequestBodyPush struct { ID string `json:"id" required:"true" validate:"nonnil,min=1"` Stream SimpleStream `json:"stream"` Protocol string `json:"protocol" required:"true" validate:"nonnil,min=1"` URL string `json:"url" required:"true" validate:"nonnil,min=1"` StreamKey string `json:"streamKey" required:"true" validate:"nonnil,min=1"` }
type RequestCreateVirtualHost ¶
type RequestCreateVirtualHost struct {
VirtualHostsName []VRHostResponse
}
type RequestRecordingStart ¶ added in v0.4.42
type RequestRecordingStart struct { ID string `json:"id" required:"true" validate:"nonnil,min=1"` Stream SimpleStream `json:"stream"` FilePath string `json:"filePath" required:"true" validate:"nonnil,min=1"` InfoPath string `json:"infoPath" required:"true" validate:"nonnil,min=1"` Interval *int `json:"interval,omitempty"` Schedule *string `json:"schedule,omitempty"` SegmentationRule *string `json:"segmentationRule,omitempty"` }
{ "id": "custom_id", "stream": { "name": "stream_o", "tracks": [ 100, 200 ] }, "filePath" : "/path/to/save/recorded/file_${Sequence}.ts", "infoPath" : "/path/to/save/information/file.xml", "interval" : 60000, # Split it every 60 seconds "schedule" : "0 0 1" # Split it at second 0, minute 0, every hours. "segmentationRule" : "continuity"
}
type RequestRecordingStop ¶ added in v0.4.42
type RequestRecordingStop struct {
ID string `json:"id" required:"true" validate:"nonnil,min=1"`
}
{ "id": "custom_id" }
type ResponsePush ¶ added in v0.2.0
type ResponsePush struct { App string `json:"app"` CreatedTime string `json:"createdTime"` ID string `json:"id"` Protocol string `json:"protocol"` SentBytes int `json:"sentBytes"` SentTime int `json:"sentTime"` Sequence int `json:"sequence"` StartTime string `json:"startTime"` State string `json:"state"` Stream struct { Name string `json:"name"` Tracks []int `json:"tracks"` } `json:"stream"` StreamKey string `json:"streamKey"` TotalSentBytes int `json:"totalsentBytes"` TotalSentTime int `json:"totalsentTime"` URL string `json:"url"` Vhost string `json:"vhost"` }
type ResponsePushes ¶ added in v0.4.0
type ResponsePushes struct { BaseResponseOK Response []struct { App string `json:"app"` CreatedTime time.Time `json:"createdTime"` FinishTime time.Time `json:"finishTime"` Id string `json:"id"` Protocol string `json:"protocol"` SentBytes int `json:"sentBytes"` SentTime int `json:"sentTime"` Sequence int `json:"sequence"` StartTime time.Time `json:"startTime"` State string `json:"state"` Stream struct { Name string `json:"name"` Tracks []int `json:"tracks"` } `json:"stream"` StreamKey string `json:"streamKey"` TotalsentBytes int `json:"totalsentBytes"` TotalsentTime int `json:"totalsentTime"` Url string `json:"url"` Vhost string `json:"vhost"` } `json:"response"` }
type ResponseRecording ¶ added in v0.4.42
type ResponseRecording struct { State string `json:"state"` ID string `json:"id"` Vhost string `json:"vhost"` App string `json:"app"` Stream struct { Name string `json:"name"` Tracks []int `json:"tracks"` } `json:"stream"` FilePath string `json:"filePath"` InfoPath string `json:"infoPath"` Interval int `json:"interval"` Schedule string `json:"schedule"` SegmentationRule string `json:"segmentationRule"` CreatedTime time.Time `json:"createdTime"` }
type ResponseRecordingStart ¶ added in v0.4.42
type ResponseRecordingStart struct { BaseResponseOK Response ResponseRecording `json:"response"` }
{ "message": "OK", "response": [ { "state": "ready", "id": "stream_o", "vhost": "default", "app": "app", "stream": { "name": "stream_o", "tracks": [] }, "filePath": "/path/to/save/recorded/file_${Sequence}.ts", "infoPath": "/path/to/save/information/file.xml", "interval": 60000, "schedule": "0 0 *1", "segmentationRule": "continuity", "createdTime": "2021-08-31T23:44:44.789+0900" } ], "statusCode": 200 }
type ResponseRecordingStateList ¶ added in v0.4.72
type ResponseRecordingStateList struct { BaseResponseOK Response []ResponseRecording `json:"response"` }
type ResponseStartPush ¶ added in v0.3.0
type ResponseStartPush struct { BaseResponseOK Response ResponsePush `json:"response"` }
PUSH Stuff
type ResponseStats ¶ added in v0.4.41
type ResponseStats struct { CreatedTime string `json:"createdTime"` LastRecvTime string `json:"lastRecvTime"` LastSentTime string `json:"lastSentTime"` LastUpdatedTime string `json:"lastUpdatedTime"` MaxTotalConnectionTime string `json:"maxTotalConnectionTime"` MaxTotalConnections int `json:"maxTotalConnections"` TotalBytesIn int `json:"totalBytesIn"` TotalBytesOut int `json:"totalBytesOut"` TotalConnections int `json:"totalConnections"` }
{ "createdTime": "2021-01-11T02:52:22.013+09:00", "lastRecvTime": "2021-01-11T04:11:41.734+09:00", "lastSentTime": "2021-01-11T02:52:22.013+09:00", "lastUpdatedTime": "2021-01-11T04:11:41.734+09:00", "maxTotalConnectionTime": "2021-01-11T02:52:22.013+09:00", "maxTotalConnections": 0, "totalBytesIn": 494713880, "totalBytesOut": 0, "totalConnections": 0 }
type ResponseStreamInfo ¶ added in v0.4.50
type ResponseStreamInfo struct { BaseResponseOK Response struct { Input struct { CreatedTime time.Time `json:"createdTime"` SourceType string `json:"sourceType"` SourceUrl string `json:"sourceUrl"` Tracks []Track `json:"tracks"` } `json:"input"` Name string `json:"name"` Outputs []struct { Name string `json:"name"` Tracks []struct { Id int `json:"id"` Name string `json:"name"` Type string `json:"type"` Video struct { Bypass bool `json:"bypass"` Bitrate string `json:"bitrate,omitempty"` Codec string `json:"codec,omitempty"` Framerate float64 `json:"framerate,omitempty"` Height int `json:"height,omitempty"` Width int `json:"width,omitempty"` } `json:"video,omitempty"` Audio struct { Bypass bool `json:"bypass"` Bitrate string `json:"bitrate,omitempty"` Channel int `json:"channel,omitempty"` Codec string `json:"codec,omitempty"` Samplerate int `json:"samplerate,omitempty"` } `json:"audio,omitempty"` } `json:"tracks"` } `json:"outputs"` } `json:"response"` }
type ResponseVirtualHost ¶
type ResponseVirtualHost struct {
VRHosts []VirtualHost
}
Response<VirtualHost>
type ResponseVirtualList ¶ added in v0.2.0
type ResponseVirtualList struct { BaseResponseOK Response []string `json:"response"` }
type SessionState ¶
type SessionState string
const ( READY SessionState = "Ready" STARTED SessionState = "Started" STOPPING SessionState = "Stopping" STOPPED SessionState = "Stopped" ERROR SessionState = "Error" )
type SimpleStream ¶ added in v0.4.64
type VRHostResponse ¶
type VRHostResponse struct {
Name string `json:"name"`
}
type VirtualHost ¶
type VirtualHost struct { BaseResponseOK Response VRHostResponse `json:"response"` }
Click to show internal directories.
Click to hide internal directories.