dvdvrconv 1.3.1 → 1.3.2
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.
- checksums.yaml +4 -4
- data/lib/dvdvrconv/dvdvr.rb +14 -30
- data/lib/dvdvrconv/version.rb +1 -1
- data/lib/dvdvrconv.rb +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c5f0218e853e4af5210eb7b85aeba67f2cd8dc5a42485488034f44bb76677bb7
|
|
4
|
+
data.tar.gz: ba57fbddc4615b81228f2d4f22ffb86f849c343ef6d18d8c7184a66e7baf566c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 126e3d8909f423585538bdc2daee2e01b5d664cb15d3ee756fbf312580ba725b8808a71ec00d30f8814bccb132930d20d0652b5503676ede2e443d3160d4415b
|
|
7
|
+
data.tar.gz: 6c4295f3f3aa90db8e67b36448dbaa99caf84bcf21c1c1719484aa56d0276cf402235be237bcaa8e87f2441f021c6e6db8b6589323c4ef351d4f0a013446eac7
|
data/lib/dvdvrconv/dvdvr.rb
CHANGED
|
@@ -64,27 +64,19 @@ module Dvdvrconv
|
|
|
64
64
|
|
|
65
65
|
# Read VRO file from dvd-ram disc in dvd-vr format, and output vob files.
|
|
66
66
|
def str_dvdvr_cmd
|
|
67
|
-
%(#{@vrdisc.cmd} --name
|
|
67
|
+
Shellwords.shellsplit(%("#{@vrdisc.cmd}" --name="#{Dvdvrconv::BASE_NAME}" "#{@vrdisc.opts_ifo}" "#{@vrdisc.opts_vro}"))
|
|
68
68
|
end
|
|
69
69
|
|
|
70
70
|
# Make a concatenation command string for FFmpeg.
|
|
71
71
|
def str_concat_cmd(file_name, base_name)
|
|
72
|
-
%(ffmpeg -f concat -safe 0 -i #{file_name} -c copy #{base_name}.vob)
|
|
72
|
+
Shellwords.shellsplit(%(ffmpeg -f concat -safe 0 -i "#{file_name}" -c copy "#{base_name}.vob"))
|
|
73
73
|
end
|
|
74
74
|
|
|
75
75
|
# File convert command, vob to mp4 for FFmpeg.
|
|
76
76
|
# * Change the aspect ratio to 16:9.
|
|
77
77
|
# * Delete a closed caption.
|
|
78
78
|
def ffmeg_normal_cmd(file_name)
|
|
79
|
-
|
|
80
|
-
cmd += "-i #{file_name}.vob "
|
|
81
|
-
cmd += '-filter:v "crop=704:474:0:0" '
|
|
82
|
-
cmd += '-vcodec libx264 '
|
|
83
|
-
cmd += '-b:v 500k '
|
|
84
|
-
cmd += '-aspect 16:9 '
|
|
85
|
-
cmd += '-acodec copy '
|
|
86
|
-
cmd += '-bsf:v "filter_units=remove_types=6" '
|
|
87
|
-
cmd + "#{file_name}.mp4"
|
|
79
|
+
Shellwords.shellsplit(%(ffmpeg -i "#{file_name}.vob" -filter:v "crop=704:474:0:0" -vcodec libx264 -b:v 500k -aspect 16:9 -acodec copy -bsf:v "filter_units=remove_types=6" "#{file_name}.mp4"))
|
|
88
80
|
end
|
|
89
81
|
|
|
90
82
|
# File convert command, vob to mp4 for FFmpeg.
|
|
@@ -92,18 +84,7 @@ module Dvdvrconv
|
|
|
92
84
|
# * Change the aspect ratio to 16:9.
|
|
93
85
|
# * Delete a closed caption.
|
|
94
86
|
def ffmpeg_qsv_cmd(file_name)
|
|
95
|
-
|
|
96
|
-
cmd += '-hwaccel qsv '
|
|
97
|
-
cmd += '-hwaccel_output_format qsv '
|
|
98
|
-
cmd += "-i #{file_name}.vob "
|
|
99
|
-
cmd += '-filter:v "crop=704:474:0:0" '
|
|
100
|
-
cmd += '-c:v h264_qsv '
|
|
101
|
-
cmd += "-global_quality #{@vrdisc.global_quality} "
|
|
102
|
-
cmd += '-look_ahead 1 '
|
|
103
|
-
cmd += '-aspect 16:9 '
|
|
104
|
-
cmd += '-acodec copy '
|
|
105
|
-
cmd += '-bsf:v "filter_units=remove_types=6" '
|
|
106
|
-
cmd + "#{file_name}.mp4"
|
|
87
|
+
Shellwords.shellsplit(%(ffmpeg -hwaccel qsv -hwaccel_output_format qsv -i "#{file_name}.vob" -filter:v "crop=704:474:0:0" -c:v h264_qsv -global_quality "#{@vrdisc.global_quality}" -look_ahead 1 -aspect 16:9 -acodec copy -bsf:v "filter_units=remove_types=6" "#{file_name}.mp4"))
|
|
107
88
|
end
|
|
108
89
|
|
|
109
90
|
# File convert command, vob to mp4 for FFmpeg.
|
|
@@ -205,8 +186,8 @@ module Dvdvrconv
|
|
|
205
186
|
def vro2vob
|
|
206
187
|
cmd = str_dvdvr_cmd
|
|
207
188
|
puts '----- convert file VRO to VOB -----'
|
|
208
|
-
puts "> cmd:\n #{cmd}"
|
|
209
|
-
system(cmd)
|
|
189
|
+
puts "> cmd:\n #{cmd.join(' ')}"
|
|
190
|
+
system(*cmd)
|
|
210
191
|
puts ''
|
|
211
192
|
end
|
|
212
193
|
|
|
@@ -329,7 +310,10 @@ module Dvdvrconv
|
|
|
329
310
|
file_name = "concat_#{base_name}.txt"
|
|
330
311
|
|
|
331
312
|
names = @vrdisc.output_title.select { |x| x.match(/#{base_name}_\d\d/) }
|
|
332
|
-
names.each
|
|
313
|
+
names.each do |line|
|
|
314
|
+
escaped_line = "#{line}.vob".gsub("'") {"'\\''"}
|
|
315
|
+
contents += "file '#{escaped_line}'\n"
|
|
316
|
+
end
|
|
333
317
|
concat_list << [file_name, contents, base_name]
|
|
334
318
|
end
|
|
335
319
|
|
|
@@ -359,8 +343,8 @@ module Dvdvrconv
|
|
|
359
343
|
|
|
360
344
|
cmd = str_concat_cmd(file_name, base_name)
|
|
361
345
|
puts '----- concat vob files -----'
|
|
362
|
-
puts "run cmd:\n #{cmd}"
|
|
363
|
-
system(cmd)
|
|
346
|
+
puts "run cmd:\n #{cmd.join(' ')}"
|
|
347
|
+
system(*cmd)
|
|
364
348
|
|
|
365
349
|
begin
|
|
366
350
|
File.delete(file_name)
|
|
@@ -396,8 +380,8 @@ module Dvdvrconv
|
|
|
396
380
|
else
|
|
397
381
|
cmd = str_convert_cmd(file_name)
|
|
398
382
|
puts "----- convert #{file_name}.vob to mp4 file -----"
|
|
399
|
-
puts "run cmd:\n #{cmd}"
|
|
400
|
-
system(cmd)
|
|
383
|
+
puts "run cmd:\n #{cmd.join(' ')}"
|
|
384
|
+
system(*cmd)
|
|
401
385
|
end
|
|
402
386
|
end
|
|
403
387
|
end
|
data/lib/dvdvrconv/version.rb
CHANGED
data/lib/dvdvrconv.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dvdvrconv
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.3.
|
|
4
|
+
version: 1.3.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- icm7216
|
|
@@ -84,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
84
84
|
- !ruby/object:Gem::Version
|
|
85
85
|
version: '0'
|
|
86
86
|
requirements: []
|
|
87
|
-
rubygems_version:
|
|
87
|
+
rubygems_version: 4.0.15
|
|
88
88
|
specification_version: 4
|
|
89
89
|
summary: DVD-VR utility
|
|
90
90
|
test_files: []
|