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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c05c88e2cd69df800f143dc2a9754a4f9b04ee5c64756fff8ed09faad6e2fc4f
4
- data.tar.gz: d189810613ef0a7ff5b7e243fd0a10d258bce0486a82f81d83a68f2661ea777d
3
+ metadata.gz: c5f0218e853e4af5210eb7b85aeba67f2cd8dc5a42485488034f44bb76677bb7
4
+ data.tar.gz: ba57fbddc4615b81228f2d4f22ffb86f849c343ef6d18d8c7184a66e7baf566c
5
5
  SHA512:
6
- metadata.gz: b2e0fb30eb6087997fc6faaf09c4ef6e5b7917cddbe4a9ea926adcf8d6c58b68029243bca095a3929cb56eb95cb98585b35eb9222693e3368e5e333e0c37e7fe
7
- data.tar.gz: c0a664e7eb8a6689f6030a10a46de495c8da114c50beabbab085d3fa7d08d980048a11fe3d81410151e3fff91eff460a27d097b4cb64d0ad4bfb2a7c612addfb
6
+ metadata.gz: 126e3d8909f423585538bdc2daee2e01b5d664cb15d3ee756fbf312580ba725b8808a71ec00d30f8814bccb132930d20d0652b5503676ede2e443d3160d4415b
7
+ data.tar.gz: 6c4295f3f3aa90db8e67b36448dbaa99caf84bcf21c1c1719484aa56d0276cf402235be237bcaa8e87f2441f021c6e6db8b6589323c4ef351d4f0a013446eac7
@@ -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=#{Dvdvrconv::BASE_NAME} #{@vrdisc.opts_ifo} #{@vrdisc.opts_vro})
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
- cmd = 'ffmpeg '
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
- cmd = 'ffmpeg '
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 { |line| contents += "file '#{line}.vob'\n" }
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dvdvrconv
4
- VERSION = '1.3.1'
4
+ VERSION = '1.3.2'
5
5
  end
data/lib/dvdvrconv.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  require 'open3'
4
4
  require 'optparse'
5
5
  require 'yaml'
6
+ require 'shellwords'
6
7
 
7
8
  require_relative 'dvdvrconv/command'
8
9
  require_relative 'dvdvrconv/options'
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.1
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: 3.6.8
87
+ rubygems_version: 4.0.15
88
88
  specification_version: 4
89
89
  summary: DVD-VR utility
90
90
  test_files: []