dvdvrconv 1.0.2 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ebd0b6b68888121b16c1922584806cf3243004a6ad4266fe566fa214b24ec879
4
- data.tar.gz: ca80cd76a741a472b620e6bf4b719eda1c19c71c0fd4520bbd272c0ea2fc6bd0
3
+ metadata.gz: 60c712bd8767cdb73ae5d0049e5f5a82dde6ca4e8e82ec53747f2a772db5ffed
4
+ data.tar.gz: 72d7400f331b064ddb1530427c8c7257736223c6c38b3872ea0c46f708b36363
5
5
  SHA512:
6
- metadata.gz: 2e25f62d9189c973cab886e9d1ee04bae73211d7c19ec229de24ea05d2a5ecfee8a80d78159bd627205f6547b465ee05f77ce5ad67a3db51a955d45e15969528
7
- data.tar.gz: 4794ddbec14b997291883c1b159c7809707fa77d9db42e8a2cb94e8d34fe8b22ccae37d4c953a489116c4194aca37cfe9d25e67f6e98ed4c73ea7add2d021e78
6
+ metadata.gz: 22c9af9efb48ef68efd27cf859fc7243a6ec8e7817df89f18d6dc3e05d1bbcc7ad5cdba103e55027af491dbbb9bc2e1f6208eff798bd64b159ed76864478e98a
7
+ data.tar.gz: 6e4735ab98426feea6d4fcd3b3862742e4688322e56af7b2dc2dbd49ac0383fdd413ea522dcd04da50f2dcf23279043020f48bdd03c97c512daccd364d05bb01
data/README.md CHANGED
@@ -1,55 +1,305 @@
1
- # Dvdvrconv [![Gem Version](https://badge.fury.io/rb/dvdvrconv.svg)](https://badge.fury.io/rb/dvdvrconv)
2
-
3
-
4
- Dvdvrconv extracts the `vob` file from the `vro` file on the dvd-vr format disc.
5
- Dvdvrconv is also a wrapper for [pixelb/dvd-vr](https://github.com/pixelb/dvd-vr/).
6
-
7
- For Windows users, I attached `dvd-vr.exe` for cygwin environment.
8
-
9
- ## dependent libraries
10
-
11
- * [pixelb/dvd-vr](https://github.com/pixelb/dvd-vr/)
12
- * FFmpeg
13
-
14
- ## Installation
15
-
16
- Add this line to your application's Gemfile:
17
-
18
- ```ruby
19
- gem 'dvdvrconv'
20
- ```
21
-
22
- And then execute:
23
- ```ruby
24
- $ bundle install
25
- ```
26
- Or install it yourself as:
27
- ```ruby
28
- $ gem install dvdvrconv
29
- ```
30
-
31
-
32
- ## Usage
33
-
34
- ```
35
- >dvdvrconv -h
36
- Usage: dvdvrconv [options]
37
- -v, --version Show version
38
- -i, --info Show file information
39
- --config=FILE Use YAML format FILE.
40
- ```
41
-
42
-
43
- ## Development
44
-
45
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
46
-
47
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
48
-
49
-
50
-
51
- ## License
52
-
53
- The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
54
-
1
+ # dvdvrconv [![Gem Version](https://badge.fury.io/rb/dvdvrconv.svg)](https://badge.fury.io/rb/dvdvrconv)
2
+
3
+
4
+ dvdvrconv extracts the `vob` files from the `vro` files on the DVD-VR format disc and converts them to `mp4` files.
5
+ dvdvrconv is also a wrapper for [pixelb/dvd-vr](https://github.com/pixelb/dvd-vr/).
6
+
7
+ For Windows users, I attached `dvd-vr.exe` for cygwin environment.
8
+
9
+ # dependent libraries
10
+
11
+ * [dvd-vr](https://github.com/pixelb/dvd-vr/)
12
+ * [FFmpeg](https://www.ffmpeg.org/)
13
+
14
+ # Installation
15
+
16
+ Add this line to your application's Gemfile:
17
+
18
+ ```ruby
19
+ gem 'dvdvrconv'
20
+ ```
21
+
22
+ And then execute:
23
+ ```ruby
24
+ $ bundle install
25
+ ```
26
+ Or install it yourself as:
27
+ ```ruby
28
+ $ gem install dvdvrconv
29
+ ```
30
+
31
+
32
+ # Usage
33
+
34
+ View video information from dvd-ram disc in dvd-vr format.
35
+
36
+ `dvdvrconv -i` or `dvdvrconv`
37
+ ```
38
+ >dvdvrconv
39
+ == Use these paths ==
40
+ => VR_MANGR.IFO: ./DVD_RTAV/VR_MANGR.IFO
41
+ => VR_MOVIE.VRO ./DVD_RTAV/VR_MOVIE.VRO
42
+ => dvd-vr.exe: ./win/dvd-vr.exe
43
+ ----- view dvd-vr info -----
44
+ format: DVD-VR V1.1
45
+ Encryption: CPRM supported
46
+
47
+ tv_system : NTSC
48
+ resolution : 704x480
49
+ aspect_ratio: 4:3
50
+ video_format: MPEG2
51
+ audio_channs: 2
52
+ audio_coding: Dolby AC-3
53
+
54
+ num : 1
55
+ title: TEST1
56
+ date : 2019-10-30 22:32:07
57
+ size : 3534848
58
+ -
59
+ num : 2
60
+ title: TEST2
61
+ date : 2019-10-30 22:33:05
62
+ size : 2965504
63
+ -
64
+ num : 3
65
+ title: TEST3
66
+ date : 2019-10-30 22:33:37
67
+ size : 2394112
68
+ -
69
+ ```
70
+
71
+ Execute the VRO file to mp4 conversion.
72
+
73
+ `dvdvrconv -e` or `dvdvrconv --exec`
74
+
75
+ Command options
76
+ ```
77
+ >dvdvrconv -h
78
+ Usage: dvdvrconv [options]
79
+ -v, --version Show version
80
+ -i, --info Show file information
81
+ -c, --config=FILE Use YAML format FILE.
82
+ -e, --exec Execute the VRO file to mp4 conversion.
83
+ ```
84
+
85
+ # Configure dvdvrconv
86
+
87
+ dvdvrconv reads `default_dvdvrconv.yml` in the current working directory as dvdvrconv's configuration file. It can contain the following settings:
88
+
89
+ * vr_mangr_ifo
90
+ * vr_movie_vro
91
+ * dvd_vr_cmd
92
+ * use_customize_title
93
+ * base_dst_name
94
+ * number_list
95
+
96
+ ## vr_mangr_ifo, vr_movie_vro
97
+
98
+ `vr_mangr_ifo` and `vr_movie_vro` specify the path to the dvd-ram disc.
99
+ Drive D is assumed, if different you need to write its path.
100
+
101
+ windows default
102
+ ```
103
+ vr_mangr_ifo: "/cygdrive/D/DVD_RTAV/VR_MANGR.IFO"
104
+ vr_movie_vro: "/cygdrive/D/DVD_RTAV/VR_MOVIE.VRO"
105
+ ```
106
+
107
+ WSL(ubuntu) default
108
+ ```
109
+ vr_mangr_ifo: "/mnt/d/DVD_RTAV/VR_MANGR.IFO"
110
+ vr_movie_vro: "/mnt/d/DVD_RTAV/VR_MOVIE.VRO"
111
+ ```
112
+
113
+ ## dvd_vr_cmd
114
+
115
+ On Windows, you can use the included dvd-vr command.
116
+
117
+ On WSL(ubuntu), you can use the dvd-vr command that you have compiled yourself.
118
+ * See the section below, "install dependent libraries for WSL(ubuntu)"
119
+
120
+ ## use_customize_title, base_dst_name, number_list
121
+
122
+ customize the title name of vob files.
123
+
124
+ If specify individual file names. Write "base_dst_name:" as an Array.
125
+ ```
126
+ use_customize_title: 1
127
+ base_dst_name: ["name_one", "name_two"]
128
+ number_list: []
129
+ ```
130
+ The resulting file name is => ["name_one", "name_two"]
131
+
132
+
133
+ If add a sequence number to the file name. Write "base_dst_name:" as String.
134
+ ```
135
+ use_customize_title: 2
136
+ base_dst_name: "output_name_"
137
+ number_list: []
138
+ ```
139
+ The resulting file name is => ["output_name_01", "output_name_02", ...]
140
+
141
+ If specify sequence numbers individually.
142
+ Write "base_dst_name:" as String and Write "number_list" as an Array.
143
+ ```
144
+ use_customize_title: 3
145
+ base_dst_name: "output_name_"
146
+ number_list: [12, 13, 14, 15]
147
+ ```
148
+ The resulting file name is => ["output_name_12", "output_name_13", "output_name_14", "output_name_15"]
149
+
150
+
151
+ If do not want to customize the title name,
152
+ Specify `use_customize_title: no`.
153
+ ```
154
+ use_customize_title: no
155
+ base_dst_name: []
156
+ number_list: []
157
+ ```
158
+
159
+ ## concat mode
160
+
161
+ Allow users to choose to concatenate or not concatenate titles with the same name.
162
+
163
+ When editing a title on a dvd-vr recorder (e.g., partial cut editing.), the title is split into multiple files.
164
+
165
+ Enabling "concat_mode" allows you to concatenate multiple split files into one.
166
+
167
+ If this option is not specified, the default setting is to concatenate titles of the same name.
168
+ ```
169
+ concat_mode: true
170
+ ```
171
+
172
+ On the other hand, you may not want to concatenate multiple titles with the same name on a dvd-vr disc.
173
+ In this case, "concat_mode" can be disabled.
174
+ ```
175
+ concat_mode: false
176
+ ```
177
+
178
+
179
+
180
+
181
+ # Install dependent libraries for WSL(ubuntu)
182
+
183
+ ## dvd-vr
184
+
185
+ * [pixelb/dvd-vr](https://github.com/pixelb/dvd-vr/)
186
+
187
+ ```
188
+ $ git clone https://github.com/pixelb/dvd-vr.git
189
+ Cloning into 'dvd-vr'...
190
+ remote: Enumerating objects: 140, done.
191
+ remote: Total 140 (delta 0), reused 0 (delta 0), pack-reused 140
192
+ Receiving objects: 100% (140/140), 260.97 KiB | 40.00 KiB/s, done.
193
+ Resolving deltas: 100% (37/37), done.
194
+
195
+ $ cd dvd-vr/
196
+
197
+ $ sudo make install
198
+ cc -std=gnu99 -Wall -Wextra -Wpadded -DVERSION='"0.9.8b"' -O3 -DNDEBUG -DHAVE_ICONV -DICONV_CONST="" -c -o dvd-vr.o dvd-vr.c
199
+ cc dvd-vr.o -Wl,-S -o dvd-vr
200
+ cp -p dvd-vr /usr/local/bin
201
+ gzip -c man/dvd-vr.1 > /usr/local/share/man/man1/dvd-vr.1.gz
202
+
203
+ $ dvd-vr --help
204
+ Usage: dvd-vr [OPTION]... VR_MANGR.IFO [VR_MOVIE.VRO]
205
+ Print info about and optionally extract vob data from DVD-VR files.
206
+
207
+ If the VRO file is specified, the component programs are
208
+ extracted to the current directory or to stdout.
209
+
210
+ -p, --program=NUM Only process program NUM rather than all programs.
211
+
212
+ -n, --name=NAME Specify a basename to use for extracted vob files
213
+ rather than using one based on the timestamp.
214
+ If you pass `-' the vob files will be written to stdout.
215
+ If you pass `[label]' the names will be based on
216
+ a sanitized version of the title or label.
217
+
218
+ --help Display this help and exit.
219
+ --version Output version information and exit.
220
+ ```
221
+
222
+
223
+ ## FFmpeg
224
+
225
+ ```
226
+ sudo apt install ffmpeg
227
+ ```
228
+
229
+ # Install dependent libraries for Windows
230
+
231
+ ## dvd-vr
232
+
233
+ Compile dvd-vr command in Cygwin environment.
234
+
235
+ Download Cygwin for 64-bit version. => [setup-x86_64.exe](https://cygwin.com/setup-x86_64.exe)
236
+
237
+
238
+ Install Cygwin for 64-bit version. At the Windows command prompt.
239
+ ```
240
+ setup-x86_64.exe ^
241
+ --root c:\cygwin64 ^
242
+ --local-package-dir c:\cygwin64\packages ^
243
+ --site https://ftp.iij.ad.jp/pub/cygwin/ ^
244
+ --quiet-mode ^
245
+ --packages libiconv,libiconv-devel,gcc-core,gcc-g++,git,make
246
+ ```
247
+
248
+ Compile dvd-vr. At the Cygwin terminal.
249
+ ```
250
+ $ git clone https://github.com/pixelb/dvd-vr.git
251
+ Cloning into 'dvd-vr'...
252
+ remote: Enumerating objects: 140, done.
253
+ remote: Total 140 (delta 0), reused 0 (delta 0), pack-reused 140
254
+ Receiving objects: 100% (140/140), 260.97 KiB | 954.00 KiB/s, done.
255
+ Resolving deltas: 100% (37/37), done.
256
+
257
+ $ cd dvd-vr/
258
+
259
+ $ make install
260
+ cc -std=gnu99 -Wall -Wextra -Wpadded -DVERSION='"0.9.8b"' -O3 -DNDEBUG -DHAVE_ICONV -DICONV_CONST="const" -c -o dvd-vr.o dvd-vr.c
261
+ dvd-vr.c: In function ‘text_convert’:
262
+ dvd-vr.c:414:24: warning: passing argument 2 of ‘libiconv’ from incompatible pointer type [-Wincompatible-pointer-types]
263
+ 414 | if (iconv (cd, (ICONV_CONST char**)&src, &srclen, &dst, &dstlen) != (size_t)-1) {
264
+ | ^~~~~~~~~~~~~~~~~~~~~~~~
265
+ | |
266
+ | const char **
267
+ In file included from dvd-vr.c:124:
268
+ /usr/include/iconv.h:82:43: note: expected ‘char **’ but argument is of type ‘const char **’
269
+ 82 | extern size_t iconv (iconv_t cd, char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);
270
+ | ~~~~~~~~^~~~~
271
+ cc dvd-vr.o -liconv -Wl,-S -o dvd-vr.exe
272
+ cp man/dvd-vr.man man/dvd-vr.1
273
+ cp -p dvd-vr.exe /usr/local/bin
274
+ gzip -c man/dvd-vr.1 > /usr/local/share/man/man1/dvd-vr.1.gz
275
+ ```
276
+
277
+ After compile success, you will get the following files.
278
+ * dvd-vr.exe (c:\cygwin64\home\user_name\dvd-vr)
279
+ * cygwin1.dll (c:\cygwin64\bin)
280
+ * cygiconv-2.dll (c:\cygwin64\bin)
281
+
282
+
283
+ ## FFmpeg
284
+
285
+ * [FFmpeg](https://www.ffmpeg.org/download.html)
286
+ From the Windows EXE Files link above, select the following website.
287
+ * [Releases · BtbN/FFmpeg-Builds](https://github.com/BtbN/FFmpeg-Builds/releases) (daily auto-build).
288
+
289
+ As an example, download Auto-Build 2021-09-28 12:22.
290
+ * [ffmpeg-N-103899-g855014ff83-win64-gpl.zip 100MB](https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2021-09-28-12-22/ffmpeg-N-103899-g855014ff83-win64-gpl.zip)
291
+
292
+
293
+ # Development
294
+
295
+ After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
296
+
297
+ To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
298
+
299
+
300
+
301
+ # License
302
+
303
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
304
+
55
305
  pixelb/dvd-vr is licensed under the GNU General Public License v2.0
data/dvdvrconv.gemspec CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
7
7
  spec.email = ["icm7216d@gmail.com"]
8
8
 
9
9
  spec.summary = %q{DVD-VR utility}
10
- spec.description = %q{This tool converts "vor" file on DVD-VR format disc to "vob" files.}
10
+ spec.description = %q{This tool converts "vro" file on DVD-VR format disc to "mp4" files.}
11
11
  spec.homepage = "https://github.com/icm7216/dvdvrconv"
12
12
  spec.license = "MIT"
13
13
  spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
@@ -10,6 +10,7 @@ module Dvdvrconv
10
10
 
11
11
  config_file = Dvdvrconv::DEFAULT_CONFIG_FILE
12
12
  if File.exist?(config_file)
13
+ puts "Read the default config file. => #{config_file}"
13
14
  load_config(config_file)
14
15
  end
15
16
  end
@@ -20,12 +21,23 @@ module Dvdvrconv
20
21
  dvd = Dvdvrconv::Dvdvr.new
21
22
 
22
23
  # Set the path specified in the yaml file.
23
- dvd.vrdisc.opts_ifo = @options[:vr_mangr_ifo] if @options[:vr_mangr_ifo]
24
- dvd.vrdisc.opts_vro = @options[:vr_movie_vro] if @options[:vr_movie_vro]
25
- dvd.vrdisc.cmd = @options[:dvd_vr_cmd] if @options[:dvd_vr_cmd]
24
+ if @options[:vr_mangr_ifo]
25
+ dvd.vrdisc.opts_ifo = @options[:vr_mangr_ifo]
26
+ else
27
+ dvd.vrdisc.opts_ifo = dvd.vrdisc.default_opts_ifo
28
+ end
29
+
30
+ if @options[:vr_movie_vro]
31
+ dvd.vrdisc.opts_vro = @options[:vr_movie_vro]
32
+ else
33
+ dvd.vrdisc.opts_vro = dvd.vrdisc.default_opts_vro
34
+ end
26
35
 
27
- # dvd.vrdisc.opts_ifo = "test/DVD_RTAV/VR_MANGR.IFO"
28
- # dvd.vrdisc.opts_vro = "test/DVD_RTAV/VR_MOVIE.VRO"
36
+ if @options[:dvd_vr_cmd]
37
+ dvd.vrdisc.cmd = @options[:dvd_vr_cmd]
38
+ else
39
+ dvd.vrdisc.cmd = dvd.vrdisc.default_cmd
40
+ end
29
41
 
30
42
  if options[:opt][:config_file]
31
43
  puts "Use config file\n => #{options[:opt][:config_file]}"
@@ -36,19 +48,28 @@ module Dvdvrconv
36
48
  dvd.vrdisc.cmd = @options[:dvd_vr_cmd] if @options[:dvd_vr_cmd]
37
49
  end
38
50
 
51
+ if @options[:concat_mode].nil?
52
+ dvd.vrdisc.concat_mode = Dvdvrconv::DEFAULT_CONCAT_MODE
53
+ else
54
+ dvd.vrdisc.concat_mode = @options[:concat_mode]
55
+ end
56
+
39
57
  # View the path of each files
40
58
  puts "== Use these paths =="
41
59
  puts " => VR_MANGR.IFO: #{dvd.vrdisc.opts_ifo}"
42
60
  puts " => VR_MOVIE.VRO #{dvd.vrdisc.opts_vro}"
43
61
  puts " => dvd-vr.exe: #{dvd.vrdisc.cmd}"
62
+ puts "== Customize settings =="
63
+ puts " => use_customize_title: #{@options[:use_customize_title]}"
64
+ puts " => base_dst_name: #{@options[:base_dst_name]}"
65
+ puts " => number_list: #{@options[:number_list]}"
66
+ puts " => concat_mode: #{@options[:concat_mode]}"
44
67
 
45
68
  dvd.read_info
46
69
 
47
- if options[:opt][:info]
48
- dvd.view_info
49
- exit
50
- end
51
-
70
+ dvd.view_info if options[:opt][:info] || options[:opt].empty?
71
+ exit unless options[:opt][:exec]
72
+
52
73
  # Extract vob files
53
74
  dvd.adjust_title
54
75
  dvd.vro2vob
@@ -58,8 +79,11 @@ module Dvdvrconv
58
79
  dvd.rename_vob
59
80
 
60
81
  # Concatenate Split titles
61
- concat_list = dvd.make_concat_list
62
- dvd.concat_titles(concat_list)
82
+ if dvd.vrdisc.concat_mode == true
83
+ puts "== Concatenate Split titles =="
84
+ concat_list = dvd.make_concat_list
85
+ dvd.concat_titles(concat_list)
86
+ end
63
87
 
64
88
  # customize title of vob files
65
89
  case @options[:use_customize_title]
@@ -101,6 +125,7 @@ module Dvdvrconv
101
125
  puts "ERROR: number_list should be an Array."
102
126
  exit
103
127
  end
128
+
104
129
  else
105
130
  puts "No customize file names"
106
131
  base_dst_name = dvd.vrdisc.title.uniq.map { |file| file[0].gsub(/\s/, "_") }
@@ -116,24 +141,40 @@ module Dvdvrconv
116
141
 
117
142
  # load yaml file and store in @options.
118
143
  def load_config(file)
119
- config = YAML.load(File.read(file))
144
+ config = YAML.load(File.read(file)) || {}
120
145
 
121
146
  %w(vr_mangr_ifo vr_movie_vro dvd_vr_cmd).each do |key|
147
+ @options[key.to_sym] = nil
148
+
122
149
  unless config.key?(key)
123
150
  puts "[ #{key} ] does not exist in #{file} file."
124
- exit
125
- end
126
-
127
- if File.exist?(config[key])
128
- @options[key.to_sym] = config[key]
129
151
  else
130
- puts "File read error. No such file: #{config[key]}"
152
+ if File.exist?(config[key])
153
+ @options[key.to_sym] = config[key]
154
+ else
155
+ puts "File read error. No such file: #{config[key]}"
156
+ end
131
157
  end
158
+
132
159
  end
133
160
 
134
161
  @options[:use_customize_title] = config["use_customize_title"] || "no"
135
162
  @options[:base_dst_name] = config["base_dst_name"] || []
136
163
  @options[:number_list] = config["number_list"] || []
164
+
165
+ if config["concat_mode"].nil?
166
+ @options[:concat_mode] = Dvdvrconv::DEFAULT_CONCAT_MODE
167
+ else
168
+ @options[:concat_mode] = config["concat_mode"]
169
+ end
170
+ end
171
+
172
+ def dvdpath
173
+ {
174
+ :vr_mangr_ifo => @options[:vr_mangr_ifo],
175
+ :vr_movie_vro => @options[:vr_movie_vro],
176
+ :dvd_vr_cmd => @options[:dvd_vr_cmd]
177
+ }
137
178
  end
138
179
  end
139
180
  end
@@ -13,16 +13,21 @@ module Dvdvrconv
13
13
  :output_title, # @param [Array<String>]
14
14
  :duplicate_name, # @param [Array<String>]
15
15
  :vob_titles, # @param [Array<String>]
16
+ :default_opts_ifo,# @param [String]
17
+ :default_opts_vro,# @param [String]
18
+ :default_cmd, # @param [String]
19
+ :concat_mode, # @param [Boolean]
16
20
  )
17
21
 
18
22
  BASE_NAME = "DVD"
19
- DEFAULT_CONFIG_FILE = "default_dvdvrconv.yaml"
23
+ DEFAULT_CONFIG_FILE = "default_dvdvrconv.yml"
24
+ DEFAULT_CONCAT_MODE = true
20
25
 
21
26
  # Default DVD drive is "d".
22
- # If you want to use a different drive, you need to set up a "default_dvdvrconv.yaml" file.
27
+ # If you want to use a different drive, you need to set up a "default_dvdvrconv.yml" file.
23
28
  WIN_DRV_IFO = "/cygdrive/D/DVD_RTAV/VR_MANGR.IFO"
24
29
  WIN_DRV_VRO = "/cygdrive/D/DVD_RTAV/VR_MOVIE.VRO"
25
- WIN_DRV_CMD = "win/dvd-vr.exe"
30
+ WIN_DRV_CMD = File.expand_path("../../win/dvd-vr.exe", __dir__)
26
31
  DRV_IFO = "/mnt/d/DVD_RTAV/VR_MANGR.IFO"
27
32
  DRV_VRO = "/mnt/d/DVD_RTAV/VR_MOVIE.VRO"
28
33
  DRV_CMD = "dvd-vr"
@@ -42,6 +47,11 @@ module Dvdvrconv
42
47
  @vrdisc.opts_vro = Dvdvrconv::DRV_VRO
43
48
  @vrdisc.cmd = Dvdvrconv::DRV_CMD
44
49
  end
50
+
51
+ @vrdisc.default_opts_ifo = @vrdisc.opts_ifo
52
+ @vrdisc.default_opts_vro = @vrdisc.opts_vro
53
+ @vrdisc.default_cmd = @vrdisc.cmd
54
+ @vrdisc.concat_mode = Dvdvrconv::DEFAULT_CONCAT_MODE
45
55
  end
46
56
 
47
57
  # Read VRO file from dvd-ram disc in dvd-vr format, and output vob files.
@@ -75,6 +85,7 @@ module Dvdvrconv
75
85
  #
76
86
  def read_info
77
87
  out, err, status = Open3.capture3(@vrdisc.cmd, @vrdisc.opts_ifo)
88
+ puts "File read error => #{err}" unless status.success?
78
89
  @vrdisc.header = out.scan(/^(.*?)Number/m)
79
90
 
80
91
  # Sets the captured information to @vrdisc.
@@ -204,18 +215,28 @@ module Dvdvrconv
204
215
  def customize_title(base_dst_name, number_list = [])
205
216
  vob_titles = []
206
217
 
207
- base_dst_name.size.times do |x|
208
- break if x > @vrdisc.title.uniq.size - 1
209
- src = @vrdisc.title.uniq[x][0].gsub(/\s/, "_") + ".vob"
218
+ if @vrdisc.concat_mode == true
219
+ titels = @vrdisc.title.uniq.flatten
220
+ else
221
+ titels = @vrdisc.output_title
222
+ end
223
+
224
+ titels.each_with_index do |title, idx|
225
+ src = title.gsub(/\s/, "_") + ".vob"
210
226
 
211
227
  case base_dst_name
212
228
  when Array
213
- dst_name = base_dst_name[x]
229
+ dst_name = base_dst_name[idx]
214
230
  when String
215
231
  if number_list.size.zero?
216
- dst_name = base_dst_name + format("_%02d", x + 1)
232
+ dst_name = base_dst_name + format("_%02d", idx + 1)
217
233
  else
218
- dst_name = base_dst_name + format("_%02d", number_list[x])
234
+ case number_list[idx]
235
+ when Numeric
236
+ dst_name = base_dst_name + format("_%02d", number_list[idx])
237
+ when String
238
+ dst_name = base_dst_name + format("_%s", number_list[idx])
239
+ end
219
240
  end
220
241
  end
221
242
 
@@ -303,6 +324,14 @@ module Dvdvrconv
303
324
  end
304
325
  end
305
326
 
327
+ def vrdisc_status
328
+ puts "\n< < < < < @vrdisc status > > > > >"
329
+ %w(num title output_title duplicate_name vob_titles concat_mode).each do |item|
330
+ puts "#{item}=> #{@vrdisc[item]}"
331
+ end
332
+ puts "< < < < < @vrdisc status > > > > >\n"
333
+ end
334
+
306
335
  # convert vob to mp4.
307
336
  #
308
337
  # required Values:
@@ -15,9 +15,13 @@ module Dvdvrconv
15
15
  options[:info] = v
16
16
  end
17
17
 
18
- o.on("--config=FILE", String, "Use YAML format FILE.") do |file|
18
+ o.on("-c", "--config=FILE", String, "Use YAML format FILE.") do |file|
19
19
  options[:config_file] = file
20
20
  end
21
+
22
+ o.on("-e", "--exec", "Execute the VRO file to mp4 conversion.") do |v|
23
+ options[:exec] = v
24
+ end
21
25
  end
22
26
 
23
27
  begin
@@ -26,11 +30,13 @@ module Dvdvrconv
26
30
  abort e.message
27
31
  rescue OptionParser::MissingArgument => e
28
32
  case e.args
29
- when ["--config"]
33
+ when ["-c"], ["--config"]
30
34
  # load_config(Dvdvrconv::DEFAULT_CONFIG_FILE)
31
35
  puts "The config file has not been specified.\nUse the default configuration file. (=> #{Dvdvrconv::DEFAULT_CONFIG_FILE})"
32
36
  options[:config_file] = Dvdvrconv::DEFAULT_CONFIG_FILE
33
37
  end
38
+ rescue OptionParser::ParseError => e
39
+ abort e.message
34
40
  end
35
41
 
36
42
  { opt: options }
@@ -1,3 +1,3 @@
1
1
  module Dvdvrconv
2
- VERSION = "1.0.2"
2
+ VERSION = "1.2.0"
3
3
  end
File without changes
data/test-unit.yml CHANGED
@@ -1,11 +1,11 @@
1
- runner: console
2
- console_options:
3
- color_scheme: normal
4
- color_schemes:
5
- normal:
6
- success:
7
- name: green
8
- bold: true
9
- failure:
10
- name: red
11
- bold: true
1
+ runner: console
2
+ console_options:
3
+ color_scheme: normal
4
+ color_schemes:
5
+ normal:
6
+ success:
7
+ name: green
8
+ bold: true
9
+ failure:
10
+ name: red
11
+ bold: true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dvdvrconv
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - icm7216
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-12 00:00:00.000000000 Z
11
+ date: 2022-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-unit
@@ -38,7 +38,7 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- description: This tool converts "vor" file on DVD-VR format disc to "vob" files.
41
+ description: This tool converts "vro" file on DVD-VR format disc to "mp4" files.
42
42
  email:
43
43
  - icm7216d@gmail.com
44
44
  executables:
@@ -61,8 +61,8 @@ files:
61
61
  - lib/dvdvrconv/dvdvr.rb
62
62
  - lib/dvdvrconv/options.rb
63
63
  - lib/dvdvrconv/version.rb
64
- - sample_default_dvdvrconv.yaml
65
- - sample_my.yaml
64
+ - sample_default_dvdvrconv.yml
65
+ - sample_my.yml
66
66
  - test-unit.yml
67
67
  - win/cygiconv-2.dll
68
68
  - win/cygwin1.dll
@@ -86,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
86
86
  - !ruby/object:Gem::Version
87
87
  version: '0'
88
88
  requirements: []
89
- rubygems_version: 3.1.4
89
+ rubygems_version: 3.2.17
90
90
  signing_key:
91
91
  specification_version: 4
92
92
  summary: DVD-VR utility