sensible-cinema 0.21.5 → 0.21.9
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE.TXT +13 -11
- data/README +59 -45
- data/Rakefile +27 -17
- data/TODO +272 -210
- data/VERSION +1 -1
- data/_DO_NOT_RUN_IT_FROM_HERE_DOWNLOAD_THE_RELEASE_ZIP_INSTEAD +0 -0
- data/bin/{sensible-cinema.rb → sensible-cinema} +40 -24
- data/bin/sensible-cinema-cli +7 -1
- data/business_ideas.txt +13 -0
- data/{ChangeLog → change_log_with_feature_list.txt} +97 -3
- data/development.txt +4 -0
- data/{experimental_readme.txt → experimental_ocr_readme.txt} +1 -1
- data/go.bat +2 -1
- data/go_ocr_tracker.bat +1 -0
- data/gocreatemode.bat +1 -0
- data/how_to_create_your_own_delete_lists.txt +11 -12
- data/legal/md5s.txt +50 -0
- data/legal/transcript_mute_vlc.txt +117 -0
- data/legal2 +1 -0
- data/lib/auto_convert.rb +3 -0
- data/lib/blanker.rb +22 -11
- data/lib/count_down_timer_jruby_swing.rb +40 -0
- data/lib/edl_converter.rb +34 -0
- data/lib/mouse.rb +61 -14
- data/lib/muter.rb +19 -5
- data/lib/profanity_finder.rb +84 -0
- data/{todo_if_need_speed → ocr.todo_if_need_speed} +0 -0
- data/propaganda +73 -0
- data/sensible-cinema.gemspec +45 -23
- data/spec/common.rb +1 -1
- data/spec/mouse.spec.rb +16 -1
- data/spec/notes +251 -8
- data/spec/screen_tracker.spec.rb +6 -4
- data/template_bats/RUN SENSIBLE CINEMA CLICK HERE.bat +19 -0
- data/template_bats/advanced--create or edit sensible cinema delete list files.bat +1 -0
- data/todo.build_library.txt +11 -0
- data/todo.inventionzy.txt +56 -0
- data/todo.open_edl_list_org.txt +148 -0
- data/todo.subtitle +35 -0
- data/www/index.html +46 -16
- data/zamples/edit_decision_lists/{netflix/example_file_copy_me.txt → dvds/example_delete_list.txt} +0 -0
- data/zamples/edit_decision_lists/dvds/example_delete_list_that_has_no_cuts_in_it.txt +10 -0
- data/zamples/edit_decision_lists/youtube/demo_mutes.txt +12 -0
- data/zamples/edit_decision_lists/youtube/nuki_song_youtube.txt +13 -0
- data/zamples/players/youtube/normal_in_youtube.com.chrome.txt +1 -0
- metadata +414 -311
- data/RUN SENSIBLE CINEMA CLICK HERE.bat +0 -7
- data/create or edit sensible cinema delete list files.bat +0 -7
- data/ext/mkrf_conf.rb +0 -27
- data/goc.bat +0 -1
- data/goe.bat +0 -1
- data/zamples/edit_decision_lists/old_not_yet_updated/youtube/nuki_song_youtube.txt +0 -9
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.21.
|
1
|
+
0.21.9
|
File without changes
|
@@ -19,9 +19,16 @@ This file is part of Sensible Cinema.
|
|
19
19
|
|
20
20
|
print 'Loading Sensible Cinema...'
|
21
21
|
require File.expand_path(File.dirname(__FILE__) + "/../lib/add_any_bundled_gems_to_load_path.rb")
|
22
|
-
|
22
|
+
begin
|
23
|
+
require 'sane' # failure here means you haven't bundled your dependencies... [$ jruby -S rake bundle_dependencies after doing jruby -S gem install sensible-cinema ]
|
24
|
+
rescue LoadError
|
25
|
+
p 'warning, loading full rubygems for your developers convenient LODO and'
|
26
|
+
require 'rubygems'
|
27
|
+
require 'sane'
|
28
|
+
end
|
23
29
|
|
24
|
-
raise 'need
|
30
|
+
raise 'need jruby' unless OS.jruby?
|
31
|
+
raise 'need newer jruby!' unless RUBY_DESCRIPTION >= 'jruby 1.6.0.RC2'
|
25
32
|
|
26
33
|
require_relative '../lib/mencoder_wrapper'
|
27
34
|
require_relative '../lib/storage'
|
@@ -40,8 +47,10 @@ vendor = File.expand_path(File.dirname(__FILE__)) + '/../vendor'
|
|
40
47
|
# XX do we need to_filename though?
|
41
48
|
ENV['PATH'] = ENV['PATH'] + ';' + (vendor + '/cache/mencoder').to_filename + ';' + (vendor + '/cache').to_filename
|
42
49
|
|
43
|
-
|
44
|
-
|
50
|
+
installed_smplayer_folders = Dir['{c,d,e}:/program files*/SMPlayer']
|
51
|
+
|
52
|
+
for folder in installed_smplayer_folders
|
53
|
+
ENV['PATH'] = ENV['PATH'] + ";#{folder.gsub('/', "\\")}"
|
45
54
|
end
|
46
55
|
|
47
56
|
import 'javax.swing.ImageIcon'
|
@@ -74,14 +83,13 @@ module SensibleSwing
|
|
74
83
|
@starting_button_y += 30
|
75
84
|
end
|
76
85
|
|
77
|
-
Storage = Storage.new("
|
78
|
-
|
86
|
+
Storage = Storage.new("sensible_cinema")
|
79
87
|
|
80
88
|
def initialize
|
81
89
|
super "Sensible-Cinema #{VERSION} (GPL)"
|
82
90
|
if !(Storage['main_license_accepted'] == VERSION)
|
83
|
-
show_blocking_license_accept_dialog 'Sensible Cinema', 'gplv3', 'http://www.gnu.org/licenses/gpl.html'
|
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
|
91
|
+
show_blocking_license_accept_dialog 'Sensible Cinema', 'gplv3', 'http://www.gnu.org/licenses/gpl.html', 'Sensible Cinema license agreement', 'Sensible Cinema is distributed under the gplv3. Click accept if you accept this agreement.'
|
92
|
+
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, understand, and accept the implications given in the LICENSE.TXT file'
|
85
93
|
Storage['main_license_accepted'] = VERSION
|
86
94
|
end
|
87
95
|
|
@@ -265,9 +273,9 @@ module SensibleSwing
|
|
265
273
|
begin
|
266
274
|
p = proc{ ole = WMI::Win32_Process.find(:first, :conditions => {'Name' => exe_name}); sleep 1 unless ole; ole }
|
267
275
|
piddy = p.call || p.call || p.call # we actually do need this to loop...guess we're too quick
|
268
|
-
# but the first
|
276
|
+
# but the first time through this still inexplicably fails... LODO
|
269
277
|
if piddy
|
270
|
-
# piddy.SetPriority low_prio # this can seg fault...yikes...
|
278
|
+
# piddy.SetPriority low_prio # this call can seg fault at times...yikes...JRUBY-5422
|
271
279
|
pid = piddy.ProcessId # this doesn't seg fault, tho
|
272
280
|
system_original("vendor\\setpriority -lowest #{pid}") # be able to use the PID on the command line
|
273
281
|
else
|
@@ -328,25 +336,30 @@ module SensibleSwing
|
|
328
336
|
# oh the insanity of the console UI...LODO more user friendly player
|
329
337
|
@popup ||= NonBlockingDialog.new("About to run mplayer DVD. To control it, use space for pause, f to toggle full screen, arrow keys to seek.")
|
330
338
|
# LODO dry up mplayer dvd opts...
|
331
|
-
play_this_mplayer ||= "mplayer dvd://#{title_track}"
|
339
|
+
play_this_mplayer ||= "mplayer dvd://#{title_track} -vo direct3d" # direct3d for windows 7 nvidia's sake yipes
|
332
340
|
command = "#{play_this_mplayer} -nocache -alang en -sid 1000 -edl #{File.expand_path EdlTempFile} -dvd-device #{drive}"
|
333
341
|
p command
|
334
342
|
Thread.new { system_blocking command; @popup.dispose }
|
335
343
|
end
|
336
344
|
|
337
|
-
def show_blocking_license_accept_dialog program, license_name, license_url_should_also_be_embedded_by_you_in_message,
|
338
|
-
|
345
|
+
def show_blocking_license_accept_dialog program, license_name, license_url_should_also_be_embedded_by_you_in_message,
|
346
|
+
title = 'Confirm Acceptance of License Agreement', message = nil
|
347
|
+
puts 'Please confirm license agreement in open window.'
|
339
348
|
old = ['no', 'yes', 'ok'].map{|name| 'OptionPane.' + name + 'ButtonText'}.map{|name| [name, UIManager.get(name)]}
|
340
349
|
UIManager.put("OptionPane.yesButtonText", 'Accept')
|
341
|
-
UIManager.put("OptionPane.noButtonText",
|
350
|
+
UIManager.put("OptionPane.noButtonText", "View License (#{license_name})")
|
342
351
|
# cancel button stays the same...
|
343
352
|
|
344
|
-
message ||= "
|
345
|
-
|
346
|
-
|
353
|
+
message ||= "Sensible Cinema requires a separately installed program (#{program}). You can install this program
|
354
|
+
separately, or Sensible Cinema can download it for you.
|
355
|
+
By clicking accept, below, you are confirming that you have read and agree to be bound by the
|
356
|
+
terms of its license (the #{license_name}), located at #{license_url_should_also_be_embedded_by_you_in_message}.
|
357
|
+
Click 'View License' to view it. If you do not agree to these terms, click 'Cancel'. You also agree that this is a
|
358
|
+
separate program, with its own distribution, license, ownership and copyright.
|
359
|
+
You agree that you are responsible for the download and use of this program, within sensible cinema or otherwise."
|
347
360
|
|
348
361
|
returned = JOptionPane.showConfirmDialog nil, message, title, JOptionPane::YES_NO_CANCEL_OPTION
|
349
|
-
# 1 is view
|
362
|
+
# 1 is view button was clicked
|
350
363
|
# 0 is accept
|
351
364
|
# 2 is cancel
|
352
365
|
if returned == 1
|
@@ -354,13 +367,14 @@ module SensibleSwing
|
|
354
367
|
System.exit 1
|
355
368
|
end
|
356
369
|
if returned == 2
|
357
|
-
p 'license not accepted...'
|
370
|
+
p 'license not accepted...exiting'
|
358
371
|
System.exit 1
|
359
372
|
end
|
360
373
|
if returned == -1
|
361
|
-
p 'license exited early...'
|
374
|
+
p 'license exited early...exiting'
|
362
375
|
System.exit 1
|
363
376
|
end
|
377
|
+
p 'confirmed license'
|
364
378
|
throw unless returned == 0
|
365
379
|
old.each{|name, old_setting| UIManager.put(name, old_setting)}
|
366
380
|
end
|
@@ -373,24 +387,26 @@ module SensibleSwing
|
|
373
387
|
ffmpeg = RubyWhich.new.which('ffmpeg')
|
374
388
|
if ffmpeg.length == 0
|
375
389
|
show_blocking_message_dialog("It appears that you need to install a dependency: imagemagick.\n
|
376
|
-
Click ok to be directed to its download website.\nYou'll probably want to download and run the \"windows-dll.exe\" package.\n
|
377
|
-
Then restart Sensible-Cinema.", "Lacking dependency", JOptionPane::ERROR_MESSAGE)
|
390
|
+
Click ok to be directed to its download website.\nYou'll probably want to download and run the \"windows-dll.exe\" http package.\n
|
391
|
+
Then restart Sensible-Cinema/console window.", "Lacking dependency", JOptionPane::ERROR_MESSAGE)
|
378
392
|
system_non_blocking("start http://www.imagemagick.org/script/binary-releases.php#windows")
|
379
393
|
java.lang.System.exit(1)
|
380
394
|
end
|
381
395
|
|
382
396
|
mencoder = RubyWhich.new.which('mencoder')
|
383
397
|
if mencoder.length == 0
|
384
|
-
show_blocking_license_accept_dialog '
|
398
|
+
show_blocking_license_accept_dialog 'mplayer', 'gplv2', 'http://www.gnu.org/licenses/gpl-2.0.html', "Appears that you need to install a dependency: mplayer with mencoder."
|
385
399
|
vendor_cache = File.expand_path(File.dirname(__FILE__)) + "/../vendor/cache/"
|
386
400
|
ENV['PATH'] = ENV['PATH'] + ';' + vendor_cache + '\\..;' + vendor_cache
|
401
|
+
Dir.mkdir(vendor_cache) unless File.directory? vendor_cache # development may not have it created yet...
|
387
402
|
Dir.chdir(vendor_cache) do
|
388
403
|
print 'downloading unzipper...'
|
389
404
|
download("http://downloads.sourceforge.net/project/sevenzip/7-Zip/9.20/7za920.zip", "7za920.zip")
|
390
405
|
system_blocking("unzip -o 7za920.zip") # -o means "overwrite" without prompting
|
391
406
|
# now we have 7za.exe
|
392
407
|
print 'downloading mencoder.7z (6MB) ...'
|
393
|
-
download("http://downloads.sourceforge.net/project/mplayer-win32/MPlayer%20and%20MEncoder/revision%2032492/MPlayer-rtm-svn-32492.7z", "mencoder.7z")
|
408
|
+
# download("http://downloads.sourceforge.net/project/mplayer-win32/MPlayer%20and%20MEncoder/revision%2032492/MPlayer-rtm-svn-32492.7z", "mencoder.7z")
|
409
|
+
download("http://downloads.sourceforge.net/project/mplayer-win32/MPlayer%20and%20MEncoder/revision%2033216/MPlayer-rtm-svn-33216.7z", "mencoder.7z")
|
394
410
|
system_blocking("7za e mencoder.7z -y -omencoder")
|
395
411
|
puts 'done'
|
396
412
|
end
|
data/bin/sensible-cinema-cli
CHANGED
@@ -92,7 +92,13 @@ def go_sc(args)
|
|
92
92
|
puts 'Selected player ' + File.basename(player_description) + "\n\t(full path: #{player_description})"
|
93
93
|
# this one doesn't use any updates, so just pass in file contents, not filename
|
94
94
|
screen_tracker = ScreenTracker.new_from_yaml File.binread(player_description), overlay
|
95
|
-
|
95
|
+
does_not_need_mouse_jerk = YAML.load_file(player_description)["does_not_need_mouse_movement"]
|
96
|
+
unless does_not_need_mouse_jerk
|
97
|
+
p 'yes mouse jitter' if $VERBOSE or $DEBUG
|
98
|
+
Mouse.jitter_forever_in_own_thread # when this ends you know a snapshot was taken...
|
99
|
+
else
|
100
|
+
p 'no mouse jitter' if $VERBOSE or $DEBUG
|
101
|
+
end
|
96
102
|
|
97
103
|
# exit early if we just wanted a screen dump...a little kludgey...
|
98
104
|
unless overlay
|
data/business_ideas.txt
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
Not that I plan on making money on it, but...
|
2
|
+
|
3
|
+
a business model where DVD's could be
|
4
|
+
purchased (along with the original) with any filter they'd like
|
5
|
+
applied. The author of the filter would receive a percentage of the
|
6
|
+
sale, prompting more people to upload quality edits so theirs gets to
|
7
|
+
be #1.
|
8
|
+
|
9
|
+
Or pay x to use filter once, or charge a "donation fee" when downloading
|
10
|
+
SC at all, or a cut of the filter per download, or a "donation"
|
11
|
+
per filter (with a cut) per download.
|
12
|
+
|
13
|
+
Or make it all free and rely on charitable community crowd-sourcing only :P
|
@@ -1,6 +1,98 @@
|
|
1
|
+
== 0.21.9 == (released same day as 0.21.8 to try to clarify quickly)
|
2
|
+
|
3
|
+
Added some lists of previously existing work.
|
4
|
+
|
5
|
+
Clarified licenses and agreement.
|
6
|
+
|
7
|
+
Note also that zoomplayer has an (unrelated) "cut scene" editor, and anydvd has "dynamic DVD re-write"
|
8
|
+
|
9
|
+
== 0.21.8 ==
|
10
|
+
|
11
|
+
Added demo/prototype of being able to automatically adjust timestamps, given an input one,
|
12
|
+
to match say other players' location of that timestamp.
|
13
|
+
|
14
|
+
Note also that we have done tons of previous functionality related to selecting DVD title tracks appropriately.
|
15
|
+
|
16
|
+
Note also that since basically the original the online player has ability to not just skip scenes but "overlay" them so that they are not seen, and/or mute them.
|
17
|
+
|
18
|
+
Note also that SPlayer has the ability to use a DVD to lookup its information/subtitles, which is an interesting invention.
|
19
|
+
|
20
|
+
== 0.21.7 ==
|
21
|
+
|
22
|
+
Basically just added some demos codes/inventionzy stuff.
|
23
|
+
|
24
|
+
NB that sensible cinema can mute by muting system volume/adjusting it [the unmute actually uses adjustment]:
|
25
|
+
http://www.youtube.com/watch?v=8cUV8DKLOK8
|
26
|
+
or by using keystrokes sent directly to the application to mute it via the application:
|
27
|
+
http://www.youtube.com/watch?v=0AsJtVyVMzk
|
28
|
+
(and has been able to do this for quite some time)
|
29
|
+
|
30
|
+
Note also that many other forms of automation techniques have already existed (ex: autoit, etc.)
|
31
|
+
|
32
|
+
Note also that this other, separate project http://code.google.com/p/movie-content-editor/
|
33
|
+
can autodownload captions based on some unique identifier of the video
|
34
|
+
(a hash, which also apparently works with DVD's), parse the downloaded captions, and
|
35
|
+
use that information [see below] to call straight into a controlled
|
36
|
+
sub-player's API to then monitor and control the player.
|
37
|
+
|
38
|
+
Note that sensible-cinema can convert among various types of EDL playbacks, as well.
|
39
|
+
|
40
|
+
Note also that mplayer has a sort of EDL training mode, with
|
41
|
+
realtime tracking and input to create EDL's easily, using user keyboard input in realtime.
|
42
|
+
|
43
|
+
Note also that our EDL's can include URL's, ex: the youtube url in question, or netflix url.
|
44
|
+
|
45
|
+
Note also that since we can control VLC (via screen tracking, or API such as
|
46
|
+
http://code.google.com/p/movie-content-editor/
|
47
|
+
) which means that our system works for blu rays, as well, inasmuch as VLC +- handbrake plays blu ray
|
48
|
+
http://www.videolan.org/developers/libbluray.html
|
49
|
+
|
50
|
+
It could also track blu-ray players like PowerDVD, so check there.
|
51
|
+
|
52
|
+
Also note that dvd profiler has been able to auto-download based on DVD title for quite awhile, since 1999 http://www.afterdawn.com/news/article.cfm/1999/07/14/dvd_profiler_open_beta_available
|
53
|
+
|
54
|
+
Note also some original content ideas here:
|
55
|
+
http://betterlogic.com/roger/2009/02/user-contributed-movie-scene-selection-or-past-clearplay/
|
56
|
+
and
|
57
|
+
http://programming-gone-awry.blogspot.com/2009/12/beyond-clearplay.html
|
58
|
+
|
59
|
+
Note also that gracenote CDDB has been able to do remote lookups based on metrics and/or title of optical discs for years.
|
60
|
+
|
61
|
+
Note also that Sensible Cinema has for several releases been able to auto-adjust timing info based on player.
|
62
|
+
|
63
|
+
Note also that we have a unit test that can control mouse position, and monitor it for changes, and use this
|
64
|
+
information to control our own mouse control, so it uses it like feedback, ex: less frequent jerking at times.
|
65
|
+
|
66
|
+
So we can also jerk less frequently in certain given circumstances.
|
67
|
+
|
68
|
+
Note that I have heard tell of an edited movie service that streams "edited content" through the web to an end listener.
|
69
|
+
|
70
|
+
== 0.21.6 ==
|
71
|
+
|
72
|
+
Can work on windows 7 64 bit now
|
73
|
+
added ability to control whether needs mouse movement or not [control mouse movement]
|
74
|
+
brought back in youtube EDL's
|
75
|
+
added new feature to actually manipulate the mouse to control the playback controls
|
76
|
+
of the internal (embedded player), so it's like automaton controlling video playback.
|
77
|
+
|
78
|
+
demo of all: http://www.youtube.com/watch?v=gJ4jFCFPan0
|
79
|
+
|
80
|
+
== 0.21.6 ==
|
81
|
+
|
82
|
+
Note that this other project http://code.google.com/p/movie-content-editor/ previously existed and has
|
83
|
+
capability to take a list of subtitles (captions) for a VLC compatible device (file, DVD)
|
84
|
+
and control VLC to mute or skip over scenes. It can have a user-configurable
|
85
|
+
list of "words to avoid." It can also take the caption avoidable scene list, and merge
|
86
|
+
that one with a user given list, to come up with a "final" skip/mute list.
|
87
|
+
|
88
|
+
Note also that comskip:
|
89
|
+
http://www.kaashoek.com/comskip
|
90
|
+
Analyzes video for certain aspects and auto-skips scenes based on computerized criteria,
|
91
|
+
it also includes machine learning for that regard.
|
92
|
+
|
1
93
|
== 0.21.5 ==
|
2
94
|
|
3
|
-
Minor verbiage.
|
95
|
+
Minor verbiage/instructions.
|
4
96
|
|
5
97
|
== 0.21.4 ==
|
6
98
|
|
@@ -12,6 +104,8 @@ are related and exist and use web players' javascript API hooks into players in
|
|
12
104
|
track playback and insert dynamic overlays, and use their internal volume
|
13
105
|
control, all based on timestamp or inferred timestamp.
|
14
106
|
|
107
|
+
+- https://github.com/8planes/mirosubs
|
108
|
+
|
15
109
|
== 0.21.3 ==
|
16
110
|
|
17
111
|
Fix installation mistake.
|
@@ -26,7 +120,7 @@ the right directshow parameters.
|
|
26
120
|
You could also use a projector to project anything you see on your computer.
|
27
121
|
|
28
122
|
Note also that with the previous code (screen tracker), it already had the capability to do
|
29
|
-
"mutes" and "blank out overlays" simultaneously, for quite a few releases.
|
123
|
+
"mutes" and "blank out overlays" simultaneously, for quite a few releases now.
|
30
124
|
|
31
125
|
== 0.21.2 ==
|
32
126
|
|
@@ -178,4 +272,4 @@ It overlays the playing screen (movie) with a separate window in order to simula
|
|
178
272
|
Note that previous releases had this functionality: VLC could "grab" the various sections from a DVD, one at a time, and
|
179
273
|
either play them back in sequence [serially], or save all of them, appending to a single final "file", using either
|
180
274
|
a batch file to accomplish the same, or an XSPF playlist that designated the start and stop times and fed that
|
181
|
-
into the player.
|
275
|
+
into the player.
|
data/development.txt
CHANGED
@@ -18,6 +18,10 @@ The tests are in the spec directory, though some of them are out of date as deve
|
|
18
18
|
|
19
19
|
Currently it's windows only, ping me if you want that changed.
|
20
20
|
|
21
|
+
Note: you transfer (c) to copyrighted published of sensible cinema when you submit patches.
|
22
|
+
|
23
|
+
Note that there are batch files to run it in normal, create, and "realtime OCR track" mode.
|
24
|
+
|
21
25
|
We welcome all feedback/contribution :)
|
22
26
|
|
23
27
|
== Advanced Usage ==
|
@@ -1,4 +1,4 @@
|
|
1
|
-
Currently the experimental screen
|
1
|
+
Currently the experimental screen tracking edited player (bin\sensible-cinema-cli) prompts for a delete 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 (
|
data/go.bat
CHANGED
@@ -1 +1,2 @@
|
|
1
|
-
call
|
1
|
+
@rem NB that you can call it like go --debug
|
2
|
+
call j %* bin\sensible-cinema
|
data/go_ocr_tracker.bat
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
call j bin\sensible-cinema-cli %*
|
data/gocreatemode.bat
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
call j %* bin\sensible-cinema --create-mode
|
@@ -1,16 +1,16 @@
|
|
1
|
-
You can create a delete list for sensible cinema to use against whatever DVD you want.
|
1
|
+
You can create a delete list for sensible cinema to use against whatever DVD you want (probably one that doesn't have its own delete list yet).
|
2
2
|
|
3
3
|
A delete list (currently) lists sections you want muted or skipped. Here is an example
|
4
4
|
|
5
|
-
"mutes" => [
|
6
|
-
"02:02:15.0" , "02:02:25", "a muted demo section",
|
7
|
-
],
|
8
|
-
|
9
|
-
"blank_outs" => [
|
10
|
-
"02:02:00.0" , "02:02:10", "blanked out demo section",
|
11
|
-
],
|
12
|
-
|
13
|
-
"name" => "Greatest Story Ever Told",
|
5
|
+
"mutes" => [
|
6
|
+
"02:02:15.0" , "02:02:25", "a muted demo section",
|
7
|
+
],
|
8
|
+
|
9
|
+
"blank_outs" => [
|
10
|
+
"02:02:00.0" , "02:02:10", "blanked out demo section",
|
11
|
+
],
|
12
|
+
|
13
|
+
"name" => "Greatest Story Ever Told",
|
14
14
|
"url" => "http://movies.netflix.com/WiPlayer?movieid=60004240&trkid=2430625",
|
15
15
|
|
16
16
|
You can see more examples in the "edit decision list" folder, here: https://github.com/rdp/sensible-cinema/tree/master/zamples
|
@@ -53,5 +53,4 @@ A few pointers:
|
|
53
53
|
Also note that you don't need to "grab" the DVD to your hard drive to edit. You can just setup the
|
54
54
|
EDL to work right [ http://goo.gl/yMfqX ] then use math to setup the correct time signatures.
|
55
55
|
|
56
|
-
[1] http://forum.videolan.org/viewtopic.php?f=2&t=81879
|
57
|
-
|
56
|
+
[1] http://forum.videolan.org/viewtopic.php?f=2&t=81879
|
data/legal/md5s.txt
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
random md5's for tracking
|
2
|
+
|
3
|
+
ed492ff097a16ac9c3c207beed7a8d17 *full3.avi
|
4
|
+
http://www.youtube.com/watch?v=gJ4jFCFPan0
|
5
|
+
e988e897ede5f27c49d8011bfb4cb246 mute system.avi
|
6
|
+
4a8b3612c666dd037ff91d68dc2c57b6 mute vlc.avi
|
7
|
+
a2c8625b646cb4bbfb99a66171b9b8f1 netflix descriptor working.avi
|
8
|
+
abe0f3a34eb8935d4f532b2ee789ceb9 to_here3.avi.fulli.tmp.avi
|
9
|
+
c:\dev\ruby\sensible-cinema\legal>md5sum "g:\mute system.avi"
|
10
|
+
\e988e897ede5f27c49d8011bfb4cb246 *g:\\mute system.avi
|
11
|
+
=> http://www.youtube.com/watch?v=8cUV8DKLOK8
|
12
|
+
c:\dev\ruby\sensible-cinema\legal>md5sum "g:\mute vlc.avi"
|
13
|
+
\4a8b3612c666dd037ff91d68dc2c57b6 *g:\\mute vlc.avi
|
14
|
+
=> http://www.youtube.com/watch?v=0AsJtVyVMzk
|
15
|
+
|
16
|
+
74f4876260c7fcfe8a696ac81d3cf883 Debug.7z
|
17
|
+
8d47950de913d97536ffe8d13a8d7203 latest-sensible-cinema.zip
|
18
|
+
2ab9b0b909e24d2cb5b91b45fb35fda5 sensible-cinema-0.14.5.zip
|
19
|
+
7e8afff74f9f991b789067e7e1ddd286 sensible-cinema-0.14.6.zip
|
20
|
+
cb32a7f982aee03598e54eefda0f7f98 sensible-cinema-0.14.8.zip
|
21
|
+
81c4d19f9975f42ea5d945c4248e2412 sensible-cinema-0.16.2.zip
|
22
|
+
bd62ba887644a437366de0b66f817631 sensible-cinema-0.16.3.zip
|
23
|
+
a12babdfb09abf7a2a833a0a9e393c20 sensible-cinema-0.16.4.zip
|
24
|
+
f2f05570882f3ae65d9d8f53b42c260a sensible-cinema-0.16.5.zip
|
25
|
+
f8d9205e31ac7af6b3d709de97e4294c sensible-cinema-0.16.7.zip
|
26
|
+
918db721fdb71ce6274188375536581f sensible-cinema-0.17.0.zip
|
27
|
+
5618d81aca3ed103601105f17d535ad7 sensible-cinema-0.18.1.zip
|
28
|
+
78fd2b42a55ffec8d219bb7bf803a721 sensible-cinema-0.18.2.zip
|
29
|
+
8edcf4e60c358496ec9581e015215b18 sensible-cinema-0.18.3.zip
|
30
|
+
a64c55b101f858218b83dfb7af6d0b53 sensible-cinema-0.18.4.zip
|
31
|
+
60f09f712e9cc8004626ad2da3520cc6 sensible-cinema-0.19.0.zip
|
32
|
+
d24f66b08b8f28c146f5473629f378d7 sensible-cinema-0.19.1.zip
|
33
|
+
11936f547af54471e0f800748edfe906 sensible-cinema-0.19.2.zip
|
34
|
+
dcc25e1c3fcd5f7745580ad351786134 sensible-cinema-0.19.4.zip
|
35
|
+
b28f00a1019b665635a302450f8bdcbb sensible-cinema-0.19.5.zip
|
36
|
+
5300900ea5407f87fcc198297720a5d6 sensible-cinema-0.19.6.zip
|
37
|
+
66b2259c3da4c732aa550c3a707770ac sensible-cinema-0.19.7.zip
|
38
|
+
2c5da873803e2399ea4b7eabea9d681e sensible-cinema-0.20.0.zip
|
39
|
+
81001183f1460b6607342dfee616eb2d sensible-cinema-0.20.2.zip
|
40
|
+
944917cf6086abfcdf4c4a0bb4ffc718 sensible-cinema-0.20.3.zip
|
41
|
+
823b8eb07a0d5c59d7fc40e1dcb9bdca sensible-cinema-0.20.5.zip
|
42
|
+
deca5dc53b714b067e5fd7eedb0adc40 sensible-cinema-0.20.6.zip
|
43
|
+
c38b4a7ce1a9fab40566f8b1a876a7d0 sensible-cinema-0.21.1.zip
|
44
|
+
569832ce944f1b9cd285a495db787d5d sensible-cinema-0.21.2.zip
|
45
|
+
9f71c5a9f59d2e7370a9ad06e4441ace sensible-cinema-0.21.3.zip
|
46
|
+
d628fe7d5284ecb764df8b79aee7b773 sensible-cinema-0.21.4.zip
|
47
|
+
8d47950de913d97536ffe8d13a8d7203 sensible-cinema-0.21.5.zip
|
48
|
+
|
49
|
+
|
50
|
+
|
@@ -0,0 +1,117 @@
|
|
1
|
+
|
2
|
+
c:\dev\ruby\sensible-cinema>call j bin\sensible-cinema-cli
|
3
|
+
Welcome to Sensible Cinema...
|
4
|
+
Please Select Computer Player
|
5
|
+
Select Edit Decision List
|
6
|
+
error: have to specify a scene descriptions file
|
7
|
+
or specify "test" on the command line if you just want to snapshot your player
|
8
|
+
|
9
|
+
c:\dev\ruby\sensible-cinema>
|
10
|
+
c:\dev\ruby\sensible-cinema>
|
11
|
+
c:\dev\ruby\sensible-cinema>
|
12
|
+
c:\dev\ruby\sensible-cinema>
|
13
|
+
c:\dev\ruby\sensible-cinema>git log | head
|
14
|
+
|
15
|
+
c:\dev\ruby\sensible-cinema>git.exe log | cat
|
16
|
+
commit d310d82ae5ddc7894ba8ef52d7910773cbe47bf1
|
17
|
+
Author: rogerdpack <rogerpack2005@gmail.com>
|
18
|
+
Date: Fri Apr 29 14:12:59 2011 -0600
|
19
|
+
|
20
|
+
default to using keyboard keys for muting
|
21
|
+
|
22
|
+
commit da72313659df6227af92bb01f552802fea88ed8a
|
23
|
+
Author: rogerdpack <rogerpack2005@gmail.com>
|
24
|
+
|
25
|
+
c:\dev\ruby\sensible-cinema>git status
|
26
|
+
|
27
|
+
c:\dev\ruby\sensible-cinema>git.exe status | cat
|
28
|
+
# On branch master
|
29
|
+
# Untracked files:
|
30
|
+
# (use "git add <file>..." to include in what will be committed)
|
31
|
+
#
|
32
|
+
# .redcar/
|
33
|
+
# bad_digit2second_ones.bmp
|
34
|
+
# bad_digit3minute_tens.bmp
|
35
|
+
# sensible-cinema-0.21.6.zip
|
36
|
+
# vendor/cache/
|
37
|
+
nothing added to commit but untracked files present (use "git add" to track)
|
38
|
+
|
39
|
+
c:\dev\ruby\sensible-cinema>
|
40
|
+
c:\dev\ruby\sensible-cinema>
|
41
|
+
c:\dev\ruby\sensible-cinema>
|
42
|
+
c:\dev\ruby\sensible-cinema>go_ocr_tracker.bat
|
43
|
+
|
44
|
+
c:\dev\ruby\sensible-cinema>call j bin\sensible-cinema-cli
|
45
|
+
Welcome to Sensible Cinema...
|
46
|
+
Please Select Computer Player
|
47
|
+
Select Edit Decision List
|
48
|
+
Selected scene descriptions file demo_mutes.txt
|
49
|
+
(full path: C:\dev\ruby\sensible-cinema\zamples\edit_decision_lists\youtube\demo_mutes.txt)
|
50
|
+
(re) loaded mute sequences from demo_mutes.txt as
|
51
|
+
{"title"=>"Friday Song",
|
52
|
+
"source"=>"youtube",
|
53
|
+
"source_url"=>"http://www.youtube.com/watch?v=CD2LRROpph0",
|
54
|
+
:mutes=>[["00:10", "00:15"], ["00:30", "00:40"]],
|
55
|
+
:blank_outs=>[]}
|
56
|
+
|
57
|
+
Selected player windowed_total_length_under_an_hour.txt
|
58
|
+
(full path: C:\dev\ruby\sensible-cinema\zamples\players\vlc\windowed_total_length_under_an_hour.txt)
|
59
|
+
Opening the curtains... (please play in your other player now)
|
60
|
+
syntax from command line: "C:\dev\ruby\sensible-cinema\zamples\players\vlc\windowed_total_length_under_an_hour.txt" "C:\dev\ruby\sensible-cinema\zamples\edit_decision_lists\youtube\demo_mutes.txt"
|
61
|
+
00:02.1 next will be at 00:10s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
62
|
+
00:03.9 next will be at 00:10s (r [ctrl+c or q to quit]): "tracking it successfully again"
|
63
|
+
00:10.0 next will be at 00:10s (r [ctrl+c or q to quit]):
|
64
|
+
00:14.9 next will be at 00:15s (muted) (r [ctrl+c or q to quit]):
|
65
|
+
00:21.9 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
66
|
+
00:23.9 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
67
|
+
00:26.0 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
68
|
+
00:28.0 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
69
|
+
00:30.0 next will be at 00:30s (r [ctrl+c or q to quit]):
|
70
|
+
"warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
71
|
+
00:32.0 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
|
72
|
+
obscured or it's not playing yet, or paused?]"
|
73
|
+
00:34.0 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
|
74
|
+
obscured or it's not playing yet, or paused?]"
|
75
|
+
00:36.0 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
|
76
|
+
obscured or it's not playing yet, or paused?]"
|
77
|
+
00:37.2 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "tracking it successfully again"
|
78
|
+
|
79
|
+
00:25.0 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
80
|
+
00:27.1 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
81
|
+
00:29.1 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
82
|
+
00:30 next will be at 00:40s (r [ctrl+c or q to quit]): :
|
83
|
+
00:31.1 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
|
84
|
+
obscured or it's not playing yet, or paused?]"
|
85
|
+
00:33.2 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
|
86
|
+
obscured or it's not playing yet, or paused?]"
|
87
|
+
00:35.2 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
|
88
|
+
obscured or it's not playing yet, or paused?]"
|
89
|
+
00:37.2 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
|
90
|
+
obscured or it's not playing yet, or paused?]"
|
91
|
+
00:39.3 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
|
92
|
+
obscured or it's not playing yet, or paused?]"
|
93
|
+
00:40.0 next will be at 00:40s (muted) (r [ctrl+c or q to quit]):
|
94
|
+
00:41.2 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
95
|
+
00:43.2 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
96
|
+
00:45.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
97
|
+
00:47.2 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
98
|
+
00:49.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
99
|
+
00:51.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
100
|
+
00:53.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
101
|
+
00:55.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
102
|
+
00:57.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
103
|
+
00:59.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
104
|
+
01:01.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
105
|
+
01:03.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
106
|
+
01:05.5 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
107
|
+
01:07.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
108
|
+
01:09.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
109
|
+
01:11.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
110
|
+
01:13.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
111
|
+
01:15.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
|
112
|
+
01:16.1 no more after this point...(r [ctrl+c or q to quit]):
|
113
|
+
quitting
|
114
|
+
01:16.2 no more after this point...(r [ctrl+c or q to quit]):
|
115
|
+
c:\dev\ruby\sensible-cinema>
|
116
|
+
|
117
|
+
|