Class: Abrizer::Data
Overview
Creates a JSON file with information about the videos
Instance Method Summary
collapse
#find_adaptations, #read_adaptations
#duration, #max_height, #max_width, #min_height, #min_width, #mp4_height, #mp4_width
#canvas_id, #data_id, #hlsts_aac_id, #hlsts_id, #media_base_url, #mp3_id, #mp4_id, #mpd_id, #poster_id, #sprites_id, #vp9_id, #vtt_id
#adaptations_filepath, #all_media_paths, #audio_filepath, #audio_filepath_fragmented, #basename, #canvas_filepath, #canvas_partial_filepath, #captions_filepath, #data_filepath, #data_partial_filepath, #ffprobe_filepath, #filename_directory, #first_image_filepath, #hlsts_aac_filepath, #hlsts_aac_partial_filepath, #hlsts_filepath, #hlsts_partial_filepath, #mp3_filepath, #mp3_partial_filepath, #mp4_filepath, #mp4_partial_filepath, #mpd_filepath, #mpd_partial_filepath, #output_directory, #output_directory_basename, #poster_filepath, #poster_image_filepath, #poster_partial_filepath, #sprites_filepath, #sprites_partial_filepath, #vp9_filepath, #vp9_partial_filepath, #webvtt_input_filepath
Constructor Details
#initialize(filepath, output_directory, base_url) ⇒ Data
Returns a new instance of Data.
10
11
12
13
14
15
|
# File 'lib/abrizer/data.rb', line 10
def initialize(filepath, output_directory, base_url)
@filepath = filepath
@output_directory = output_directory
@base_url = base_url
read_adaptations
end
|
Instance Method Details
#aac_source(json) ⇒ Object
122
123
124
125
126
127
128
129
|
# File 'lib/abrizer/data.rb', line 122
def aac_source(json)
if File.exist? hlsts_aac_filepath
json.child! do
json.id hlsts_aac_id
json.format 'audio/aac'
end
end
end
|
#captions(json) ⇒ Object
131
132
133
134
135
136
137
138
139
140
141
|
# File 'lib/abrizer/data.rb', line 131
def captions(json)
if File.exist? captions_filepath
json.child! do
json.id vtt_id
json.format 'text/vtt'
json.kind 'captions'
json.label 'English captions'
json.language 'en'
end
end
end
|
#create ⇒ Object
17
18
19
20
21
22
|
# File 'lib/abrizer/data.rb', line 17
def create
FileUtils.mkdir_p output_directory unless File.exist? output_directory
File.open(data_filepath, 'w') do |fh|
fh.puts create_json
end
end
|
#create_json ⇒ Object
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/abrizer/data.rb', line 24
def create_json
Jbuilder.encode do |json|
json.id data_id
json.max_width max_width
json.max_height max_height
json.duration duration
json.poster do
poster(json)
end
json.video do
mpd_source(json)
hlsts_source(json)
vp9_source(json)
mp4_source(json)
end
json.audio do
mp3_source(json)
aac_source(json)
end
json.tracks do
captions(json)
end
json.sprites do
sprites(json)
end
end
end
|
#hlsts_source(json) ⇒ Object
74
75
76
77
78
79
80
81
82
83
84
85
|
# File 'lib/abrizer/data.rb', line 74
def hlsts_source(json)
if File.exist? hlsts_filepath
json.child! do
json.id hlsts_id
json.type "Video"
json.format "application/x-mpegURL"
json.width max_width
json.height max_height
end
end
end
|
#mp3_source(json) ⇒ Object
113
114
115
116
117
118
119
120
|
# File 'lib/abrizer/data.rb', line 113
def mp3_source(json)
if File.exist? mp3_filepath
json.child! do
json.id mp3_id
json.format 'audio/mpeg'
end
end
end
|
#mp4_source(json) ⇒ Object
100
101
102
103
104
105
106
107
108
109
110
111
|
# File 'lib/abrizer/data.rb', line 100
def mp4_source(json)
if File.exist? mp4_filepath
json.child! do
json.id mp4_id
json.type "Video"
json.format "video/mp4"
json.width mp4_width
json.height mp4_height
end
end
end
|
#mpd_source(json) ⇒ Object
63
64
65
66
67
68
69
70
71
72
|
# File 'lib/abrizer/data.rb', line 63
def mpd_source(json)
if File.exist? mpd_filepath
json.child! do
json.id mpd_id
json.format "application/dash+xml"
json.width max_width
json.height max_height
end
end
end
|
#poster(json) ⇒ Object
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/abrizer/data.rb', line 52
def poster(json)
if File.exist? poster_filepath
json.child! do
json.id poster_id
json.format "image/jpg"
json.width max_width
json.height max_height
end
end
end
|
#sprites(json) ⇒ Object
143
144
145
146
147
148
149
150
|
# File 'lib/abrizer/data.rb', line 143
def sprites(json)
if File.exist? sprites_filepath
json.id sprites_id
json.format 'text/vtt'
json.kind 'metadata'
json.label 'image sprite metadata'
end
end
|
#vp9_source(json) ⇒ Object
87
88
89
90
91
92
93
94
95
96
97
98
|
# File 'lib/abrizer/data.rb', line 87
def vp9_source(json)
if File.exist? vp9_filepath
json.child! do
json.id vp9_id
json.type "Video"
json.format "video/webm"
json.width max_width
json.height max_height
end
end
end
|