sensible-cinema 0.26.0 → 0.26.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitmodules +3 -0
- data/README +9 -6
- data/TODO +91 -41
- data/VERSION +1 -1
- data/bin/sensible-cinema +13 -1506
- data/bin/sensible-cinema-cli +156 -151
- data/change_log_with_feature_list.txt +17 -2
- data/developer_how_to_contribute_to_the_project.txt +3 -2
- data/documentation/upconversion.txt +4 -0
- data/history_and_related_works_list.txt +1 -0
- data/{play_with_inserted_scene.bat → legal/play_with_inserted_scene.bat} +0 -0
- data/{play_with_overlay.bat → legal/play_with_overlay.bat} +0 -0
- data/legal2 +2 -0
- data/lib/count_down_timer_jruby_swing.rb +3 -4
- data/lib/edl_parser.rb +345 -339
- data/lib/eight_three.rb +6 -1
- data/lib/gui/sensible-cinema-base.rb +671 -0
- data/lib/gui/sensible-cinema-create.rb +304 -0
- data/lib/{sensible-cinema-dependencies.rb → gui/sensible-cinema-dependencies.rb} +0 -0
- data/lib/gui/sensible-cinema-normal.rb +349 -0
- data/lib/gui/sensible-cinema-side-by-side.rb +27 -0
- data/lib/gui/sensible-cinema-upconvert.rb +254 -0
- data/lib/screen_tracker.rb +1 -0
- data/spec/edl_parser.spec.rb +6 -0
- data/spec/notes +107 -16
- data/spec/sensible_cinema_gui.spec.rb +63 -58
- data/todo.inventionzy.txt +12 -0
- data/todo.propaganda +1 -2
- data/todo.upconvert +3 -1
- data/upconvert_netflix/record_screen/record.bat +2 -0
- data/upconvert_netflix/record_screen/recording/1.png +0 -0
- data/upconvert_netflix/record_screen/recording/10.png +0 -0
- data/upconvert_netflix/record_screen/recording/2.png +0 -0
- data/upconvert_netflix/record_screen/recording/3.png +0 -0
- data/upconvert_netflix/record_screen/recording/4.png +0 -0
- data/upconvert_netflix/record_screen/recording/5.png +0 -0
- data/upconvert_netflix/record_screen/recording/6.png +0 -0
- data/upconvert_netflix/record_screen/recording/7.png +0 -0
- data/upconvert_netflix/record_screen/recording/8.png +0 -0
- data/upconvert_netflix/record_screen/recording/9.png +0 -0
- data/upconvert_netflix/record_screen/recording/d.png +0 -0
- data/www/content_editor.html +2 -2
- data/zamples/edit_decision_lists/dvds/edls_being_edited/cars_disney.txt +5 -7
- data/zamples/edit_decision_lists/dvds/innerspace.txt +77 -0
- data/zamples/edit_decision_lists/netflix_instant/avatar-last-air-bender-movie.txt +12 -0
- data/zamples/edit_decision_lists/netflix_instant/avatar-last-airbender-series.txt +1 -0
- data/zamples/players/netflix/netflix_firefox_non_maximized.txt +1 -1
- metadata +28 -11
- data/lib/file_chooser.rb +0 -46
- data/lib/swing_helpers.rb +0 -142
- data/www/monkey.png +0 -0
@@ -0,0 +1,27 @@
|
|
1
|
+
|
2
|
+
module SensibleSwing
|
3
|
+
|
4
|
+
class MainWindow < JFrame
|
5
|
+
|
6
|
+
SideBySide = 'side_by_side' # 'xbmc' or 'smplayer'
|
7
|
+
|
8
|
+
def select_new_sxs_style
|
9
|
+
answer = show_select_buttons_prompt 'Select EDL file style creation for this program', :yes => 'Smplayer style', :no => 'XBMC style'
|
10
|
+
if answer == :yes
|
11
|
+
LocalStorage[SideBySide] = 'smplayer'
|
12
|
+
elsif answer == :no
|
13
|
+
LocalStorage[SideBySide] = 'xbmc'
|
14
|
+
else
|
15
|
+
show_blocking_message_dialog 'please choose one--smplayer if you don\'t know'
|
16
|
+
select_new_sxs_style
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
|
21
|
+
# new_jbutton("Select side by side EDL file style (smplayer vs. XBMC)") do
|
22
|
+
# select_new_sxs_style # TODO
|
23
|
+
# end
|
24
|
+
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,254 @@
|
|
1
|
+
|
2
|
+
module SensibleSwing
|
3
|
+
|
4
|
+
class MainWindow
|
5
|
+
|
6
|
+
def add_play_upconvert_buttons
|
7
|
+
|
8
|
+
@watch_file_upconvert = new_jbutton( "Watch a movie file upconverted (unedited)") do
|
9
|
+
popup = warn_if_no_upconvert_options_currently_selected
|
10
|
+
filename_mpg = new_existing_file_selector_and_select_file( "pick movie file (like moviename.mpg)")
|
11
|
+
thread = play_mplayer_edl_non_blocking [filename_mpg, nil]
|
12
|
+
when_thread_done(thread) { popup.dispose }
|
13
|
+
end
|
14
|
+
@watch_file_upconvert.tool_tip= "This plays back a movie file, like moviefile.mpg, or moviename.vob using your current upconverter settings.\nTo playback a file edited upconverted, set upconvert options here first, then run them using sensible cinema main--it will automatically use your new upconverting options.\n" # LODO
|
15
|
+
|
16
|
+
@watch_dvd_upconvert = new_jbutton( "Watch a DVD upconverted (unedited)") do
|
17
|
+
popup = warn_if_no_upconvert_options_currently_selected
|
18
|
+
thread = play_dvd_smplayer_unedited false, false, false
|
19
|
+
when_thread_done(thread) { popup.dispose }
|
20
|
+
end
|
21
|
+
@watch_dvd_upconvert.tool_tip = "Plays back the currently inserted DVD, using your current upconverter settings.\nIf it fails (dies immediately, blank screen, etc.), try setting upconvert options to a smaller screen resolution multiple.\nOr try playing the DVD with VLC first, then it might work.\nTo playback a DVD edited upconverted, set upconvert options here first, then run them using sensible cinema main--it will automatically use your new upconverting options."
|
22
|
+
|
23
|
+
add_text_line ''
|
24
|
+
@upconv_line = add_text_line ''
|
25
|
+
change_upconvert_line_to_current
|
26
|
+
|
27
|
+
add_change_upconvert_options_button
|
28
|
+
if !upconvert_set_to_anything?
|
29
|
+
show_blocking_message_dialog 'please configure your upconvert settings first'
|
30
|
+
@show_upconvert_options.simulate_click # make them choose one
|
31
|
+
end
|
32
|
+
add_text_line ''
|
33
|
+
|
34
|
+
end
|
35
|
+
|
36
|
+
def upconvert_set_to_anything?
|
37
|
+
LocalStorage[UpConvertEnglish].present?
|
38
|
+
end
|
39
|
+
|
40
|
+
LocalStorage.set_default('screen_multiples', 2.0)
|
41
|
+
|
42
|
+
def add_change_upconvert_options_button
|
43
|
+
@show_upconvert_options = new_jbutton("Change/Test Playback Upconversion Quality Options") do
|
44
|
+
upconvert_window = new_child_window
|
45
|
+
upconvert_window.add_change_upconvert_buttons
|
46
|
+
end
|
47
|
+
@show_upconvert_options.tool_tip= "Allows you to set your upconvert options.\nUpconverting attempts to playback your movie with higher quality on high resolution monitors."
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
def warn_if_no_upconvert_options_currently_selected
|
52
|
+
if !upconvert_set_to_anything?
|
53
|
+
show_non_blocking_message_dialog "Warning: upconvert options have not been set yet--set upconvert options first, if desired."
|
54
|
+
else
|
55
|
+
JFrame.new # something it can call dispose on :P
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def change_upconvert_line_to_current
|
60
|
+
current = get_current_upconvert_as_phrase
|
61
|
+
if @upconv_line
|
62
|
+
@upconv_line.set_text current
|
63
|
+
end
|
64
|
+
if @parent && @parent.upconv_line
|
65
|
+
@parent.upconv_line.set_text current
|
66
|
+
end # LODO I think the child also wants a status line..
|
67
|
+
end
|
68
|
+
|
69
|
+
UpConvertKey = 'upconvert_setting'
|
70
|
+
UpConvertKeyExtra = 'upconvert_setting_extra'
|
71
|
+
UpConvertEnglish = 'upconvert_english_name'
|
72
|
+
ScreenMultipleFactor = 'screen_multiples'
|
73
|
+
|
74
|
+
def add_change_upconvert_buttons
|
75
|
+
raise 'should have already been set for us' unless LocalStorage[ScreenMultipleFactor]
|
76
|
+
@medium_dvd = new_jbutton("Set upconvert options to DVD-style video") {
|
77
|
+
luma_spatial = 0
|
78
|
+
chroma_spatial = 1
|
79
|
+
luma_tmp = 4
|
80
|
+
chroma_tmp = 4
|
81
|
+
LocalStorage[UpConvertKey] = "hqdn3d=%s:%s:%s:%s,scale=SCREEN_X:-10:0:0:2" % [luma_spatial, chroma_spatial, luma_tmp, chroma_tmp]
|
82
|
+
# hqdn3d[=luma_spatial:chroma_spatial:luma_tmp:chroma_tmp]
|
83
|
+
LocalStorage[UpConvertKeyExtra] = "-sws 9 -ssf ls=75.0 -ssf cs=7.0"
|
84
|
+
LocalStorage[UpConvertEnglish] = "DVD"
|
85
|
+
display_current_upconvert_setting_and_close_window
|
86
|
+
}
|
87
|
+
high_compression = new_jbutton("Set upconvert options to high compressed video file playback") {
|
88
|
+
# -autoq 6 -vf pp [?]
|
89
|
+
LocalStorage[UpConvertEnglish] = "high compressed"
|
90
|
+
LocalStorage[UpConvertKey] = "hqdn3d=0:1:4:4,pp=hb:y/vb:y,scale=SCREEN_X:-10:0:0:3" # pp should be after hqdn3d I think... and hqdn3d should be before scale...
|
91
|
+
LocalStorage[UpConvertKeyExtra] = "-sws 9 -ssf ls=75.0 -ssf cs=25.0"
|
92
|
+
display_current_upconvert_setting_and_close_window
|
93
|
+
# -Processing method: mplayer with accurate deblocking ???
|
94
|
+
}
|
95
|
+
new_jbutton("Set upconvert options to experimental style playback") {
|
96
|
+
LocalStorage[UpConvertKey] = "scale" # hqdn3d=7:7:5,scale=SCREEN_X:-10:0:0:10"
|
97
|
+
LocalStorage[UpConvertKeyExtra] = "-sws 9 -ssf ls=100.0 -ssf cs=75.0"
|
98
|
+
LocalStorage[UpConvertEnglish] = "experimental"
|
99
|
+
display_current_upconvert_setting_and_close_window
|
100
|
+
}
|
101
|
+
|
102
|
+
# TODO tooltip from docu here +- this into tooltip
|
103
|
+
# TODO "click here" link for more docu [?]
|
104
|
+
add_text_line "Multiple factor screen widths"
|
105
|
+
add_text_line " (higher is better, but uses more cpu, 2x is good for high-end)."
|
106
|
+
add_text_line " If mplayer just dies or displays only a black or white screen then lower this setting."
|
107
|
+
slider = JSlider.new
|
108
|
+
slider.setBorder(BorderFactory.createTitledBorder("Screen resolution multiple"));
|
109
|
+
|
110
|
+
# I want tick for 1x, 1.5x, 2x, 2.5x, 3x
|
111
|
+
# so let's do marker values of 10 -> 30, since it requires integers...
|
112
|
+
|
113
|
+
labelTable = java.util.Hashtable.new
|
114
|
+
i = java.lang.Integer
|
115
|
+
l = JLabel
|
116
|
+
|
117
|
+
# allow for 0.75 too, if you have a large monitor, slower cpu...
|
118
|
+
local_minimum = (720.0/get_current_max_width_resolution)*100 # allows 1024 to use upscaling to 860, but we warn when they do this
|
119
|
+
label_minimum = nil
|
120
|
+
(0..300).step(25) do |n|
|
121
|
+
if n > local_minimum
|
122
|
+
label_minimum ||= n
|
123
|
+
if (n % 100 == 0)
|
124
|
+
labelTable.put(i.new(n), l.new("#{n/100}x")) # 1x
|
125
|
+
elsif n == label_minimum # just for the bottom label, rest too chatty
|
126
|
+
labelTable.put(i.new(n), l.new("#{n/100.0}x")) # 1.5x
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
slider.setLabelTable( labelTable )
|
131
|
+
|
132
|
+
slider.maximum=300
|
133
|
+
slider.minimum=label_minimum
|
134
|
+
slider.setMajorTickSpacing(100)
|
135
|
+
slider.setMinorTickSpacing(25)
|
136
|
+
slider.setPaintTicks(true)
|
137
|
+
slider.setPaintLabels(true)
|
138
|
+
slider.snap_to_ticks=true
|
139
|
+
|
140
|
+
slider.set_value LocalStorage[ScreenMultipleFactor] * 100
|
141
|
+
|
142
|
+
slider.add_change_listener { |event|
|
143
|
+
if !slider.value_is_adjusting
|
144
|
+
# they released their hold on it...
|
145
|
+
old_value = LocalStorage[ScreenMultipleFactor]
|
146
|
+
new_value = slider.value/100.0
|
147
|
+
LocalStorage[ScreenMultipleFactor] = new_value
|
148
|
+
if new_value != old_value
|
149
|
+
if slider.value == label_minimum
|
150
|
+
show_blocking_message_dialog "Setting it too low like that might make it not do much upconverting (DVD's, are 720px, you're setting it to upconvert to #{new_value * get_current_max_width_resolution})"
|
151
|
+
end
|
152
|
+
display_current_upconvert_setting_and_close_window
|
153
|
+
end
|
154
|
+
end
|
155
|
+
}
|
156
|
+
slider.set_bounds(44, @starting_button_y, @button_width, 66)
|
157
|
+
2.times {increment_button_location}
|
158
|
+
@panel.add(slider)
|
159
|
+
|
160
|
+
increment_button_location
|
161
|
+
|
162
|
+
@none = new_jbutton("Reset upconvert options to none (no upconversion)")
|
163
|
+
@none.tool_tip = "Having no upconvert options is reasonably good, might use directx for scaling, nice for slow cpu's"
|
164
|
+
@none.on_clicked {
|
165
|
+
LocalStorage[UpConvertKey] = nil
|
166
|
+
LocalStorage[UpConvertKeyExtra] = nil
|
167
|
+
LocalStorage[UpConvertEnglish] = nil
|
168
|
+
display_current_upconvert_setting_and_close_window
|
169
|
+
}
|
170
|
+
|
171
|
+
@generate_images = new_jbutton("Test current configuration by writing some images from playing a video file") do
|
172
|
+
popup = warn_if_no_upconvert_options_currently_selected
|
173
|
+
filename_mpg = new_existing_file_selector_and_select_file( "pick movie file (like moviename.mpg)")
|
174
|
+
|
175
|
+
output_dir = get_same_drive_friendly_clean_temp_dir 'temp_upscaled_video_out'
|
176
|
+
output_command = '-ss 2:44 -frames 300 -vo png:outdir="' + File.strip_drive_windows(output_dir) + '"'
|
177
|
+
output_command += " -noframedrop" # don't want them to skip frames on cpu's without enough power to keep up
|
178
|
+
thread = play_mplayer_edl_non_blocking [filename_mpg, nil], [output_command], true
|
179
|
+
when_thread_done(thread) { popup.dispose; show_in_explorer(output_dir) }
|
180
|
+
end
|
181
|
+
@generate_images.tool_tip = "This creates a folder with images upconverted from some DVD or file, so you can tweak settings and compare." # TODO more tooltips
|
182
|
+
|
183
|
+
@generate_screen_cast = new_jbutton("Test current configuration by watching video file and recording screen") do
|
184
|
+
popup = warn_if_no_upconvert_options_currently_selected
|
185
|
+
filename_mpg = new_existing_file_selector_and_select_file( "pick movie file (like moviename.mpg)")
|
186
|
+
output_dir = get_same_drive_friendly_clean_temp_dir 'temp_screencast_dir'
|
187
|
+
thread1 = play_mplayer_edl_non_blocking [filename_mpg, nil], [" -ss 2:44 -endpos 11"]
|
188
|
+
# screen capture for 10s
|
189
|
+
fps_to_grab = 5
|
190
|
+
thread2 = Thread.new { c = %!ffmpeg -f dshow -i video="screen-capture-recorder" -r #{fps_to_grab} -vframes #{fps_to_grab*10} -y #{File.strip_drive_windows(output_dir)}/%d.png!; system_blocking c }
|
191
|
+
thread2.join
|
192
|
+
show_blocking_message_dialog "ffmpeg done, close mplayer now!"
|
193
|
+
thread1.join
|
194
|
+
popup.dispose # just in case :P
|
195
|
+
show_in_explorer(output_dir)
|
196
|
+
end
|
197
|
+
|
198
|
+
|
199
|
+
end
|
200
|
+
|
201
|
+
def get_same_drive_friendly_clean_temp_dir suffix
|
202
|
+
output_dir = Dir.tmpdir
|
203
|
+
if File.get_root_dir(output_dir) != File.get_root_dir(Dir.pwd) # you are hosed!
|
204
|
+
output_dir = File.get_root_dir(Dir.pwd) # we'll raise if it's not writable...
|
205
|
+
end
|
206
|
+
output_dir = output_dir + '/' + suffix
|
207
|
+
FileUtils.rm_rf output_dir
|
208
|
+
Dir.mkdir output_dir
|
209
|
+
output_dir
|
210
|
+
end
|
211
|
+
|
212
|
+
def display_current_upconvert_setting_and_close_window
|
213
|
+
change_upconvert_line_to_current
|
214
|
+
show_blocking_message_dialog get_current_upconvert_as_phrase
|
215
|
+
self.dispose
|
216
|
+
end
|
217
|
+
|
218
|
+
def get_current_upconvert_as_phrase
|
219
|
+
settings = LocalStorage[UpConvertEnglish]
|
220
|
+
out = "Upconvert options are now #{ settings ? "set to #{settings} style" : "NOT SET"}"
|
221
|
+
if settings
|
222
|
+
multiple = LocalStorage[ScreenMultipleFactor]
|
223
|
+
out += " (screen multiplier #{get_current_max_width_resolution}*#{multiple} = #{(multiple * get_current_max_width_resolution).to_i}px)."
|
224
|
+
end
|
225
|
+
out
|
226
|
+
end
|
227
|
+
|
228
|
+
def get_current_max_width_resolution
|
229
|
+
# choose width of widest monitor (why would they display it on the other, right?)
|
230
|
+
java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment.getScreenDevices.map{|gd| gd.display_mode.width}.max.to_i
|
231
|
+
end
|
232
|
+
|
233
|
+
def get_upconvert_vf_settings
|
234
|
+
template = LocalStorage[UpConvertKey]
|
235
|
+
if template
|
236
|
+
screen_multiple = LocalStorage[ScreenMultipleFactor]
|
237
|
+
upc = template.gsub('SCREEN_X', (get_current_max_width_resolution*screen_multiple).to_i.to_s) # has to be an integer...
|
238
|
+
upc = 'pullup,softskip,' + upc
|
239
|
+
p 'using upconvert settings: ' + upc
|
240
|
+
upc
|
241
|
+
else
|
242
|
+
p 'not using any specific upconversion-ing'
|
243
|
+
# pullup, softskip -- might slow things down too much for slow cpus
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
def get_upconvert_secondary_settings
|
248
|
+
LocalStorage[UpConvertKeyExtra]
|
249
|
+
end
|
250
|
+
|
251
|
+
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
data/lib/screen_tracker.rb
CHANGED
@@ -197,6 +197,7 @@ class ScreenTracker
|
|
197
197
|
@previously_displayed_warning = true
|
198
198
|
# also reget window hwnd, just in case that's the problem...(can be with VLC moving from title to title)
|
199
199
|
get_hwnd_loop_forever
|
200
|
+
# LODO loop through all available player descriptions to find the right one, or a changed different new one, et al
|
200
201
|
end
|
201
202
|
time_since_last_screen_change = Time.now
|
202
203
|
end
|
data/spec/edl_parser.spec.rb
CHANGED
@@ -42,6 +42,12 @@ describe EdlParser do
|
|
42
42
|
E.parse_string(string, nil).should == expected
|
43
43
|
end
|
44
44
|
|
45
|
+
it "should disallow full digits" do
|
46
|
+
proc {E.parse_string(%!"mutes" => ["1234", "1235", "profanity", "yo"]!, nil) }.should raise_exception SyntaxError
|
47
|
+
proc {E.parse_string(%!"mutes" => ["0.0", "1.1", "profanity", "yo"]!, nil) }.should_not raise_exception
|
48
|
+
proc {E.parse_string(%!"mutes" => ["0.0", "1.1", "profanity", "yo", "1234", "1235", "bad entry"]!, nil) }.should raise_exception SyntaxError
|
49
|
+
end
|
50
|
+
|
45
51
|
it "should extract digits well" do
|
46
52
|
out = ["00:00:01.1", "00:00:01"]
|
47
53
|
EdlParser.extract_entry!(out).should == ["00:00:01.1", "00:00:01"]
|
data/spec/notes
CHANGED
@@ -1,12 +1,74 @@
|
|
1
1
|
up next:
|
2
2
|
|
3
|
-
== ==
|
4
|
-
desktop filter:
|
5
|
-
1024x1024:
|
6
|
-
15% one cpu used by the capture utility (0.013ms per capture)
|
7
|
-
good for now I guess (no transparency visible...)
|
8
|
-
12 fps <sigh>
|
3
|
+
== netflix instant vs srt ==
|
9
4
|
|
5
|
+
00:02:34,427 --> 00:02:36,361
|
6
|
+
l'm sor
|
7
|
+
|
8
|
+
init seemed 2:33 or end of 2:32
|
9
|
+
|
10
|
+
1.2s off init?
|
11
|
+
|
12
|
+
sire, seemed right on
|
13
|
+
|
14
|
+
|
15
|
+
|
16
|
+
01:00:13,950 --> 01:00:17,716
|
17
|
+
General lroh, l'm glad you could
|
18
|
+
accept my
|
19
|
+
|
20
|
+
seemed end of 12
|
21
|
+
|
22
|
+
this one (netflix instant) seemed to match up really well with the subtitles just about 1.5s "late" the whole time...
|
23
|
+
|
24
|
+
== compare upscaling settings ==
|
25
|
+
|
26
|
+
regular pullup not very good :P
|
27
|
+
just with hqdn3d, same low res, seemed not very good
|
28
|
+
I seem to slightly prefer DVD to directx upscaling (at least). More detail.
|
29
|
+
more hair detail, wood has more detail
|
30
|
+
|
31
|
+
with qt viewer:
|
32
|
+
|
33
|
+
with 0001:
|
34
|
+
1x and 2x seem same
|
35
|
+
like identical
|
36
|
+
with 26
|
37
|
+
seem identical
|
38
|
+
99:
|
39
|
+
2x seems to barely pull out more detail out of the metal...interesting...
|
40
|
+
|
41
|
+
with mplayer to view the jpg (direct3d)
|
42
|
+
01:
|
43
|
+
wow looks igualzinho weird
|
44
|
+
26:
|
45
|
+
igualzinho
|
46
|
+
99:
|
47
|
+
igualzinho (too dark to tell...kind of weird there) -- ffmpeg bug?
|
48
|
+
|
49
|
+
more hair, -ss 2:44 -frames 300
|
50
|
+
I guess the same way, -> jpg, compare the jpgs in quicktime
|
51
|
+
then tweak it be able to screen scrape it to compare [?]
|
52
|
+
|
53
|
+
2x takes *way* way longer...
|
54
|
+
|
55
|
+
00:
|
56
|
+
if there's a difference, I can't easily see it in picture viewer
|
57
|
+
75:
|
58
|
+
1x has better "lines" than raw
|
59
|
+
1x igual 2x (picture viewer)
|
60
|
+
150:
|
61
|
+
1x looks like normal LOL
|
62
|
+
1x igual 2x hair
|
63
|
+
225:
|
64
|
+
1x looks better than normal (fruit)
|
65
|
+
2x igual 1x
|
66
|
+
299:
|
67
|
+
raw looks BETTER wood-wise hmm...
|
68
|
+
|
69
|
+
really need a better way to record maybe?
|
70
|
+
make mplayer go really slow, and have ffmpeg record it from screen [?] -> jpg and hopefully it will catch everything...
|
71
|
+
|
10
72
|
== upconvert netflix ==
|
11
73
|
|
12
74
|
=== mplayer avisynth ===
|
@@ -16,7 +78,7 @@ desktop filter:
|
|
16
78
|
mplayer at default seems to be doing weird things?
|
17
79
|
paint.net on the win32::screenshot capture seemed to match quite well what the screen had.
|
18
80
|
ffplay seems to show an exact verbatim copy...
|
19
|
-
actually mplayer seems to be a good exact duplicate...
|
81
|
+
actually mplayer seems to be a good exact duplicate...maybe resizing hurt it though?
|
20
82
|
|
21
83
|
=== other ===
|
22
84
|
|
@@ -377,6 +439,14 @@ http://www.kdenlive.org/forum/xml-format-and-edls kdenlive supports EDL, apparen
|
|
377
439
|
|
378
440
|
=== various options ===
|
379
441
|
|
442
|
+
avisynth Defaults: HQDN3D(ls=4.0, cs=3.0, lt=6.0, ct=4.5)
|
443
|
+
mplayer
|
444
|
+
hqdn3d[=luma_spatial:chroma_spatial:luma_tmp:chroma_tmp]
|
445
|
+
mplayer defaults were: hqdn3d=4:3:6 hqdn3d[=luma:chroma:time]
|
446
|
+
|
447
|
+
|
448
|
+
-vf hqdn3d=2:1:2 ("conservative" from http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-dvd-mpeg4.html)
|
449
|
+
|
380
450
|
an avisynth upconvert howto: http://avisynth.org/mediawiki/Enhancing_dvd_videos
|
381
451
|
http://web.archiveorange.com/archive/v/JbcLEih3ZwhZlMuTkxzR says "if you're upscaling [to grow the image] then do denoise before scale"
|
382
452
|
|
@@ -396,7 +466,7 @@ http://www.kdenlive.org/forum/xml-format-and-edls kdenlive supports EDL, apparen
|
|
396
466
|
3x resolution [!]
|
397
467
|
"Luma Sharpen to 1.00-1.50 and Chroma Sharpen to 0.00. Enable Accurate Rounding."
|
398
468
|
I don't know if accurate rounding is possible with mplayer+lanczos tho...
|
399
|
-
|
469
|
+
hqdn3d put Chroma to 1.00, Time to 4.00 and Luma to 0.00.
|
400
470
|
hqdn3d[=luma_spatial:chroma_spatial:luma_tmp:chroma_tmp] how?
|
401
471
|
deinterlacing [I don't think this matters, really I don't]
|
402
472
|
xvid:
|
@@ -1357,7 +1427,7 @@ are all windows GUI wrapper players internally inconsistent, except maybe VLC wh
|
|
1357
1427
|
VLC reading dvdoutmplayer.mpg, handbrake m4v:
|
1358
1428
|
1:00:00 accurate wa[a]s lost
|
1359
1429
|
|
1360
|
-
=== All DVD
|
1430
|
+
=== All DVD players' comparison below this ===
|
1361
1431
|
|
1362
1432
|
Mac's DVD Player total:
|
1363
1433
|
1:53:04 (almost 5 I think) [barely shows 5 at the beginning]
|
@@ -1453,11 +1523,14 @@ VLC
|
|
1453
1523
|
30: something about nineveh makes you feel sad [I dont' really ] want to talk about it [?]
|
1454
1524
|
45: fire 3, I'm coming traveling buddy [flash back to them] (in wmp this is at 44:27)
|
1455
1525
|
|
1456
|
-
smplayer, mplayer
|
1526
|
+
smplayer, mplayer r30369
|
1457
1527
|
15: wash your hands [before] you eat
|
1458
1528
|
30: a man that .. can count on to deliver his message yes [well]
|
1459
1529
|
45: big smile from after duck
|
1460
1530
|
|
1531
|
+
mplayer
|
1532
|
+
45: middle of squeak of duck
|
1533
|
+
|
1461
1534
|
hulu
|
1462
1535
|
15: wash your hands [before] you eat
|
1463
1536
|
30: a man that .. can count on to deliver his message yes [well]
|
@@ -1480,26 +1553,44 @@ wmp windows 7: [wmp feels slightly unstable timing-wise]
|
|
1480
1553
|
|
1481
1554
|
LODO jonah blu ray timings
|
1482
1555
|
|
1483
|
-
netflix jonah
|
1556
|
+
netflix instant jonah
|
1484
1557
|
|
1485
1558
|
15: be a friend say your prayers, heavens knows a heart that cares, taht is why I've come to share a mes[sage] from the Lord (at times it's [mes]sage, once it was [from])
|
1486
|
-
chrome at work:
|
1487
|
-
|
1559
|
+
chrome at work:
|
1560
|
+
a[]message,
|
1561
|
+
a messa[ge] from the Lord
|
1562
|
+
message [] from the Lord
|
1563
|
+
[share] a message from the Lord
|
1564
|
+
a message[] from the Lord
|
1565
|
+
me[ss]age from the Lord [HD]
|
1566
|
+
IE at work:
|
1567
|
+
[fr]om the Lord
|
1568
|
+
a [mes]sage from the Lord
|
1569
|
+
[fr]om the Lord.
|
1570
|
+
me[ss]age from the Lord [HD]
|
1571
|
+
|
1572
|
+
conclusion: browser doesn't matter, at lesat for HD streams, at work
|
1573
|
+
|
1488
1574
|
30: like two humps on a camel, you always sway the same way, humor runs in my family, my uncle was a [big] star
|
1489
|
-
IE at work:
|
1575
|
+
IE at work: humor runs very deep in my family[] my uncle was, my uncle was[] a big star, my [uncle] was a big star
|
1490
1576
|
|
1491
1577
|
45: (LIKE 12 seconds after the big grin) (big smile, next scene) blue fades in [oooh]
|
1492
1578
|
IE at work: 2 seconds after blue light fades in * 3
|
1493
1579
|
chrome: 1.5 seconds as blue light fades in
|
1580
|
+
it's like 10 seconds in...
|
1581
|
+
same with mac
|
1582
|
+
conclusion: netflix doesn't care about mac versus pc timing-wise
|
1583
|
+
|
1584
|
+
conclusion: netflix varies pretty widely from instance to instance of playing back (same computer, same movie, same browser).
|
1494
1585
|
|
1495
|
-
forever strong (chrome work netflix):
|
1586
|
+
forever strong (chrome work netflix instant):
|
1496
1587
|
|
1497
1588
|
15: I'm sorry, are you in the home add me now ... []almost, almost(two spaces)[], almost(one space)[]
|
1498
1589
|
30: (ambulance...) let's go guys keep it tight (3 secs or so), same at 57-58, tight right on 58
|
1499
1590
|
45: we stand on this field ready for battle []*2
|
1500
1591
|
1:30 where I was 40 years ago...[don't] spend another, don't [spend] another minute being angry
|
1501
1592
|
|
1502
|
-
saints and soldiers (chrome work netflix):
|
1593
|
+
saints and soldiers (chrome work netflix instant):
|
1503
1594
|
|
1504
1595
|
15: is the squarest guy I know...[he's] from some little backwards, [] he's from some little
|
1505
1596
|
30: flirting with the girl at my dad's store...[] what's her name*2
|