sensible-cinema 0.19.2 → 0.19.3
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/README +10 -8
- data/Rakefile +3 -1
- data/TODO +26 -16
- data/VERSION +1 -1
- data/bin/sensible-cinema +10 -5
- data/how_to_create.txt +10 -19
- data/lib/frame_accurate.rb +3 -0
- data/lib/mencoder_wrapper.rb +2 -4
- data/sensible-cinema.gemspec +6 -2
- data/spec/frame_accurate.spec.rb +71 -0
- data/spec/mencoder_wrapper.spec.rb +4 -0
- data/spec/notes +35 -0
- data/spec/sensible_cinema_gui.spec.rb +4 -3
- data/zamples/edit_decision_lists/dvds/Harry Potter 2.txt +7 -9
- metadata +7 -3
data/README
CHANGED
|
@@ -158,23 +158,25 @@ http://blog.josephhall.com/2008/09/command-line-dvd-authoring-part-1.html
|
|
|
158
158
|
== Troubleshooting ==
|
|
159
159
|
|
|
160
160
|
Note that you'll need java previously installed for this to work. You probably already do though.
|
|
161
|
-
If you run into a snag,
|
|
162
|
-
|
|
161
|
+
If you run into a snag, it might have failed in "grabbing" the DVD, and only got part of it.
|
|
162
|
+
Try cleaning your DVD and starting over (delete all files, start again).
|
|
163
|
+
Baking soda toothpaste might help with cleaning it.
|
|
164
|
+
If it still errs, report it, along with a screen snapshot and steps of
|
|
163
165
|
how to reproduce the problem, preferably. See feedback section.
|
|
164
166
|
|
|
165
|
-
If it says "audio problem try pcm" then you can add
|
|
166
|
-
"audio_codec" => "lavc"
|
|
167
|
-
to your EDL and try again.
|
|
168
|
-
|
|
169
167
|
It can fail also because a deletion is past end of DVD, or
|
|
170
168
|
Also note that if your DVD has scratches that cause it to skip, the time signatures will be off after that point,
|
|
171
169
|
so clean your discs and try again!
|
|
172
170
|
|
|
171
|
+
Also make sure you aren't out of disk space.
|
|
172
|
+
|
|
173
173
|
Also you could try a different computer (desktop computers' DVD drives seem to work better at times than laptops')
|
|
174
174
|
|
|
175
|
-
Too slow? One big speedup would be getting a faster hard drive (
|
|
176
|
-
|
|
175
|
+
Too slow? One big speedup would be getting a faster hard drive (SSD perhaps, though
|
|
176
|
+
sensible cinema mostly reads large files, so a speedy spinning disk might help, too). A second might be to get a faster DVD drive.
|
|
177
|
+
I'm not certain but I don't believe that a faster cpu (or even dual core, etc.), will help much,
|
|
177
178
|
though it might like 3% or something.
|
|
179
|
+
Also ping me if you think it's too slow and I'll see what I can do.
|
|
178
180
|
|
|
179
181
|
== Feedback ==
|
|
180
182
|
|
data/Rakefile
CHANGED
|
@@ -116,6 +116,8 @@ desc 'j -S rake bundle_dependencies create_distro_dir ... (releases with clean c
|
|
|
116
116
|
task 'full_release' => [:bundle_dependencies, :create_distro_dir, :build] do # :release sigh
|
|
117
117
|
gems = Dir['pkg/*.gem']
|
|
118
118
|
gems[0..-2].each{|f| File.delete f} # kill old versions...
|
|
119
|
-
system("#{Gem.ruby} -S gem push #{gems[-1]}")
|
|
119
|
+
system("#{Gem.ruby} -S gem push #{gems[-1]}")
|
|
120
|
+
FileUtils.rm_rf 'pkg'
|
|
120
121
|
puts "don't forget to blog about it...and upload .zip of it..."
|
|
122
|
+
system("git push origin master")
|
|
121
123
|
end
|
data/TODO
CHANGED
|
@@ -2,23 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
== up next release ==
|
|
4
4
|
|
|
5
|
-
edit lists actually *
|
|
6
|
-
cool runnings
|
|
7
|
-
temple
|
|
8
|
-
cars
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
edit lists actually *working*:
|
|
6
|
+
cool runnings at home
|
|
7
|
+
temple at home
|
|
8
|
+
cars bring home :)
|
|
9
|
+
|
|
11
10
|
== slightly lower than that, somewhat ordered ==
|
|
12
11
|
|
|
12
|
+
broken button
|
|
13
|
+
edl is broken on HP at 2 hours, "from the dvd straight"
|
|
14
|
+
mplayer edl if it's all blank outs works right then?
|
|
15
|
+
fix edl_parser spec
|
|
16
|
+
detect disks have changed, re-query.
|
|
17
|
+
cleaner error on locked file :)
|
|
13
18
|
linearize edl's
|
|
14
19
|
don't use them linear, just linearize
|
|
15
20
|
not this release
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
mpeg is lossy (at least my current one pass conversion still is...)
|
|
21
|
+
play a bigger noise when totally done...(dvd flick'ish...)
|
|
22
|
+
mpeg is lossy (at least my current one pass conversion still is...) AND SO SLOW FOR EDITING and smplayer can't play it right unedited
|
|
19
23
|
frame accurate splitter
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
can I use ffmpeg to re-sync audio, and be able to re-play the edited copy, and thus avoid the small but extra harddup overhead (basically "just avoid")?
|
|
25
|
+
I can live with "watching while grabbing" being lack luster...or maybe I can grab it with acodec copy (typically), then reencode it somehow later into something that is friendlier to computer players...or is it encoders?
|
|
26
|
+
appears the only messed up audio one is smplayer...and probably mplayer with DVD's [?]
|
|
27
|
+
button start EDL playback here [?]
|
|
22
28
|
partner for filters (Jon, Karlie if interested...give beta)
|
|
23
29
|
lotsa filters somehow
|
|
24
30
|
my dvd's (loose timestamps...)
|
|
@@ -27,25 +33,29 @@
|
|
|
27
33
|
beta release/rinse and repeat with various ppl (once it's releasable...)
|
|
28
34
|
a real'ish-er website
|
|
29
35
|
link to ML
|
|
30
|
-
|
|
31
|
-
|
|
36
|
+
compare computer DVD timings with physical player's timings...
|
|
37
|
+
if same, add imdb todo's up here
|
|
32
38
|
propaganda-ize
|
|
33
39
|
advertise in christian places
|
|
34
40
|
blogs that have ever mentioned clearplay :P
|
|
35
41
|
free google adwords (?)
|
|
36
42
|
advertise urug, ruby flow :)
|
|
37
43
|
add they 'play from unedited from grab till it hits the first bad spot', if useful [?]
|
|
38
|
-
|
|
44
|
+
md5 and verify the fulli version... [?]
|
|
45
|
+
only useful once I get the frame accurate stuff done, and any audio tweakage, etc.
|
|
39
46
|
|
|
40
|
-
== DVD backlog (unordered, some very low prio, basically never do) ==
|
|
47
|
+
== DVD backlog (unordered, some very low prio, basically all never do) ==
|
|
41
48
|
|
|
49
|
+
can I combine commands onto one command line for a quicker anything?
|
|
50
|
+
can I get the original audio tracks back?
|
|
51
|
+
show them how to use smplayer with subtitles
|
|
52
|
+
can overlay with an image
|
|
42
53
|
can you forceidx on the original copy and have mplayer replay EDL in realtime accurately or not, with audio?
|
|
43
54
|
if not somehow, wait till video falls through, then see if I can...do something here with audio...yipers..
|
|
44
55
|
sound accurate?
|
|
45
56
|
back to audio copy? huh?
|
|
46
57
|
calculating disk's unique id... -> gui somewhere
|
|
47
58
|
@dvd flick: auto-detect the aspect ratio, if possible (?)
|
|
48
|
-
detect disks have changed, re-query.
|
|
49
59
|
ffmpeg handle 3F2R audio [sigh] [cars, should work with temple at lavc, too, bob dvd's are dual, I think...hmm...]
|
|
50
60
|
"preview edited in a wholly blank section that includes an audio section should fail"
|
|
51
61
|
an 'always skip mutes' option for paranoia.
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.19.
|
|
1
|
+
0.19.3
|
data/bin/sensible-cinema
CHANGED
|
@@ -78,7 +78,7 @@ module SensibleSwing
|
|
|
78
78
|
# make them choose which system call to use explicitly
|
|
79
79
|
undef system
|
|
80
80
|
def initialize
|
|
81
|
-
super "Sensible-Cinema"
|
|
81
|
+
super "Sensible-Cinema (gpl)"
|
|
82
82
|
if !(Storage['main_license_accepted'] == VERSION)
|
|
83
83
|
show_blocking_license_accept_dialog 'Sensible Cinema', 'gplv3', 'http://www.gnu.org/licenses/gpl.html'
|
|
84
84
|
show_blocking_license_accept_dialog 'Sensible Cinema', 'LICENSE.TXT file', File.expand_path(File.dirname(__FILE__) + "/../LICENSE.TXT"), 'LICENSE.TXT file', 'I acknowledge that I have read the LICENSE.TXT file.'
|
|
@@ -105,13 +105,13 @@ module SensibleSwing
|
|
|
105
105
|
do_copy_dvd_to_hard_drive false
|
|
106
106
|
}
|
|
107
107
|
|
|
108
|
-
@mplayer_edl = new_jbutton( "Watch DVD on computer edited realtime",
|
|
108
|
+
@mplayer_edl = new_jbutton( "Watch DVD on computer edited realtime", true ) # TODO enable once it works with HP
|
|
109
109
|
@mplayer_edl.on_clicked {
|
|
110
110
|
drive, dvd_volume_name, md5sum, edl_path, descriptors = choose_dvd_and_edl_for_it
|
|
111
111
|
descriptors = EdlParser.parse_file edl_path
|
|
112
112
|
temp_dir = Dir.tmpdir
|
|
113
113
|
temp_file = temp_dir + '/mplayer.temp.edl'
|
|
114
|
-
edl_contents = MplayerEdl.convert_to_edl descriptors,
|
|
114
|
+
edl_contents = MplayerEdl.convert_to_edl descriptors, 5.75 # add a sec to mutes to accomodate for mplayer's oddness...
|
|
115
115
|
File.write(temp_file, edl_contents)
|
|
116
116
|
title_track = get_title_track(descriptors)
|
|
117
117
|
# oh the insanity of the console UI...LODO more user friendly player
|
|
@@ -193,6 +193,11 @@ EOL
|
|
|
193
193
|
This is used to identify a disk to match it to its EDL, later.", "\"disk_unique_id\" => \"#{md5}\",")
|
|
194
194
|
}
|
|
195
195
|
|
|
196
|
+
@upload = new_jbutton( "Upload/e-mail suggestion/Submit anything").on_clicked {
|
|
197
|
+
system_non_blocking("start mailto:sensible-cinema@googlegroups.com")
|
|
198
|
+
system_non_blocking("start http://groups.google.com/group/sensible-cinema")
|
|
199
|
+
}
|
|
200
|
+
|
|
196
201
|
@progress_bar = JProgressBar.new(0, 100)
|
|
197
202
|
@progress_bar.set_bounds(44,@starting_button_y,@button_width,23)
|
|
198
203
|
@progress_bar.visible = false
|
|
@@ -361,7 +366,7 @@ EOL
|
|
|
361
366
|
descriptors = parse_edl edit_list_path
|
|
362
367
|
rescue SyntaxError => e
|
|
363
368
|
puts e
|
|
364
|
-
show_blocking_message_dialog("your file has an error: \n" + edit_list_path + "\n " + e)
|
|
369
|
+
show_blocking_message_dialog("your file has an error--please fix then hit ok: \n" + edit_list_path + "\n " + e)
|
|
365
370
|
end
|
|
366
371
|
end
|
|
367
372
|
@_choose_dvd_and_edl_for_it[-1] = descriptors
|
|
@@ -494,7 +499,7 @@ EOL
|
|
|
494
499
|
show_blocking_message_dialog "Done--you may now watch file #{saved_to} in SMPlayer or VLC player"
|
|
495
500
|
end
|
|
496
501
|
else
|
|
497
|
-
show_blocking_message_dialog("Failed--please examine
|
|
502
|
+
show_blocking_message_dialog("Failed--please examine console output and report back!\nAlso consult the troubleshooting section of the README file.", "Failed", JOptionPane::ERROR_MESSAGE)
|
|
498
503
|
end
|
|
499
504
|
end
|
|
500
505
|
|
data/how_to_create.txt
CHANGED
|
@@ -15,35 +15,26 @@ insert DVD, click "create new" button
|
|
|
15
15
|
click "open ripped version of DVD unedited", right click, create new file, name it something.txt, right click, "open", and then select it.
|
|
16
16
|
|
|
17
17
|
it will rip that fella to the hard drive (for the save to filename, use the default).
|
|
18
|
-
It will take quite awhile, but will get everything set up for quick editing after that.
|
|
18
|
+
It will take quite awhile, but will get everything set up for quick editing after that point.
|
|
19
19
|
|
|
20
20
|
In the meantime, make your file look like this:
|
|
21
21
|
|
|
22
22
|
https://github.com/rdp/sensible-cinema/blob/master/zamples/edit_decision_lists/example_edit_decision_list.txt
|
|
23
23
|
|
|
24
|
-
After it finishes ripping it, it will start you watching it in mplayer, which
|
|
24
|
+
After it finishes ripping it, it will start you watching it in mplayer, from which you can "derive" the parts you wish to delete.
|
|
25
25
|
|
|
26
|
-
Add timestamps to your file as necessary, then (exit smplayer and) click "Preview edited section of current DVD" (use the default filename
|
|
27
|
-
give it a range "around" the edit you just added, then it will
|
|
28
|
-
|
|
29
|
-
If it did, then click "Open ripped version of DVD" again, and continue playing from where you were before.
|
|
30
|
-
|
|
31
|
-
When you're done finally, then click "Create edited copy of DVD on your hard drive".
|
|
32
|
-
It will re-rip and do it all (will take forever), but will give you your final product.
|
|
33
|
-
Alternatively, you could get a final product by clicking "Preview edited section of current DVD" and putting in a start timestamp of
|
|
34
|
-
00:00 and an end timestamp of 9999 or what not. Same deal, but will take you less time.
|
|
26
|
+
Add timestamps to your file as necessary, then (exit smplayer and) click "Preview edited section of current DVD" (use the default filename),
|
|
27
|
+
give it a range "around" the edit you just added, then it will preview that segment. If it didn't work, edit the file,
|
|
28
|
+
close smplayer, and hit "re-run most recent preview"
|
|
35
29
|
|
|
36
30
|
Also after you're done, you can delete any left over files that are still there.
|
|
37
31
|
|
|
38
|
-
Also after you're done, you can submit it back to the project by
|
|
32
|
+
Also after you're done, you can submit it back to the project by submitting it, see end of README.
|
|
39
33
|
|
|
40
|
-
|
|
41
|
-
|
|
34
|
+
A few pointers:
|
|
42
35
|
I typically like to make two delete lists per DVD. One that takes out swearing, sex, and gruesome violence, and another
|
|
43
36
|
"more paranoid" version that takes out basically anything that could be offensive to anybody :) ("dang", "fetch", "too tense" of scenes...)
|
|
44
|
-
|
|
45
|
-
A few pointers:
|
|
46
37
|
You can just watch the DVD (using any DVD player), and get timestamps that way, before starting this.
|
|
47
|
-
A good one is "smplayer" (the [ and ] keys control playback speed)
|
|
48
|
-
You can watch the DVD using VLC Player, which has a "fast forward" button, just recognize that VLC's timestamps are slightly off,
|
|
49
|
-
so they'll only be approximate, but it might
|
|
38
|
+
A good one is "smplayer" (the [ and ] keys control playback speed), and you can turn on subtitles to find profanity.
|
|
39
|
+
You can watch the DVD using VLC Player, which has a "fast forward" button, just recognize that VLC's timestamps are always slightly off,
|
|
40
|
+
so they'll only be approximate, but it might be close.
|
data/lib/mencoder_wrapper.rb
CHANGED
|
@@ -28,11 +28,9 @@ class MencoderWrapper
|
|
|
28
28
|
if File.exist?(@big_temp) && File.exist?(@big_temp + '.done')
|
|
29
29
|
out = '@rem '
|
|
30
30
|
end
|
|
31
|
-
|
|
32
|
-
# equivalent of ffmpeg's -target ntsc-dvd...I think...except that aspect thing terrifies me...
|
|
33
|
-
audio_codec = these_settings['audio_codec'] || 'lavc' # not copy...sniff...
|
|
31
|
+
audio_codec = these_settings['audio_codec'] || 'lavc' # not copy...sniff...or you can't hear cars...
|
|
34
32
|
video_opts = "-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"
|
|
35
|
-
out + "call mencoder dvdnav://#{@dvd_title_track} -of mpeg -mpegopts format=dvd:tsaf -alang en -nocache -sid 1000 -oac #{audio_codec} #{video_opts} -o #{@big_temp} -dvd-device #{this_drive} && echo got_file > #{@big_temp}.done\n"
|
|
33
|
+
out + "call mencoder dvdnav://#{@dvd_title_track} -of mpeg -mpegopts format=dvd:tsaf -alang en -nocache -sid 1000 -oac #{audio_codec} #{video_opts} -o #{@big_temp} -dvd-device #{this_drive} && echo got_file > #{@big_temp}.done\n"# -vf harddup
|
|
36
34
|
end
|
|
37
35
|
|
|
38
36
|
def calculate_final_filename to_here_final_file
|
data/sensible-cinema.gemspec
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
Gem::Specification.new do |s|
|
|
7
7
|
s.name = %q{sensible-cinema}
|
|
8
|
-
s.version = "0.19.
|
|
8
|
+
s.version = "0.19.3"
|
|
9
9
|
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
11
11
|
s.authors = ["Roger Pack"]
|
|
12
|
-
s.date = %q{2010-12-
|
|
12
|
+
s.date = %q{2010-12-22}
|
|
13
13
|
s.email = %q{rogerdpack@gmail.com}
|
|
14
14
|
s.executables = ["sensible-cinema", "sensible-cinema-cli"]
|
|
15
15
|
s.extensions = ["ext/mkrf_conf.rb"]
|
|
@@ -42,6 +42,7 @@ Gem::Specification.new do |s|
|
|
|
42
42
|
"lib/edl_parser.rb",
|
|
43
43
|
"lib/fake_blanker.rb",
|
|
44
44
|
"lib/file_chooser.rb",
|
|
45
|
+
"lib/frame_accurate.rb",
|
|
45
46
|
"lib/keyboard_input.rb",
|
|
46
47
|
"lib/mencoder_wrapper.rb",
|
|
47
48
|
"lib/mouse.rb",
|
|
@@ -62,6 +63,7 @@ Gem::Specification.new do |s|
|
|
|
62
63
|
"spec/convert_image.rb",
|
|
63
64
|
"spec/drive_info.spec.rb",
|
|
64
65
|
"spec/edl_parser.spec.rb",
|
|
66
|
+
"spec/frame_accurate.spec.rb",
|
|
65
67
|
"spec/go_line.bat",
|
|
66
68
|
"spec/images/black.bmp",
|
|
67
69
|
"spec/images/colon.bmp",
|
|
@@ -115,6 +117,7 @@ Gem::Specification.new do |s|
|
|
|
115
117
|
"spec/mouse.spec.rb",
|
|
116
118
|
"spec/mplayer_edl.spec.rb",
|
|
117
119
|
"spec/muter.spec.rb",
|
|
120
|
+
"spec/notes",
|
|
118
121
|
"spec/ocr.spec.rb",
|
|
119
122
|
"spec/overlayer.spec.rb",
|
|
120
123
|
"spec/screen_tracker.spec.rb",
|
|
@@ -165,6 +168,7 @@ Gem::Specification.new do |s|
|
|
|
165
168
|
"spec/convert_image.rb",
|
|
166
169
|
"spec/drive_info.spec.rb",
|
|
167
170
|
"spec/edl_parser.spec.rb",
|
|
171
|
+
"spec/frame_accurate.spec.rb",
|
|
168
172
|
"spec/keyboard_input.spec.rb",
|
|
169
173
|
"spec/mencoder_wrapper.spec.rb",
|
|
170
174
|
"spec/mouse.spec.rb",
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
=begin
|
|
2
|
+
Copyright 2010, Roger Pack
|
|
3
|
+
This file is part of Sensible Cinema.
|
|
4
|
+
|
|
5
|
+
Sensible Cinema is free software: you can redistribute it and/or modify
|
|
6
|
+
it under the terms of the GNU General Public License as published by
|
|
7
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
8
|
+
(at your option) any later version.
|
|
9
|
+
|
|
10
|
+
Sensible Cinema is distributed in the hope that it will be useful,
|
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
13
|
+
GNU General Public License for more details.
|
|
14
|
+
|
|
15
|
+
You should have received a copy of the GNU General Public License
|
|
16
|
+
along with Sensible Cinema. If not, see <http://www.gnu.org/licenses/>.
|
|
17
|
+
=end
|
|
18
|
+
require File.dirname(__FILE__) + "/common"
|
|
19
|
+
|
|
20
|
+
require_relative '../lib/frame_accurate'
|
|
21
|
+
describe FrameAccurate do
|
|
22
|
+
|
|
23
|
+
String = <<EOL
|
|
24
|
+
|
|
25
|
+
[PACKET]
|
|
26
|
+
codec_type=video
|
|
27
|
+
stream_index=0
|
|
28
|
+
pts=N/A
|
|
29
|
+
pts_time=N/A
|
|
30
|
+
dts=132
|
|
31
|
+
dts_time=4.404404
|
|
32
|
+
duration=1
|
|
33
|
+
duration_time=0.033367
|
|
34
|
+
size=29030.000000
|
|
35
|
+
pos=4164842
|
|
36
|
+
flags=K
|
|
37
|
+
[/PACKET]
|
|
38
|
+
[PACKET]
|
|
39
|
+
codec_type=audio
|
|
40
|
+
stream_index=1
|
|
41
|
+
pts=105984
|
|
42
|
+
pts_time=4.416000
|
|
43
|
+
dts=105984
|
|
44
|
+
dts_time=4.416000
|
|
45
|
+
duration=768
|
|
46
|
+
duration_time=0.032000
|
|
47
|
+
size=768.000000
|
|
48
|
+
pos=4193880
|
|
49
|
+
flags=K
|
|
50
|
+
[/PACKET]
|
|
51
|
+
[PACKET]
|
|
52
|
+
codec_type=video
|
|
53
|
+
stream_index=0
|
|
54
|
+
pts=N/A
|
|
55
|
+
pts_time=N/A
|
|
56
|
+
dts=133
|
|
57
|
+
dts_time=4.437771
|
|
58
|
+
duration=1
|
|
59
|
+
duration_time=0.033367
|
|
60
|
+
size=28965.000000
|
|
61
|
+
pos=4194656
|
|
62
|
+
flags=_
|
|
63
|
+
[/PACKET]
|
|
64
|
+
|
|
65
|
+
EOL
|
|
66
|
+
|
|
67
|
+
it "should parse strings" do
|
|
68
|
+
FrameAccurate.parse(String).should == [[4.404404, true], [4.437771, false]]
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
end
|
|
@@ -19,6 +19,10 @@ require File.dirname(__FILE__) + "/common"
|
|
|
19
19
|
require_relative '../lib/mencoder_wrapper'
|
|
20
20
|
require_relative '../lib/edl_parser'
|
|
21
21
|
|
|
22
|
+
# require 'digest/md5'
|
|
23
|
+
# hasher = Digest::MD5.new
|
|
24
|
+
# size = 1024*1024
|
|
25
|
+
# p Digest::MD5.file('HP_AND_THE_CHAMBER_OF_SECRETS_edited_version.fulli_unedited.tmp.mpg')
|
|
22
26
|
# mpeg fulli_unedited one pass doesn't look "awful"
|
|
23
27
|
# mp4 fulli_unedited default looks way granular
|
|
24
28
|
# so could either attempt to re-encode at high cpu, possibly still lossy
|
data/spec/notes
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
The kicker is that if I want to watch the "unedited all" option in mplayer (which I do for the "quick start" mode), then it needs to be as is...
|
|
2
|
+
|
|
3
|
+
audio_codec = these_settings['audio_codec'] || 'lavc' # not copy...sniff...or you can't hear cars...as ffmpeg loses it on transfer [?] at least the intermediates you *cannot* hear.
|
|
4
|
+
|
|
5
|
+
HP with edl (only) seriously fails at the 2 hour mark, even with 5 seconds added, or seems to, at least.
|
|
6
|
+
|
|
7
|
+
windows media player is able to playback the "fulli" that mplayer gets out of sync on (lavc audio), at least with cars.
|
|
8
|
+
|
|
9
|
+
mplayer dvd://23 -dvd-device e:\ -edl C:\Users\packrd\AppData\Local\Temp\mplayer.temp.edl
|
|
10
|
+
seems to play with audio in sync always, with cars (now with potter...)
|
|
11
|
+
|
|
12
|
+
what if you grab with "full" audio...does it make its way back out to the DVD? what does dvd flick do audio wise?
|
|
13
|
+
|
|
14
|
+
without harddup smplayer got audio video out of sync playing DVD, as well as playing ripped files, however
|
|
15
|
+
when you wrote those to DVD, they seemed to get back in sync. ffmpeg, perhaps, is/was fixing them?
|
|
16
|
+
|
|
17
|
+
fulli with lavc audio and video: mplayer cannot play it back right, but if it's re-encoded with mencoder first [? or is it ffmpeg?], mplayer
|
|
18
|
+
seems to play it fine then. Thin ice here...
|
|
19
|
+
|
|
20
|
+
if I pull from dvd with -acodec lavc (basically downgrade to stereo), then ffmpeg can extract to avi with sound.
|
|
21
|
+
otherwise (cars only), it lacks sound *only on computer players*
|
|
22
|
+
|
|
23
|
+
Note that mencoder cannot have an endpos on a dvd. Weird.
|
|
24
|
+
|
|
25
|
+
Note that dvdflick "appears" to encode correctly even if the size is too big, as in it just encodes it "lossy-y"
|
|
26
|
+
The encoding actually appears to be fairly high quality, that dvd flick does, video wise, at least.
|
|
27
|
+
|
|
28
|
+
ffmpeg -i bigg.mpg -acodec copy -vcodec copy bigg.reindexffmpeg.mpg
|
|
29
|
+
|
|
30
|
+
resulted in a sound with no audio
|
|
31
|
+
|
|
32
|
+
I got bigg trying to combine (mencoder ?) two large files.
|
|
33
|
+
|
|
34
|
+
I think bigg has honestly messed up audio, no reindexing seems to help it, at all.
|
|
35
|
+
|
|
@@ -83,7 +83,7 @@ module SensibleSwing
|
|
|
83
83
|
end
|
|
84
84
|
end
|
|
85
85
|
|
|
86
|
-
it "should modify path to have
|
|
86
|
+
it "should modify path to have mencoder available" do
|
|
87
87
|
ENV['PATH'].should include("mencoder")
|
|
88
88
|
end
|
|
89
89
|
|
|
@@ -233,9 +233,10 @@ module SensibleSwing
|
|
|
233
233
|
|
|
234
234
|
it "if the .done file does not exist, it should call smplayer ja" do
|
|
235
235
|
@subject.stub!(:sleep) {} # speed this test up...
|
|
236
|
-
|
|
236
|
+
click_button(:@watch_unedited).join
|
|
237
237
|
@subject.after_success_once.should == nil
|
|
238
|
-
@command.
|
|
238
|
+
@command.should =~ /smplayer.*fulli/
|
|
239
|
+
@system_blocking_command.should_not == nil
|
|
239
240
|
end
|
|
240
241
|
|
|
241
242
|
it "should create a new file for ya" do
|
|
@@ -3,16 +3,14 @@
|
|
|
3
3
|
"00:09:44", "00:09:46", "darn",
|
|
4
4
|
"00:12:28", "00:12:29", "good L..",
|
|
5
5
|
"01:20:59", "01:21:00", "h..",
|
|
6
|
-
"01:21:
|
|
7
|
-
"02:
|
|
6
|
+
"01:21:16", "01:21:17.5", "he..",
|
|
7
|
+
"02:01:10.5", "02:01:12", "h..",
|
|
8
8
|
],
|
|
9
9
|
|
|
10
|
+
"blank_outs" => [
|
|
11
|
+
"01:21:08", "01:21:09", "profanity", "he..", # too easy to lip read :)
|
|
12
|
+
],
|
|
10
13
|
|
|
11
14
|
"disk_unique_id" => "9a56136cdd5bc321ebff064cd59b8322",
|
|
12
|
-
"title" => "
|
|
13
|
-
|
|
14
|
-
#9:44 "darn"
|
|
15
|
-
|
|
16
|
-
#12:28 "good L.."
|
|
17
|
-
#1:21:24 (he. . 2x)
|
|
18
|
-
#2:00:30 (he..)
|
|
15
|
+
"title" => "Harry Potter 2 Chamber of secrets",
|
|
16
|
+
"grabbed_md5" => "2f0395de5eaf0c64eae859e17ba270fd"
|
metadata
CHANGED
|
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
|
5
5
|
segments:
|
|
6
6
|
- 0
|
|
7
7
|
- 19
|
|
8
|
-
-
|
|
9
|
-
version: 0.19.
|
|
8
|
+
- 3
|
|
9
|
+
version: 0.19.3
|
|
10
10
|
platform: ruby
|
|
11
11
|
authors:
|
|
12
12
|
- Roger Pack
|
|
@@ -14,7 +14,7 @@ autorequire:
|
|
|
14
14
|
bindir: bin
|
|
15
15
|
cert_chain: []
|
|
16
16
|
|
|
17
|
-
date: 2010-12-
|
|
17
|
+
date: 2010-12-22 00:00:00 -07:00
|
|
18
18
|
default_executable:
|
|
19
19
|
dependencies:
|
|
20
20
|
- !ruby/object:Gem::Dependency
|
|
@@ -180,6 +180,7 @@ files:
|
|
|
180
180
|
- lib/edl_parser.rb
|
|
181
181
|
- lib/fake_blanker.rb
|
|
182
182
|
- lib/file_chooser.rb
|
|
183
|
+
- lib/frame_accurate.rb
|
|
183
184
|
- lib/keyboard_input.rb
|
|
184
185
|
- lib/mencoder_wrapper.rb
|
|
185
186
|
- lib/mouse.rb
|
|
@@ -200,6 +201,7 @@ files:
|
|
|
200
201
|
- spec/convert_image.rb
|
|
201
202
|
- spec/drive_info.spec.rb
|
|
202
203
|
- spec/edl_parser.spec.rb
|
|
204
|
+
- spec/frame_accurate.spec.rb
|
|
203
205
|
- spec/go_line.bat
|
|
204
206
|
- spec/images/black.bmp
|
|
205
207
|
- spec/images/colon.bmp
|
|
@@ -253,6 +255,7 @@ files:
|
|
|
253
255
|
- spec/mouse.spec.rb
|
|
254
256
|
- spec/mplayer_edl.spec.rb
|
|
255
257
|
- spec/muter.spec.rb
|
|
258
|
+
- spec/notes
|
|
256
259
|
- spec/ocr.spec.rb
|
|
257
260
|
- spec/overlayer.spec.rb
|
|
258
261
|
- spec/screen_tracker.spec.rb
|
|
@@ -328,6 +331,7 @@ test_files:
|
|
|
328
331
|
- spec/convert_image.rb
|
|
329
332
|
- spec/drive_info.spec.rb
|
|
330
333
|
- spec/edl_parser.spec.rb
|
|
334
|
+
- spec/frame_accurate.spec.rb
|
|
331
335
|
- spec/keyboard_input.spec.rb
|
|
332
336
|
- spec/mencoder_wrapper.spec.rb
|
|
333
337
|
- spec/mouse.spec.rb
|