class Pili::Stream
Attributes
created_at[R]
credentials[R]
disabled[RW]
hosts[R]
hub[R]
id[R]
profiles[R]
publish_key[RW]
publish_security[RW]
title[R]
updated_at[R]
Public Class Methods
new(credentials, options = {})
click to toggle source
# File lib/pili/stream.rb, line 9 def initialize(credentials, options = {}) @credentials = credentials @id = options["id"] @title = options["title"] @hub = options["hub"] @profiles = options["profiles"] || [] @publish_key = options["publishKey"] @publish_security = options["publishSecurity"] @disabled = options["disabled"] @hosts = options["hosts"] @created_at = options["createdAt"] @updated_at = options["updatedAt"] end
Public Instance Methods
delete()
click to toggle source
# File lib/pili/stream.rb, line 45 def delete API.delete_stream(@credentials, @id) end
disable()
click to toggle source
# File lib/pili/stream.rb, line 40 def disable API.update_stream(@credentials, @id, disabled: true) end
enable()
click to toggle source
# File lib/pili/stream.rb, line 35 def enable API.update_stream(@credentials, @id, disabled: false) end
hls_live_urls()
click to toggle source
# File lib/pili/stream.rb, line 94 def hls_live_urls live_hls_host = @hosts["live"]["hls"] urls = { Config.origin => "http://#{live_hls_host}/#{@hub}/#{@title}.m3u8" } @profiles.each do |profile| urls[profile] = "http://#{live_hls_host}/#{@hub}/#{@title}@#{profile}.m3u8" end urls end
hls_playback_urls(start_second = -1, end_second = -1)
click to toggle source
# File lib/pili/stream.rb, line 107 def hls_playback_urls(start_second = -1, end_second = -1) name = Time.now.to_i.to_s resp = API.save_stream_as(@credentials, @id, name, nil, start_second, end_second) urls = { Config.origin => resp["url"] } urls end
http_flv_live_urls()
click to toggle source
# File lib/pili/stream.rb, line 81 def http_flv_live_urls live_hdl_host = @hosts["live"]["hdl"] urls = { Config.origin => "http://#{live_hdl_host}/#{@hub}/#{@title}.flv" } @profiles.each do |profile| urls[profile] = "http://#{live_hdl_host}/#{@hub}/#{@title}@#{profile}.flv" end urls end
rtmp_live_urls()
click to toggle source
# File lib/pili/stream.rb, line 68 def rtmp_live_urls live_rtmp_host = @hosts["live"]["rtmp"] urls = { Config.origin => "rtmp://#{live_rtmp_host}/#{@hub}/#{@title}" } @profiles.each do |profile| urls[profile] = "rtmp://#{live_rtmp_host}/#{@hub}/#{@title}@#{profile}" end urls end
rtmp_publish_url()
click to toggle source
# File lib/pili/stream.rb, line 55 def rtmp_publish_url rtmp_publish_host = @hosts["publish"]["rtmp"] if @publish_security == "static" return "rtmp://#{rtmp_publish_host}/#{@hub}/#{@title}?key=#{@publish_key}" else nonce = Time.now.to_i token = Credentials.sign(publish_key, "/#{@hub}/#{@title}?nonce=#{nonce}") return "rtmp://#{rtmp_publish_host}/#{@hub}/#{@title}?nonce=#{nonce}&token=#{token}" end end
save_as(name, format, start_time, end_time, notify_url = nil, pipeline = nil)
click to toggle source
# File lib/pili/stream.rb, line 137 def save_as(name, format, start_time, end_time, notify_url = nil, pipeline = nil) API.save_stream_as(@credentials, @id, name, format, start_time, end_time, notify_url, pipeline) end
segments(options = {})
click to toggle source
# File lib/pili/stream.rb, line 50 def segments(options = {}) API.get_stream_segments(@credentials, @id, options) end
snapshot(name, format, options = {})
click to toggle source
# File lib/pili/stream.rb, line 132 def snapshot(name, format, options = {}) API.snapshot(@credentials, @id, name, format, options) end
status()
click to toggle source
# File lib/pili/stream.rb, line 25 def status API.get_stream_status(@credentials, @id) end
to_h()
click to toggle source
# File lib/pili/stream.rb, line 142 def to_h { credentials: @credentials, id: @id, title: @title, hub: @hub, profiles: @profiles, publish_key: @publish_key, publish_security: @publish_security, disabled: @disabled, hosts: @hosts, created_at: @created_at, updated_at: @updated_at } end
to_json()
click to toggle source
# File lib/pili/stream.rb, line 116 def to_json { id: @id, title: @title, hub: @hub, profiles: @profiles, publish_key: @publish_key, publish_security: @publish_security, disabled: @disabled, hosts: @hosts, created_at: @created_at, updated_at: @updated_at }.to_json end
update(options = {})
click to toggle source
# File lib/pili/stream.rb, line 30 def update(options = {}) API.update_stream(@credentials, @id, self.to_h.merge!(options)) end