sensible-cinema 0.23.6 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/LICENSE.TXT +1 -1
- data/README +8 -6
- data/Rakefile +1 -1
- data/TODO +62 -41
- data/VERSION +1 -1
- data/bin/sensible-cinema +395 -278
- data/bin/sensible-cinema-cli +1 -1
- data/change_log_with_feature_list.txt +16 -0
- data/developer_how_to_contribute_to_the_project.txt +1 -1
- data/documentation/{README.TXT → DOCUMENTATION_README.TXT} +0 -0
- data/documentation/how_to_create_your_own_delete_lists.txt +7 -7
- data/experimental_online_player_ocr_readme.txt +2 -2
- data/lib/check_installed_mac.rb +16 -4
- data/lib/drive_info.rb +2 -2
- data/lib/edl_parser.rb +13 -9
- data/lib/mencoder_wrapper.rb +18 -9
- data/lib/mplayer_edl.rb +4 -1
- data/lib/shutdown_kill.rb +32 -0
- data/lib/subtitle_profanity_finder.rb +13 -5
- data/lib/swing_helpers.rb +4 -0
- data/spec/notes +331 -8
- data/spec/sensible_cinema_gui.spec.rb +34 -22
- data/template_bats/{advanced--create or edit sensible cinema delete list files.bat → advanced--create or edit sensible cinema edit list files.bat} +0 -0
- data/todo.upconvert +13 -0
- data/upconvert.bat +2 -0
- data/www/index.html +11 -9
- data/zamples/edit_decision_lists/dvds/{zz_example_delete_list_that_has_no_cuts_in_it.txt → aa_example_delete_list_that_has_no_cuts_in_it.txt} +0 -0
- data/zamples/edit_decision_lists/dvds/{bambi.txt → edls_being_edited/bambi.txt} +0 -0
- data/zamples/edit_decision_lists/dvds/{edl_for_unit_tests.txt → edls_being_edited/edl_for_unit_tests.txt} +0 -0
- data/zamples/edit_decision_lists/dvds/edls_being_edited/iq.txt +32 -0
- data/zamples/edit_decision_lists/dvds/edls_being_edited/other_side_of_heaven.txt +19 -0
- data/zamples/edit_decision_lists/dvds/edls_being_edited/snow_white_and_the_7_dwarfs_1937.txt +19 -0
- data/zamples/edit_decision_lists/dvds/{potter_prisoner_of_azkaban.txt → harry_potter_prisoner_of_azkaban.txt} +0 -0
- data/zamples/edit_decision_lists/{dvds/old_and_inaccurate → old_not_yet_updated/dvds}/White Christmas.txt +0 -0
- data/zamples/edit_decision_lists/{dvds/old_and_inaccurate → old_not_yet_updated/dvds}/all_dogs_go_to_heaven.txt +0 -0
- data/zamples/edit_decision_lists/{dvds/old_and_inaccurate → old_not_yet_updated/dvds}/cars_disney.txt +1 -1
- data/zamples/edit_decision_lists/{dvds/old_and_inaccurate → old_not_yet_updated/dvds}/happy_feet.txt +0 -0
- data/zamples/edit_decision_lists/{dvds/old_and_inaccurate → old_not_yet_updated/dvds}/labyrinth.txt +0 -0
- data/zamples/edit_decision_lists/{dvds/old_and_inaccurate → old_not_yet_updated/dvds}/making marriage work.txt +0 -0
- data/zamples/edit_decision_lists/{dvds/old_and_inaccurate → old_not_yet_updated/dvds}/star_trek_generations_hulu.txt +0 -0
- metadata +21 -16
- data/zamples/edit_decision_lists/category descriptions.txt +0 -35
data/bin/sensible-cinema-cli
CHANGED
|
@@ -43,7 +43,7 @@ def go_sc(args)
|
|
|
43
43
|
|
|
44
44
|
syntax: [player_description.yml] [delete_list.txt|test] [-t -v --clear-cache] (or just nothing at all--it will prompt for all things needed)
|
|
45
45
|
|
|
46
|
-
If you specify "test" for the
|
|
46
|
+
If you specify "test" for the edit list, it will pause 4s, take a snapshot of the player, then exit.
|
|
47
47
|
Useful for debugging your screen capture of the current player.
|
|
48
48
|
You can also specify -v or -t if you want to enable more verbose (chatty) output.
|
|
49
49
|
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
== 0.24.0 ==
|
|
2
|
+
|
|
3
|
+
Now comes with an upconverting software player to play back DVD's/files.
|
|
4
|
+
This can used advanced deblocking, or hq denois3d, or lancosz filter, etc.
|
|
5
|
+
Uses much better mplayer options for slow computers now.
|
|
6
|
+
Added EDL for IQ.
|
|
7
|
+
Added ability to "offset" timestamps by a set factor (ex: 600s).
|
|
8
|
+
A few profanities added to the subtitler.
|
|
9
|
+
Much more compatible with mac.
|
|
10
|
+
Prompts users to assert they own disks for files they watch.
|
|
11
|
+
Added new button "watch file edited"
|
|
12
|
+
Now uses smplayer as the default player.
|
|
13
|
+
Can differentiate cross platform to decide which player to use.
|
|
14
|
+
Relies on mplayerx for mac now.
|
|
15
|
+
Other minor cleanups.
|
|
16
|
+
|
|
1
17
|
== 0.23.6 ==
|
|
2
18
|
|
|
3
19
|
Added capability/functionality to create files used in other players to automatically cut out bad scenes.
|
|
@@ -9,7 +9,7 @@ other CC released licensed DVD's).
|
|
|
9
9
|
|
|
10
10
|
You should be able to run the program and test it out against said DVD, put it through its paces to demo it, fix it, etc.
|
|
11
11
|
|
|
12
|
-
Or if you have a DVD that already has a
|
|
12
|
+
Or if you have a DVD that already has a edit list available for it, you could use that, obviously.
|
|
13
13
|
|
|
14
14
|
The main development roadmap is in the TODO. If you have any feedback/feature requests, et al, post an
|
|
15
15
|
issue or post to the Mailing List: http://groups.google.com/group/sensible-cinema
|
|
File without changes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
You can create
|
|
1
|
+
You can create an edit list for sensible cinema to use against whatever DVD you want
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
An edit list (currently) lists sections you want muted or skipped. Here is an example
|
|
4
4
|
|
|
5
5
|
"mutes" => [
|
|
6
6
|
"02:02:15.0" , "02:02:25", "a muted demo section",
|
|
@@ -19,7 +19,7 @@ To create a new one, for a DVD, the steps typically look like this:
|
|
|
19
19
|
|
|
20
20
|
open Sensible cinema (with "advanced--edit create mode...bat")
|
|
21
21
|
|
|
22
|
-
insert your DVD, click "Create new
|
|
22
|
+
insert your DVD, click "Create new edit list for DVD" button
|
|
23
23
|
|
|
24
24
|
Now detect timestamps for questionable content (some buttons may help you here),
|
|
25
25
|
add timestamps to this file, save it, and then test them to make sure they're accurate, using the various buttons.
|
|
@@ -35,18 +35,18 @@ Then parse it for known profanities (parse a subtitle... button) and copy and pa
|
|
|
35
35
|
|
|
36
36
|
For the rest of the buttons, just "mouse over"/"hover over" them for full descriptions of their potential uses.
|
|
37
37
|
|
|
38
|
-
After you're done, you can submit your new
|
|
38
|
+
After you're done, you can submit your new edit list to the project
|
|
39
39
|
(so others can use it later) by using the Upload button and sending it as an attachment.
|
|
40
40
|
Note also that if you know how, you could fork the code from github, commit changes, and
|
|
41
|
-
submit a pull request, as well (for example more
|
|
41
|
+
submit a pull request, as well (for example more edit lists, code changes, etc.)
|
|
42
42
|
Email is probably easier though :)
|
|
43
43
|
|
|
44
44
|
A few pointers:
|
|
45
45
|
|
|
46
|
-
You can make several different "
|
|
46
|
+
You can make several different "edit lists" per DVD, using different filenames.
|
|
47
47
|
For example one might take out all profanity, and a second take out profanity and also remove all violence, or whatever.
|
|
48
48
|
Basically different levels :)
|
|
49
|
-
You can also just watch a DVD (using any DVD player), and get timestamps that way, before creating
|
|
49
|
+
You can also just watch a DVD (using any DVD player), and get timestamps that way, before creating an edit list.
|
|
50
50
|
You'll have to convert them using the "convert timestamp" button.
|
|
51
51
|
A good computer program for this is "smplayer" (the [ and ] keys control playback speed, and right and left,
|
|
52
52
|
page up and page down buttons control seeking), and you can also turn on subtitles to help locate profanity.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
Currently the experimental screen tracking edited player (bin\sensible-cinema-cli) prompts for
|
|
1
|
+
Currently the experimental screen tracking edited player (bin\sensible-cinema-cli) prompts for an edit list
|
|
2
2
|
and a player description.
|
|
3
3
|
|
|
4
4
|
It then tracks whichever player you are using, by using OCR on its timestamps (
|
|
@@ -34,7 +34,7 @@ Q. What movies are freely available to watch online?
|
|
|
34
34
|
|
|
35
35
|
A. Not many are available free (hulu, youtube have a few). Netflix has quite a few now for money.
|
|
36
36
|
You can of course use SC with DVD's, too, or rent or borrow DVD's.
|
|
37
|
-
(If they have
|
|
37
|
+
(If they have an edit list (or you could create your own for them if not...).)
|
|
38
38
|
|
|
39
39
|
Q. Why does my mouse bounce up and down while sensible-cinema is going?
|
|
40
40
|
|
data/lib/check_installed_mac.rb
CHANGED
|
@@ -15,14 +15,26 @@ module CheckInstalledMac
|
|
|
15
15
|
end
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
if name == 'mplayer'
|
|
19
|
+
for path in ["/Applications/MPlayerX.app/Contents/Resources/binaries/m32", File.expand_path('~') + "/Downloads/MPlayerX.app/Contents/Resources/binaries/m32/"]
|
|
20
|
+
if File.exist? path + "/mplayer"
|
|
21
|
+
ENV['PATH'] = path + ':' + ENV['PATH']
|
|
22
|
+
return true
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
puts 'lacking mplayer! please install MPlayerX from the App Store first'
|
|
26
|
+
return false
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# check for the others as generics
|
|
30
|
+
|
|
31
|
+
command = {"gocr" => "gocr --help", "convert" => "convert --help", "ffmpeg" => "ffmpeg -version"}[name]
|
|
20
32
|
|
|
21
|
-
raise 'unknown ' + name unless command #
|
|
33
|
+
raise 'unknown ' + name unless command # sanity check
|
|
22
34
|
|
|
23
35
|
unless system(command + " 1> " + OS.dev_null + " 2>" + OS.dev_null)
|
|
24
36
|
name = 'ImageMagick' if name == 'convert' # special case...
|
|
25
|
-
puts 'lacking dependency! Please install ' + name + ' by running $ sudo port install ' + name
|
|
37
|
+
puts 'lacking dependency! Please install ' + name + ' by installing macports and running in terminal: $ sudo port install ' + name
|
|
26
38
|
false
|
|
27
39
|
else
|
|
28
40
|
true
|
data/lib/drive_info.rb
CHANGED
|
@@ -19,7 +19,7 @@ require 'digest/md5'
|
|
|
19
19
|
require 'rubygems'
|
|
20
20
|
require 'sane'
|
|
21
21
|
require 'ostruct'
|
|
22
|
-
|
|
22
|
+
require 'benchmark'
|
|
23
23
|
class DriveInfo
|
|
24
24
|
|
|
25
25
|
def self.md5sum_disk(dir)
|
|
@@ -28,7 +28,7 @@ class DriveInfo
|
|
|
28
28
|
else
|
|
29
29
|
command = "#{__DIR__}/../vendor/dvdid.exe #{dir}"
|
|
30
30
|
end
|
|
31
|
-
output = `#{command}`
|
|
31
|
+
output = `#{command}` # can take like 2.2s
|
|
32
32
|
raise 'dvdid command failed?' + command unless $?.exitstatus == 0
|
|
33
33
|
output.strip
|
|
34
34
|
end
|
data/lib/edl_parser.rb
CHANGED
|
@@ -17,13 +17,16 @@ This file is part of Sensible Cinema.
|
|
|
17
17
|
=end
|
|
18
18
|
class EdlParser
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
# returns {"mutes" => [["00:00", "00:00", string1, string2], ...], "blank_outs" -> [...]}
|
|
21
|
+
def self.parse_file filename
|
|
22
|
+
parse_string File.read(filename), filename, [] # LODO categories stuff out...
|
|
22
23
|
end
|
|
23
24
|
|
|
25
|
+
private
|
|
26
|
+
|
|
24
27
|
# better eye-ball these before letting people run them, eh? XXXX
|
|
25
28
|
# but I couldn't think of any other way to parse the files tho
|
|
26
|
-
def self.parse_string string, filename, ok_categories_array
|
|
29
|
+
def self.parse_string string, filename, ok_categories_array
|
|
27
30
|
string = '{' + string + "\n}"
|
|
28
31
|
if filename
|
|
29
32
|
raw = eval(string, binding, filename)
|
|
@@ -36,9 +39,6 @@ class EdlParser
|
|
|
36
39
|
# mutes and blank_outs need to be special parsed into arrays...
|
|
37
40
|
mutes = raw["mutes"] || []
|
|
38
41
|
blanks = raw["blank_outs"] || []
|
|
39
|
-
if ignore_settings
|
|
40
|
-
mutes = blanks = []
|
|
41
|
-
end
|
|
42
42
|
raw["mutes"] = convert_to_timestamp_arrays(mutes, ok_categories_array)
|
|
43
43
|
raw["blank_outs"] = convert_to_timestamp_arrays(blanks, ok_categories_array)
|
|
44
44
|
raw
|
|
@@ -100,8 +100,11 @@ class EdlParser
|
|
|
100
100
|
answers
|
|
101
101
|
end
|
|
102
102
|
|
|
103
|
+
public
|
|
104
|
+
|
|
103
105
|
# divides up mutes and blanks so that they don't overlap, preferring blanks over mutes
|
|
104
|
-
# returns it like [[start,end,type], [s,e,t]...] type like :blank and :mute
|
|
106
|
+
# returns it like [[start,end,type], [s,e,t]...] type like either :blank and :mute
|
|
107
|
+
# [[70.0, 73.0, :blank], [378.0, 379.1, :mute]]
|
|
105
108
|
def self.convert_incoming_to_split_sectors incoming, add_this_to_mutes_end = 0, add_this_to_mutes_beginning = 0, splits = []
|
|
106
109
|
if splits != []
|
|
107
110
|
# allow it to do all the double checks we later skip, just in case :)
|
|
@@ -113,6 +116,7 @@ class EdlParser
|
|
|
113
116
|
blanks = blanks.map{|k, v| get_secs(k, v, -add_this_to_mutes_beginning, add_this_to_mutes_end, splits) + [:blank]}
|
|
114
117
|
combined = (mutes+blanks).sort
|
|
115
118
|
|
|
119
|
+
# detect overlap...
|
|
116
120
|
previous = nil
|
|
117
121
|
combined.each_with_index{|current, idx|
|
|
118
122
|
s,e,t = current
|
|
@@ -123,7 +127,7 @@ class EdlParser
|
|
|
123
127
|
ps, pe, pt = previous
|
|
124
128
|
if (s < pe)
|
|
125
129
|
raise SyntaxError.new("detected an overlap #{[s,e,t].join(' ')} #{previous.join(' ')}") unless splits.length > 0
|
|
126
|
-
# our start might be within the previous' in which case its their start, with (greater of our, their
|
|
130
|
+
# our start might be within the previous' in which case its their start, with (greater of our, their ending)
|
|
127
131
|
preferred_end = [e,pe].max
|
|
128
132
|
preferred_type = [t,pt].detect{|t| t == :blank} || :mute # prefer blank to mute
|
|
129
133
|
combined[idx-1] = [ps, preferred_end, preferred_type]
|
|
@@ -135,7 +139,7 @@ class EdlParser
|
|
|
135
139
|
}
|
|
136
140
|
combined.compact
|
|
137
141
|
end
|
|
138
|
-
|
|
142
|
+
|
|
139
143
|
def self.translate_string_to_seconds s
|
|
140
144
|
# might actually already be a float, or int, depending on the yaml
|
|
141
145
|
# int for 8 => 9 and also for 1:09 => 1:10
|
data/lib/mencoder_wrapper.rb
CHANGED
|
@@ -25,7 +25,7 @@ class MencoderWrapper
|
|
|
25
25
|
|
|
26
26
|
def get_header this_file, these_settings
|
|
27
27
|
out = ''
|
|
28
|
-
if File.exist?(@
|
|
28
|
+
if File.exist?(@big_temp_fulli) && File.exist?(@big_temp_fulli + '.done')
|
|
29
29
|
out = '@rem ' # don't re-do this file if .done file already exists...
|
|
30
30
|
end
|
|
31
31
|
audio_codec = these_settings['audio_codec'] || 'mp3lame' # not copy...sniff...or you can't hear cars... LODO
|
|
@@ -35,21 +35,23 @@ class MencoderWrapper
|
|
|
35
35
|
# "This will result in a slightly bigger file, but will not cause problems when demuxing or remuxing into other container formats." LODO no harddup ok ???
|
|
36
36
|
# lodo: can I use ffmpeg to unmux-ify/GOP'ify perhaps?
|
|
37
37
|
# LODO 24000/1001 ?
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
# -vf pullup,softskip for DVD's that mix progressive and something something [some of them]...whatever it even really means :P
|
|
39
|
+
video_opts = "-vf scale=720:480,pullup,softskip,harddup -forceidx -ovc lavc -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=1:vstrict=0:acodec=ac3:abitrate=192:autoaspect -ofps 30000/1001"
|
|
40
|
+
out += "mencoder \"#{this_file.gsub('"', '\\"')}\" -of mpeg -mpegopts format=dvd:tsaf -alang en -nocache -sid 1000 -oac #{audio_codec} #{video_opts} -o #{@big_temp_fulli} -dvd-device #{this_file} && echo done_grabbing > #{@big_temp_fulli}.done\n"
|
|
40
41
|
end
|
|
41
42
|
|
|
42
43
|
def calculate_fulli_filename to_here_final_file
|
|
43
|
-
@
|
|
44
|
+
@big_temp_fulli = to_here_final_file + ".fulli_unedited.tmp.mpg"
|
|
44
45
|
end
|
|
45
46
|
|
|
46
47
|
# called from the UI...
|
|
48
|
+
# only for transcoding.
|
|
47
49
|
def get_bat_commands these_settings, this_from_file, to_here_final_file, start_here = nil, end_here = nil, dvd_title_track = "1", delete_partials = false, require_deletion_entry = false
|
|
48
50
|
combined = EdlParser.convert_incoming_to_split_sectors these_settings
|
|
49
51
|
@dvd_title_track = dvd_title_track
|
|
50
52
|
assert dvd_title_track
|
|
51
53
|
if start_here || end_here
|
|
52
|
-
raise 'need end and start' unless end_here && start_here
|
|
54
|
+
raise 'need both end and start' unless end_here && start_here
|
|
53
55
|
start_here = EdlParser.translate_string_to_seconds(start_here)
|
|
54
56
|
end_here = EdlParser.translate_string_to_seconds(end_here)
|
|
55
57
|
combined.select!{|start, endy, type| start > start_here && endy < end_here }
|
|
@@ -74,23 +76,30 @@ class MencoderWrapper
|
|
|
74
76
|
end
|
|
75
77
|
previous_end = endy
|
|
76
78
|
}
|
|
79
|
+
# trailer
|
|
77
80
|
out += get_section previous_end, end_here || 1_000_000, false, to_here_final_file
|
|
78
81
|
partials = (1..@idx).map{|n| "#{to_here_final_file}.#{n}.avi"}
|
|
79
82
|
to_here_final_file = to_here_final_file + ".avi"
|
|
80
83
|
if File.exist? to_here_final_file
|
|
81
|
-
|
|
84
|
+
p 'warning, overwriting ' + to_here_final_file
|
|
85
|
+
FileUtils.rm to_here_final_file # raises on deletion failure...which is what we want I think...typicaly...early warning...
|
|
82
86
|
end
|
|
83
87
|
out += "call mencoder #{partials.join(' ')} -o #{to_here_final_file} -ovc copy -oac copy\n"
|
|
84
88
|
out += "@rem old DISABLED join way... call mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd:tsaf -vf scale=720:480,harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18:vstrict=0:acodec=ac3:abitrate=192:aspect=16/9 -ofps 30000/1001 #{partials.join(' ')} -o #{to_here_final_file}\n"
|
|
85
89
|
|
|
86
|
-
delete_prefix =
|
|
90
|
+
delete_prefix = delete_partials ? "" : "@rem "
|
|
91
|
+
delete_prefix = "@rem" if am_on_developer_machine? # for ease of double checking...
|
|
87
92
|
|
|
88
|
-
out += "
|
|
93
|
+
out += "#{delete_prefix} del #{@big_temp_fulli}\n"
|
|
89
94
|
out += "#{delete_prefix} del " + partials.join(' ') + "\n"
|
|
90
95
|
out += "echo wrote (probably successfully) to #{to_here_final_file}"
|
|
91
96
|
out
|
|
92
97
|
end
|
|
93
98
|
|
|
99
|
+
def am_on_developer_machine?
|
|
100
|
+
Socket.gethostname =~ /roger|pack/i
|
|
101
|
+
end
|
|
102
|
+
|
|
94
103
|
def get_section start, endy, should_mute, to_here_final_file
|
|
95
104
|
raise 'start == end' if start == endy # should never actually happen...
|
|
96
105
|
# delete 0.001 as per wiki's suggestion.
|
|
@@ -102,7 +111,7 @@ class MencoderWrapper
|
|
|
102
111
|
if File.exist? partial_filename
|
|
103
112
|
FileUtils.rm partial_filename
|
|
104
113
|
end
|
|
105
|
-
"ffmpeg -i #{@
|
|
114
|
+
"ffmpeg -i #{@big_temp_fulli} #{codecs} -ss #{start} -t #{endy} #{partial_filename}\n"
|
|
106
115
|
end
|
|
107
116
|
|
|
108
117
|
end
|
data/lib/mplayer_edl.rb
CHANGED
|
@@ -19,12 +19,15 @@ This file is part of Sensible Cinema.
|
|
|
19
19
|
require_relative 'edl_parser'
|
|
20
20
|
|
|
21
21
|
class MplayerEdl
|
|
22
|
-
def self.convert_to_edl specs, add_this_many_to_end = 0, add_this_many_to_beginning = 0, splits = []
|
|
22
|
+
def self.convert_to_edl specs, add_this_many_to_end = 0, add_this_many_to_beginning = 0, splits = [], extra_time_to_all = 0.0
|
|
23
23
|
# simple re-map to EDL style output
|
|
24
24
|
combined = EdlParser.convert_incoming_to_split_sectors specs, add_this_many_to_end, add_this_many_to_beginning, splits
|
|
25
|
+
|
|
25
26
|
out = ''
|
|
26
27
|
map = {:mute => 1, :blank => 0}
|
|
27
28
|
for start, endy, type in combined
|
|
29
|
+
start += extra_time_to_all
|
|
30
|
+
endy += extra_time_to_all
|
|
28
31
|
out += "#{start} #{endy} #{map[type]}\n"
|
|
29
32
|
end
|
|
30
33
|
out
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
|
|
2
|
+
class ShutdownHook
|
|
3
|
+
include java.lang.Runnable
|
|
4
|
+
def initialize( &block)
|
|
5
|
+
super()
|
|
6
|
+
@block=block
|
|
7
|
+
end
|
|
8
|
+
def run
|
|
9
|
+
@block[]
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def at_exit2( &block)
|
|
14
|
+
hook = ShutdownHook.new( &block)
|
|
15
|
+
java.lang.Runtime.getRuntime.addShutdownHook(java.lang.Thread.new( hook ))
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# LODO add button if I would ever find this useful...
|
|
19
|
+
def kill_processes
|
|
20
|
+
|
|
21
|
+
if OS.windows?
|
|
22
|
+
# this prevents people from having two processes going at once...kind of like queueing them up...
|
|
23
|
+
# system_original("taskkill /f /im mencoder.exe 2>NUL") # todo...is there a better way?
|
|
24
|
+
# system_original("taskkill /f /im ffmpeg.exe 2>NUL")
|
|
25
|
+
# system_original("taskkill /f /im smplayer_portable.exe 2>NUL")
|
|
26
|
+
# system_original("taskkill /f /im mplayer.exe 2>NUL")
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
at_exit2 {
|
|
31
|
+
kill_processes # just in case
|
|
32
|
+
}
|
|
@@ -52,7 +52,7 @@ module SubtitleProfanityFinder
|
|
|
52
52
|
|
|
53
53
|
profanities = {'hell' => ['he..', true],
|
|
54
54
|
'g' +
|
|
55
|
-
'o' + 100.chr => '
|
|
55
|
+
'o' + 100.chr => '...', 'g' +
|
|
56
56
|
111.chr +
|
|
57
57
|
100.chr +
|
|
58
58
|
's' => 'deitys',
|
|
@@ -63,8 +63,12 @@ module SubtitleProfanityFinder
|
|
|
63
63
|
99.chr +
|
|
64
64
|
107.chr =>
|
|
65
65
|
'f...',
|
|
66
|
+
'sex' => 'sex',
|
|
67
|
+
'genital' => 'genital', 'make love' => 'make love',
|
|
68
|
+
'making love' => 'making love',
|
|
69
|
+
'love mak' => 'love mak',
|
|
66
70
|
'bi' +
|
|
67
|
-
'tc' + 104.chr => 'b
|
|
71
|
+
'tc' + 104.chr => 'b....',
|
|
68
72
|
'bas' +
|
|
69
73
|
'ta' + 'r' + 100.chr => 'ba.....',
|
|
70
74
|
((arse = 'a' +
|
|
@@ -73,9 +77,9 @@ module SubtitleProfanityFinder
|
|
|
73
77
|
'ole' => 'a..h...',
|
|
74
78
|
arse + 'wipe' => 'a..w....',
|
|
75
79
|
'breast' => 'br....',
|
|
76
|
-
'jesus' => '
|
|
80
|
+
'jesus' => 'l...',
|
|
77
81
|
'chri' +
|
|
78
|
-
'st'=> ['
|
|
82
|
+
'st'=> ['chr...', true], # allow for christian[ity] [good idea or not?]
|
|
79
83
|
'a realllly bad word' => ['test bad word', true]
|
|
80
84
|
}
|
|
81
85
|
|
|
@@ -145,7 +149,11 @@ module SubtitleProfanityFinder
|
|
|
145
149
|
sanitized_glop.gsub!(prof2, sanitized2)
|
|
146
150
|
end
|
|
147
151
|
end
|
|
148
|
-
|
|
152
|
+
|
|
153
|
+
# because we have duplicate's for the letter l/i, refactor [[[profanity]]]
|
|
154
|
+
sanitized_glop.gsub!(/\[+/, '[')
|
|
155
|
+
sanitized_glop.gsub!(/\]+/, ']')
|
|
156
|
+
|
|
149
157
|
# extract timing info
|
|
150
158
|
timing_line = glop.split("\n").first.strip
|
|
151
159
|
timing_line =~ /((\d\d:\d\d:\d\d),(\d\d\d) --> (\d\d:\d\d:\d\d),(\d\d\d))/
|
data/lib/swing_helpers.rb
CHANGED
data/spec/notes
CHANGED
|
@@ -1,15 +1,339 @@
|
|
|
1
1
|
up next:
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
== ts vs. mkv transcoding ==
|
|
4
|
+
mencoder fails c. mkv, succeeds c. ts (editing seems to succeed overall [?])
|
|
5
|
+
I think if I *assume* stretching...hmm...it'll probably be pretty close...hmm...
|
|
6
|
+
|
|
7
|
+
== OSOH ==
|
|
8
|
+
this one seems to show that the makemkv == ts == 29.97
|
|
9
|
+
01:53:11.31, start: 0.000000 mkv
|
|
10
|
+
ts 01:53:11.26, start: 600.000000 (essentially the same as above)
|
|
11
|
+
makemkv11 01:53:11.31
|
|
12
|
+
ts 11: 01:53:11.26
|
|
13
|
+
VLC DVD sum: 1:53:05 -> 1:53:11.8
|
|
14
|
+
makemkv is quite close to @29.97 fps
|
|
15
|
+
ffprobe -show_packets title00.ts
|
|
16
|
+
7391.234311 -> 2:03:11.2 # oh that's comforting LOL
|
|
17
|
+
only has one demux_mpg: 24000/1001fps progressive NTSC content detected, switching framerate.
|
|
18
|
+
at the beginning
|
|
19
|
+
|
|
20
|
+
== C ==
|
|
21
|
+
this one seems to show makemkv == (ts+0.2s) == 29.97
|
|
22
|
+
|
|
23
|
+
vlc DVD sum 2:10:56 (-> 2:11:03.9'ish)
|
|
24
|
+
so this time mkv was 29.97 fps accurate less 0.2s?
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
AVS says ts and mkv off by 0.2s
|
|
28
|
+
|
|
29
|
+
mkv 02:11:03.84, start: 0.000000
|
|
30
|
+
AVS says it's 2:11:03.778
|
|
31
|
+
maybe lightning strike 2:11:45.096
|
|
32
|
+
720x480 [PAR 32:27 DAR 16:9], 8000 kb/s, PAR 186:157 DAR 279:157, 29.97 fps, 59.94 tbr, 1k tbn, 59.94 tbc (default)
|
|
33
|
+
you'd think that'd be ok...hmm...
|
|
34
|
+
or do the players trust it too mightily or something... [?]
|
|
35
|
+
mediainfo: Frame rate : 29.970 fps
|
|
36
|
+
|
|
37
|
+
mplayer: VIDEO: [MPG2] 720x480 0bpp 59.940 fps 8000.0 kbps (976.6 kbyte/s)
|
|
38
|
+
with no switching content messages...so I'm guessing makemkv just maps the given frames into mkv slots [?]
|
|
39
|
+
that should be ok...unless it's getting its math wrong somehow...
|
|
40
|
+
|
|
41
|
+
NB: had 4 back and forths telecined to progressive [I imagine telecined...]
|
|
42
|
+
(also had at least one mplayer split)
|
|
43
|
+
|
|
44
|
+
ts forceidx: 02:24:10.50 # 12 minutes too far! gah!
|
|
45
|
+
ts idx: 02:24:10.50 # again!
|
|
46
|
+
|
|
47
|
+
mkv11 02:11:03.84
|
|
48
|
+
mediainfo: 2h 11mn yea
|
|
49
|
+
ts11
|
|
50
|
+
Processed 188659 video frames
|
|
51
|
+
02:11:03.62
|
|
52
|
+
ts 02:11:03.62, start: 600.000000
|
|
53
|
+
start 600? huh?
|
|
54
|
+
vob [ffmpeg?]
|
|
55
|
+
02:11:03.77, start: 1.000000
|
|
56
|
+
edited.avi 02:11:03.38
|
|
57
|
+
forceidx.yo.avi (mencoder)
|
|
58
|
+
02:11:03.40, start: 0.000000
|
|
59
|
+
|
|
60
|
+
c.mplayerdump.mpg [in AVS] sum 2:11:04.89
|
|
61
|
+
lightning: 2:10:45.079 (non AviDemux, so might be spot on)
|
|
62
|
+
HBcli on dvd: handbrakecli --scan -i e:\
|
|
63
|
+
02:10:56
|
|
64
|
+
so makemkv is perfect @29.97 on this one?
|
|
65
|
+
fulli
|
|
66
|
+
title00.ts.edited.fulli_unedited.tmp.mpg 02:11:03.05, start: 0.233367
|
|
67
|
+
|
|
68
|
+
maybe some are stripping trailing blackness? (about 2s'ish)
|
|
69
|
+
mplayer dvd lightning: 2:10:36.0
|
|
70
|
+
Warning! FPS changed 23.976 -> 29.970
|
|
71
|
+
4364.7 it has a break in it though, looks like it anyway
|
|
72
|
+
|
|
73
|
+
avi 02:11:03.38, start: 0.000000
|
|
74
|
+
|
|
75
|
+
apparently had 24 telecined frames (maybe some more at the very beginning...)
|
|
76
|
+
if those were assumed to have been 23.97fps, but were 29.97 fps 25% additive, or about 0.25s I guess
|
|
77
|
+
might explain difference mkv and ts...
|
|
78
|
+
|
|
79
|
+
hb ffmpeg sum: 02:11:04.60 [ai ai]
|
|
80
|
+
lightning AVS: 2:10:44.9 (about 0.3 early ?)
|
|
81
|
+
|
|
82
|
+
lightning
|
|
83
|
+
ts AVS: 02:10:45.302 ish
|
|
84
|
+
mkv avs: 02:10:45.0 ish
|
|
85
|
+
also avs says the mkv is 0.2s longer, really pretty close to ffmpeg's thing...
|
|
86
|
+
|
|
87
|
+
== snow white DVD ==
|
|
88
|
+
has a plus 5 freako
|
|
89
|
+
the TS *might* be right on, which would imply ts == 29.97, mkmv = ts*30.03
|
|
90
|
+
|
|
91
|
+
wall time latest: wrist watch started a tidge behind, ended up even further behind (powerdvd)
|
|
92
|
+
1:23:32 sum powerDVD
|
|
93
|
+
*except* when you scan to the end, then it's 1:23:28 again
|
|
94
|
+
my guess is powerDVD isn't keeping track except internally...
|
|
95
|
+
seeking 1HR "good night" [good] night (her last one)
|
|
96
|
+
yep it's totally internally inconsistent. Fascinating.
|
|
97
|
+
|
|
98
|
+
TODO hb it straight [?]
|
|
99
|
+
|
|
100
|
+
120180 frames in the ts
|
|
101
|
+
-> 29.97 1:46:50 <sigh>.
|
|
102
|
+
120183 frames in the mkv <sigh> LOL
|
|
103
|
+
|
|
104
|
+
VLC
|
|
105
|
+
sum DVD: 1:23:28 sum (-> 1:23:33.0 TS) -> 1:23:38.0 freako
|
|
106
|
+
mplayer makemkv: A:5018.0 == 1:23:38 sum
|
|
107
|
+
oh I feel strange...
|
|
108
|
+
too many mplayer splits in this one...
|
|
109
|
+
mpchc 1:23:28 sum DVD
|
|
110
|
+
mpchc 1:23:28 sum mkv [huh? this mkv thing is confusing me...]
|
|
111
|
+
check subtitiles +- file against file, DVD snow white
|
|
112
|
+
ffmpeg ts time: 01:23:32.49
|
|
113
|
+
ffmpeg mkv: 01:23:38.07 differs from mpchc ? differs from VLC makemkv? TODO
|
|
114
|
+
vlc mkv: 1:23:38
|
|
115
|
+
vlc ts: no times
|
|
116
|
+
ffmpeg mkv: 01:23:38.07
|
|
117
|
+
ffmpeg ts: 01:23:32.49
|
|
118
|
+
It appears that makemkv is making certain assumptions that may not be true here?
|
|
119
|
+
|
|
120
|
+
makemkv says "length shall be 1:23:11" (oopsy)
|
|
121
|
+
mediainfo mkv: 1h 23mn 38s 70ms
|
|
122
|
+
|
|
123
|
+
demux_mpg: 24000/1001fps progressive NTSC content detected, switching framerate. only one
|
|
124
|
+
V: 0.0 0/ 0 ??% ??% ??,?% 0 0
|
|
125
|
+
|
|
126
|
+
hmm...I'm beginning to wonder if maybe some are more honest than others... ?
|
|
127
|
+
|
|
128
|
+
mac dvd player -> 1:23:38 "wall time" [?] anyway it was in lock step,
|
|
129
|
+
either 28 or 38 yipes probably...28 I'm thinking bit discrepancy in there
|
|
130
|
+
|
|
131
|
+
WMP wall time at one hour was 3s ahead of it now...
|
|
132
|
+
which doesn't agree with mac dvd player? when OSOH they *did* agree? huh?
|
|
133
|
+
how did this not agree with mac dvd player? what? that's not true, that's impossible LOL
|
|
134
|
+
end WMP wall time: 1:23:32.8'ish ... sniff ... what the...
|
|
135
|
+
WMP "says" sum is 1:23:28 -> 1:23:33.0'ish
|
|
136
|
+
|
|
137
|
+
top of hill "Of one love" mplayer
|
|
138
|
+
mkv: 01:20:35.38
|
|
139
|
+
ts: 01:20:29.8 # 30.5 ? hard to tell... it's pretty close at least...
|
|
140
|
+
"should be" 01:20:30,831 NB the blu-ray subs seemed way different... blu-ray 01:20:14,276 whoa [3 different blu-ray subs agree...]
|
|
141
|
+
powerdvd: 1:20:26 for that one
|
|
142
|
+
|
|
143
|
+
== iq ==
|
|
144
|
+
|
|
145
|
+
this one mkv seems to have an extra second in there...
|
|
146
|
+
1h 35mn 49s 596ms and "expected" it errantly to be: 1:35:52.4...it's like half and half!
|
|
147
|
+
ts is 1h 35mn 47s 41ms which might be right on compared to the DVD
|
|
148
|
+
so this one implies that makemkv is just messed up? huh? ts seems fine again...
|
|
149
|
+
|
|
150
|
+
maybe sometimes mkv stretches it double in error somehow?
|
|
151
|
+
maybe it has *both* problems...LOL
|
|
152
|
+
|
|
153
|
+
wall time seems to be 29.97 (DVD player reports 30) first hour at least
|
|
154
|
+
at 1:09 it appeared to be like 6s "back", though makemkv may have interfered slightly...
|
|
155
|
+
at 1:20 7s
|
|
156
|
+
sum: 1:35:49.14'ish walltime
|
|
157
|
+
|
|
158
|
+
so maybe normal subtitles are from rips, which have been transcoded to precisely 23.97 fps,
|
|
159
|
+
so my files aren't precisely that...we shall see if this hypothesis holds true...
|
|
160
|
+
|
|
161
|
+
V: 1.0 22/ 22 17302% 18% 0.0% 0 0
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
demux_mpg: 30000/1001fps NTSC content detected, switching framerate.
|
|
165
|
+
V: 1.0 23/ 23 10748% 10% 0.0% 0 0
|
|
166
|
+
|
|
167
|
+
mplayer for the mkv seemed to creep up? somehow it seemed to get messed up...
|
|
168
|
+
TODO avidemux/quality editor for these various and its frames...what the?
|
|
169
|
+
replaying mkv might not work so hot...
|
|
170
|
+
maybe I can remux somehow first... [?]
|
|
171
|
+
maybe it's because of all those transitions which caused lossy-stuff within the mkv... [?]
|
|
172
|
+
|
|
173
|
+
can I use handbrake on mkv output? does it look better? is it just this one dvd?
|
|
174
|
+
does the mkv match DVD
|
|
175
|
+
|
|
176
|
+
mplayerdump.mencoderforceidx sum: 1:39:17 (4 minutes extra...somethin went wrong...)
|
|
177
|
+
DVD sum: 1:35:41 -> 1:35:46.7'ish, so maybe we're close...round up LOL
|
|
178
|
+
mkv sum: 1:35:49 [partially expected, partially huh?]
|
|
179
|
+
mkv mac vlc 1:25:20 ish [ugh]
|
|
180
|
+
originally reports it as 1:35:35 in its dashboard, this is without daspi
|
|
181
|
+
mac
|
|
182
|
+
DVD player: 1:35:41
|
|
183
|
+
converted: sum should be 1:35:46.7
|
|
184
|
+
and if again reconverted -> 1:35:52.4 [!]
|
|
185
|
+
mplayerx cannot play DVD/seek right
|
|
186
|
+
mplayerx on makemkv sum: 1:35:53
|
|
187
|
+
vlc on makemkv sum 1:35:49
|
|
188
|
+
mplayer command line makemkv end/sum TS: A:5749.5 == 1:35:49.5
|
|
189
|
+
seems zactly the same
|
|
190
|
+
what about ffmpeg against that thing?
|
|
191
|
+
ffprobe mkv
|
|
192
|
+
2810.792000 last video pts -> 46:50 or something [?]
|
|
193
|
+
ffmpeg mkv->ts file: 01:35:47.09
|
|
194
|
+
ffmpeg mkv: 01:35:49.59
|
|
195
|
+
* maybe just this one is messed up? *
|
|
196
|
+
|
|
197
|
+
AC3 can apparently have 6 channels: Decoding AC3 stream (track 2): Bitrate: 448Kbps Sample Rate: 48KHz Channels: 6
|
|
198
|
+
Stream #0.1(eng): Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s Metadata: title : 3/2+1
|
|
199
|
+
|
|
200
|
+
midentify mkv: 1:35:49.6
|
|
201
|
+
midentify ts: 1:00:00
|
|
202
|
+
VLC doesn't get any timing info from it
|
|
203
|
+
|
|
204
|
+
handbrake seems to be "smart" about it
|
|
205
|
+
mkv "1:35:49" "results in 1:35:45"
|
|
206
|
+
and ts "1:35:45" results in "1:35:45"
|
|
207
|
+
except transcoded is 49 and 47 s. What? (47 might be expected...hmm...)
|
|
208
|
+
|
|
209
|
+
== mplayer EDL ==
|
|
210
|
+
|
|
211
|
+
this works, 1:00 type timestamps are ignored
|
|
212
|
+
# a comment
|
|
213
|
+
10 15 0 # a comment2 also works
|
|
214
|
+
|
|
215
|
+
mplayer crash on edl 10 15 0 wordworld welcome to wordworld mac+pc dvdnav (dvd ok) title 3
|
|
216
|
+
|
|
217
|
+
====
|
|
3
218
|
|
|
4
219
|
http://www.kdenlive.org/forum/xml-format-and-edls kdenlive supports EDL, apparently (video editor)
|
|
5
220
|
|
|
6
221
|
== upconvert mplayer ==
|
|
7
|
-
|
|
222
|
+
should I set it abovenormal too?
|
|
223
|
+
|
|
224
|
+
TODO compare with mpc-hc with ffdshow...same?
|
|
225
|
+
|
|
226
|
+
guess I prefer mplayer to VLC at this point anyway <sigh> EDL support is just better...
|
|
8
227
|
is "-mc". It means "max A-V time correction per frame", and defaults to 0.01. For good input, you can go down even to 0.0001, but 0.001 i
|
|
9
228
|
-vop denoise3d
|
|
10
229
|
-vop hqdn3d
|
|
11
230
|
http://freshmeat.net/articles/fine-tuning-mplayer
|
|
12
231
|
|
|
232
|
+
-sws 9 lancosz
|
|
233
|
+
|
|
234
|
+
http://forum.doom9.org/archive/index.php/t-140961.html:
|
|
235
|
+
says "if -ssf ls=90 doesn't sharpen, try a real unsharp filter"
|
|
236
|
+
http://web.archiveorange.com/archive/v/JbcLEyHOOOqckAEhZ7Hd says the same thing. broken?
|
|
237
|
+
LODO see if sharpen is working at all even
|
|
238
|
+
|
|
239
|
+
http://www.neowin.net/forum/topic/422992-a-how-to-guide-upconverting-video-using-ffdshow:
|
|
240
|
+
denoise3d hq
|
|
241
|
+
luma 7 chroma 7 time 5
|
|
242
|
+
"specify size 1280x768" "no auto aspect correction" TODO why?
|
|
243
|
+
might not matter? might let it "go full screen 4 sure"?
|
|
244
|
+
lancozsa 10
|
|
245
|
+
"Luma sharpen" and "Chroma sharpen" to 1.50 (out of 2.0)
|
|
246
|
+
|
|
247
|
+
http://blog.thewombat.org/2008/11/how-to-use-vlc-096-as-upscaling-media.html
|
|
248
|
+
"add a video post processing filter"
|
|
249
|
+
"add a video scaling filter"
|
|
250
|
+
"add sharpen as a filter" (manually)
|
|
251
|
+
set sharpen strength to 0.15 (0.25 for hq)
|
|
252
|
+
"set post processing strength to 6" (lower for lesser CPU)"
|
|
253
|
+
|
|
254
|
+
No. As long as the GL renderer works with your hardware/driver combination, it's a lot better then the directx/overlay renderer.
|
|
255
|
+
You might want to try "gl:yuv=4:cscale=5:lscale=5" for even better rendering quality...
|
|
256
|
+
http://forum.doom9.org/showthread.php?p=1089768:
|
|
257
|
+
hardware gl: gl:yuv=4:cscale=5:lscale=5
|
|
258
|
+
|
|
259
|
+
This guy has some very aggressive sharpening parameters [LODO try out]:
|
|
260
|
+
http://www.nrtm.de/index.php/2010/09/11/mplayer-aggressives-scharfen/
|
|
261
|
+
|
|
262
|
+
"use the following syntax to playback DVD movies."
|
|
263
|
+
Code:
|
|
264
|
+
mplayer -pp 0 -vf-clr -vf pullup,yadif=1,hqdn3d=2:1.5:3,scale=-1:-1:0 -ssf ls=100 dvd://
|
|
265
|
+
|
|
266
|
+
Let us assume that hqdn3d=2:1.5:3 is a good way to clean up MPEG-2 and yadif=1 is a good decent de-interlacer. I would say that the following should work ok for most content.
|
|
267
|
+
mplayer -vf yadif=1,hqdn3d=2:1.5:3,scale=-1:-1:0
|
|
268
|
+
Maybe adding -ssf ls=100 will increase the sharpness of the content to bring out the details of the video. With mencoder, it is a little different on what options you can use compared to mplayer, so play around with the settings."
|
|
269
|
+
|
|
270
|
+
http://ubuntuforums.org/showthread.php?t=77329&page=6
|
|
271
|
+
hqdn3d=2:2:3,pp=ac
|
|
272
|
+
like this for anime...LOL I can see my jruby wrapper now...
|
|
273
|
+
|
|
274
|
+
hqdn3d[=luma_spatial:chroma_spatial:luma_tmp:chroma_tmp]
|
|
275
|
+
|
|
276
|
+
http://forum.doom9.org/archive/index.php/t-79335.html lists some less aggressive hqdn3d options...
|
|
277
|
+
|
|
278
|
+
#This sets the postprocessing into overdrive using all possible spare cpu cycles to make the movie look better
|
|
279
|
+
autoq=100
|
|
280
|
+
vf=pp=de,hqdn3d
|
|
281
|
+
|
|
282
|
+
http://freshmeat.net/articles/fine-tuning-mplayer:
|
|
283
|
+
-mc 0.001 # except for slow CPU oh my! 0.5? seconds per frame...I guess this in conjunction with autosync...
|
|
284
|
+
hqdn3d=3.5:7:5 # never > 15 for the last number
|
|
285
|
+
comment:
|
|
286
|
+
-vop pp=hb:y/vb:y and only on low-res (no post processing for HQ videos...hmm...)
|
|
287
|
+
|
|
288
|
+
-autosync 1 (or more) might resync my cruddy DVD's... LODO
|
|
289
|
+
|
|
290
|
+
more [open]gl: "use these options" http://forum.doom9.org/archive/index.php/t-132325.html hardware renderer
|
|
291
|
+
|
|
292
|
+
-vo gl by itself causes extreme stuttering and 100% cpu use on the work desktop...maybe not worth it, eh?
|
|
293
|
+
|
|
294
|
+
===
|
|
295
|
+
hqdn3d=7:7:5 # 3.5:7:5 for mpeg??
|
|
296
|
+
-sws 9
|
|
297
|
+
-vop scale=10 # lancosz inensity 10...I think...huh?
|
|
298
|
+
-ssf ls=75 # out of 100? scaling sharpen filter (luma) http://www.linuxquestions.org/questions/linux-software-2/how-can-i-get-top-quality-video-with-mencoder-636846/ uses 100 ...
|
|
299
|
+
-ssf cs=75 # scaling sharpen filter chroma
|
|
300
|
+
|
|
301
|
+
post processing options:
|
|
302
|
+
"-autoq -vop pp"
|
|
303
|
+
"-vop pp=ab/hl"
|
|
304
|
+
"-pp 6" # deprecated
|
|
305
|
+
|
|
306
|
+
ummm...does lanczos accept -ssf ls=75.0 -ssf cs=75.0 ?? or do I still need to add an unsharpen filter somehow?
|
|
307
|
+
|
|
308
|
+
[swscaler @ 013a25f4]using unscaled yuv420p -> yuv420p special converter
|
|
309
|
+
VO: [directx] 720x480 => 720x540 Planar YV12
|
|
310
|
+
is definitely bad :P
|
|
311
|
+
|
|
312
|
+
none at all looks...pretty good...
|
|
313
|
+
|
|
314
|
+
https://discussions.apple.com/thread/1771812?threadID=1771812
|
|
315
|
+
-zoom -sws 9 -vf scale=1280:720:::9:10 -ssf ls=74.0 -ssf cs=7.0
|
|
316
|
+
+- for audio: -ac hwac3 hwdts
|
|
317
|
+
how useful is post processing?
|
|
318
|
+
# do I need hqdn3d at all here?
|
|
319
|
+
do I run well on those images?
|
|
320
|
+
is lancosz 10 best?
|
|
321
|
+
|
|
322
|
+
-vf spp might help, use lots of cpu [?]
|
|
323
|
+
|
|
324
|
+
=== current sum ===
|
|
325
|
+
mplayer filename -autoq 6 -sws 9 -vf hqdn3d=7:7:5,pp,scale=1280:-1:0:0:10 -ssf ls=75.0 -ssf cs=75.0
|
|
326
|
+
or
|
|
327
|
+
-sws 9 -vf hqdn3d=7:7:5,scale=1280:-1:0:0:10 -ssf ls=75.0 -ssf cs=75.0
|
|
328
|
+
or
|
|
329
|
+
-sws 9 -vf hqdn3d=2:1.5:3,scale=1280:-1:0:0:10 -ssf ls=75.0 -ssf cs=75.0
|
|
330
|
+
|
|
331
|
+
==== prop ====
|
|
332
|
+
"upscaling"
|
|
333
|
+
http://www.neowin.net/forum/topic/615696-permanent-upconversion-in-software/
|
|
334
|
+
http://forum.videohelp.com/threads/280895-Is-there-computer-dvd-software-that-will-upconvert-regular-dvds
|
|
335
|
+
http://forums.cnet.com/7723-7596_102-285455.html
|
|
336
|
+
|
|
13
337
|
== WMC/other EDL plugins ==
|
|
14
338
|
|
|
15
339
|
http://superuser.com/questions/34128/xbmc-with-media-player-classic-home-cinema
|
|
@@ -324,7 +648,7 @@ mplayer.raw: mplayer -dumpstream dvd://1 -dvd-device d: -dumpfile dvdout.mpg
|
|
|
324
648
|
a147eb922cb00eff5d3a25e155390380 *mplayer.dumpstream.2.mpg
|
|
325
649
|
total: 188687 frames 2:11:09.828
|
|
326
650
|
fading in c: frame 111
|
|
327
|
-
lightning hits ground: 188106 02:10:45.595 0.375
|
|
651
|
+
lightning hits ground: 188106 02:10:45.595 (vlc off by 0.375 ?)
|
|
328
652
|
|
|
329
653
|
they all have the beginning dot of the poof at 228...
|
|
330
654
|
|
|
@@ -347,7 +671,7 @@ makemkv -c-: 11 MB/s, [says 4.5x] no pauses, 13.5 MB/s, 14.5 MB/s, seems to grow
|
|
|
347
671
|
opens very slowly in avidemux at home...feels longer...3 minutes to load each time?
|
|
348
672
|
2:11:08.618 188658 frames total
|
|
349
673
|
had to set it to 24 frames [? huh it worked once?]
|
|
350
|
-
no video, audio jerky r7149
|
|
674
|
+
no video, audio jerky, r7149
|
|
351
675
|
|
|
352
676
|
makemkv -> tsmuxer -> avidemux:
|
|
353
677
|
188657 frames total
|
|
@@ -522,7 +846,7 @@ handbrake md5's/sizes don't match...
|
|
|
522
846
|
109243 -rw-r--r-- 1 packrd Administ 223727993 May 25 13:20 Sintel_NTSC-2.dvdcss.2.m4v
|
|
523
847
|
109243 -rw-r--r-- 1 packrd Administ 223728412 May 25 13:47 Sintel_NTSC-2.dvdcss.3.m4v
|
|
524
848
|
|
|
525
|
-
== timing dvd player time versus clock time: ==
|
|
849
|
+
== timing dvd player time versus clock/wall time: ==
|
|
526
850
|
|
|
527
851
|
at 1:44:00 or so I seemed about 6s ahead. yup yup.
|
|
528
852
|
at end, I had like 1:53:20'ish'ish [?] (ok probably like 1:53:11 but who knows for sure :P)
|
|
@@ -950,7 +1274,7 @@ hulu
|
|
|
950
1274
|
youtube jonah: appears lower quality?
|
|
951
1275
|
15: wash your hands before you [eat]
|
|
952
1276
|
30: yes well [you] and ...
|
|
953
|
-
45: big smile, turns [to his right]
|
|
1277
|
+
45: big smile, turns [to his right]
|
|
954
1278
|
|
|
955
1279
|
powerdvd 8:
|
|
956
1280
|
15: wash your hands before you [eat] --- wash your hands [before] you eat --- wash your [hands] before you eat LOL
|
|
@@ -992,8 +1316,7 @@ saints and soldiers (chrome work netflix):
|
|
|
992
1316
|
1:30: "copyright 2003...all rights reserved" is about in the middle, maybe barely above
|
|
993
1317
|
|
|
994
1318
|
jonah if you watch it all the way through
|
|
995
|
-
30: my uncle [was] a big star
|
|
996
|
-
|
|
1319
|
+
30: my uncle [was] a big star
|
|
997
1320
|
|
|
998
1321
|
VLC jonah_edit.tmp.mpg
|
|
999
1322
|
15: (on camel) do not fight, do not cheat [wash] your hands
|