dvdvrconv 1.0.0 → 1.1.1
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/README.md +284 -49
- data/dvdvrconv.gemspec +1 -1
- data/lib/dvdvrconv/command.rb +45 -16
- data/lib/dvdvrconv/dvdvr.rb +16 -8
- data/lib/dvdvrconv/options.rb +8 -2
- data/lib/dvdvrconv/version.rb +1 -1
- data/{sample_default_dvdvrconv.yaml → sample_default_dvdvrconv.yml} +0 -0
- data/{sample_my.yaml → sample_my.yml} +0 -0
- metadata +9 -9
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0bf1dfd9c27d75f1664127479eaf4480b30a2a9647c0552af036b05a95fe557d
|
|
4
|
+
data.tar.gz: 5ef2ab78adcdf97048764088ec49905d3cfac14ff7dadf1ece60c66bf54860a4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1a1de9101fb6bb101ed1190b854bde53442541a2b4eae24d4de663bc73fcf7ef3debc2c1df547d569968fcf1ba9093b1a4e23acbb5cccc52913dfe716220f953
|
|
7
|
+
data.tar.gz: e065e1429ce5b36b30c0247ee1d56409b804f36f52255b593303389bf896da5c5093c826e3ad70ed3aedb47c95ff6587c74e00bf4e27ec3819fbc0369be0987f
|
data/README.md
CHANGED
|
@@ -1,50 +1,285 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
For Windows users, I attached `dvd-vr.exe` for cygwin environment.
|
|
8
|
-
|
|
9
|
-
## dependent libraries
|
|
10
|
-
|
|
11
|
-
* [
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
1
|
+
# dvdvrconv [](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
|
+
[ dvd_vr_cmd ] does not exist in default_dvdvrconv.yml file.
|
|
79
|
+
Usage: dvdvrconv [options]
|
|
80
|
+
-v, --version Show version
|
|
81
|
+
-i, --info Show file information
|
|
82
|
+
-c, --config=FILE Use YAML format FILE.
|
|
83
|
+
-e, --exec Execute the VRO file to mp4 conversion.
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Configure dvdvrconv
|
|
87
|
+
|
|
88
|
+
dvdvrconv reads `default_dvdvrconv.yml` in the current working directory as dvdvrconv's configuration file. It can contain the following settings:
|
|
89
|
+
|
|
90
|
+
* vr_mangr_ifo
|
|
91
|
+
* vr_movie_vro
|
|
92
|
+
* dvd_vr_cmd
|
|
93
|
+
* use_customize_title
|
|
94
|
+
* base_dst_name
|
|
95
|
+
* number_list
|
|
96
|
+
|
|
97
|
+
#### vr_mangr_ifo, vr_movie_vro
|
|
98
|
+
|
|
99
|
+
`vr_mangr_ifo` and `vr_movie_vro` specify the path to the dvd-ram disc.
|
|
100
|
+
Drive D is assumed, if different you need to write its path.
|
|
101
|
+
|
|
102
|
+
windows default
|
|
103
|
+
```
|
|
104
|
+
vr_mangr_ifo: "/cygdrive/D/DVD_RTAV/VR_MANGR.IFO"
|
|
105
|
+
vr_movie_vro: "/cygdrive/D/DVD_RTAV/VR_MOVIE.VRO"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
WSL(ubuntu) default
|
|
109
|
+
```
|
|
110
|
+
vr_mangr_ifo: "/mnt/d/DVD_RTAV/VR_MANGR.IFO"
|
|
111
|
+
vr_movie_vro: "/mnt/d/DVD_RTAV/VR_MOVIE.VRO"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
#### dvd_vr_cmd
|
|
115
|
+
|
|
116
|
+
On Windows, you can use the included dvd-vr command.
|
|
117
|
+
|
|
118
|
+
On WSL(ubuntu), you can use the dvd-vr command that you have compiled yourself.
|
|
119
|
+
* See the section below, "install dependent libraries for WSL(ubuntu)"
|
|
120
|
+
|
|
121
|
+
#### use_customize_title, base_dst_name, number_list
|
|
122
|
+
|
|
123
|
+
customize the title name of vob files.
|
|
124
|
+
|
|
125
|
+
If specify individual file names. Write "base_dst_name:" as an Array.
|
|
126
|
+
```
|
|
127
|
+
use_customize_title: 1
|
|
128
|
+
base_dst_name: ["name_one", "name_two"]
|
|
129
|
+
number_list: []
|
|
130
|
+
```
|
|
131
|
+
The resulting file name is => ["name_one", "name_two"]
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
If add a sequence number to the file name. Write "base_dst_name:" as String.
|
|
135
|
+
```
|
|
136
|
+
use_customize_title: 2
|
|
137
|
+
base_dst_name: "output_name_"
|
|
138
|
+
number_list: []
|
|
139
|
+
```
|
|
140
|
+
The resulting file name is => ["output_name_01", "output_name_02", ...]
|
|
141
|
+
|
|
142
|
+
If specify sequence numbers individually.
|
|
143
|
+
Write "base_dst_name:" as String and Write "number_list" as an Array.
|
|
144
|
+
```
|
|
145
|
+
use_customize_title: 3
|
|
146
|
+
base_dst_name: "output_name_"
|
|
147
|
+
number_list: [12, 13, 14, 15]
|
|
148
|
+
```
|
|
149
|
+
The resulting file name is => ["output_name_12", "output_name_13", "output_name_14", "output_name_15"]
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
If do not want to customize the title name,
|
|
153
|
+
Specify `use_customize_title: no`.
|
|
154
|
+
```
|
|
155
|
+
use_customize_title: no
|
|
156
|
+
base_dst_name: []
|
|
157
|
+
number_list: []
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
## Install dependent libraries for WSL(ubuntu)
|
|
162
|
+
|
|
163
|
+
### dvd-vr
|
|
164
|
+
|
|
165
|
+
* [pixelb/dvd-vr](https://github.com/pixelb/dvd-vr/)
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
$ git clone https://github.com/pixelb/dvd-vr.git
|
|
169
|
+
Cloning into 'dvd-vr'...
|
|
170
|
+
remote: Enumerating objects: 140, done.
|
|
171
|
+
remote: Total 140 (delta 0), reused 0 (delta 0), pack-reused 140
|
|
172
|
+
Receiving objects: 100% (140/140), 260.97 KiB | 40.00 KiB/s, done.
|
|
173
|
+
Resolving deltas: 100% (37/37), done.
|
|
174
|
+
|
|
175
|
+
$ cd dvd-vr/
|
|
176
|
+
|
|
177
|
+
$ sudo make install
|
|
178
|
+
cc -std=gnu99 -Wall -Wextra -Wpadded -DVERSION='"0.9.8b"' -O3 -DNDEBUG -DHAVE_ICONV -DICONV_CONST="" -c -o dvd-vr.o dvd-vr.c
|
|
179
|
+
cc dvd-vr.o -Wl,-S -o dvd-vr
|
|
180
|
+
cp -p dvd-vr /usr/local/bin
|
|
181
|
+
gzip -c man/dvd-vr.1 > /usr/local/share/man/man1/dvd-vr.1.gz
|
|
182
|
+
|
|
183
|
+
$ dvd-vr --help
|
|
184
|
+
Usage: dvd-vr [OPTION]... VR_MANGR.IFO [VR_MOVIE.VRO]
|
|
185
|
+
Print info about and optionally extract vob data from DVD-VR files.
|
|
186
|
+
|
|
187
|
+
If the VRO file is specified, the component programs are
|
|
188
|
+
extracted to the current directory or to stdout.
|
|
189
|
+
|
|
190
|
+
-p, --program=NUM Only process program NUM rather than all programs.
|
|
191
|
+
|
|
192
|
+
-n, --name=NAME Specify a basename to use for extracted vob files
|
|
193
|
+
rather than using one based on the timestamp.
|
|
194
|
+
If you pass `-' the vob files will be written to stdout.
|
|
195
|
+
If you pass `[label]' the names will be based on
|
|
196
|
+
a sanitized version of the title or label.
|
|
197
|
+
|
|
198
|
+
--help Display this help and exit.
|
|
199
|
+
--version Output version information and exit.
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
|
|
203
|
+
### FFmpeg
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
sudo apt install ffmpeg
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## Install dependent libraries for Windows
|
|
210
|
+
|
|
211
|
+
### dvd-vr
|
|
212
|
+
|
|
213
|
+
Compile dvd-vr command in Cygwin environment.
|
|
214
|
+
|
|
215
|
+
Download Cygwin for 64-bit version. => [setup-x86_64.exe](https://cygwin.com/setup-x86_64.exe)
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
Install Cygwin for 64-bit version. At the Windows command prompt.
|
|
219
|
+
```
|
|
220
|
+
setup-x86_64.exe ^
|
|
221
|
+
--root c:\cygwin64 ^
|
|
222
|
+
--local-package-dir c:\cygwin64\packages ^
|
|
223
|
+
--site https://ftp.iij.ad.jp/pub/cygwin/ ^
|
|
224
|
+
--quiet-mode ^
|
|
225
|
+
--packages libiconv,libiconv-devel,gcc-core,gcc-g++,git,make
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Compile dvd-vr. At the Cygwin terminal.
|
|
229
|
+
```
|
|
230
|
+
$ git clone https://github.com/pixelb/dvd-vr.git
|
|
231
|
+
Cloning into 'dvd-vr'...
|
|
232
|
+
remote: Enumerating objects: 140, done.
|
|
233
|
+
remote: Total 140 (delta 0), reused 0 (delta 0), pack-reused 140
|
|
234
|
+
Receiving objects: 100% (140/140), 260.97 KiB | 954.00 KiB/s, done.
|
|
235
|
+
Resolving deltas: 100% (37/37), done.
|
|
236
|
+
|
|
237
|
+
$ cd dvd-vr/
|
|
238
|
+
|
|
239
|
+
$ make install
|
|
240
|
+
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
|
|
241
|
+
dvd-vr.c: In function ‘text_convert’:
|
|
242
|
+
dvd-vr.c:414:24: warning: passing argument 2 of ‘libiconv’ from incompatible pointer type [-Wincompatible-pointer-types]
|
|
243
|
+
414 | if (iconv (cd, (ICONV_CONST char**)&src, &srclen, &dst, &dstlen) != (size_t)-1) {
|
|
244
|
+
| ^~~~~~~~~~~~~~~~~~~~~~~~
|
|
245
|
+
| |
|
|
246
|
+
| const char **
|
|
247
|
+
In file included from dvd-vr.c:124:
|
|
248
|
+
/usr/include/iconv.h:82:43: note: expected ‘char **’ but argument is of type ‘const char **’
|
|
249
|
+
82 | extern size_t iconv (iconv_t cd, char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);
|
|
250
|
+
| ~~~~~~~~^~~~~
|
|
251
|
+
cc dvd-vr.o -liconv -Wl,-S -o dvd-vr.exe
|
|
252
|
+
cp man/dvd-vr.man man/dvd-vr.1
|
|
253
|
+
cp -p dvd-vr.exe /usr/local/bin
|
|
254
|
+
gzip -c man/dvd-vr.1 > /usr/local/share/man/man1/dvd-vr.1.gz
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
After compile success, you will get the following files.
|
|
258
|
+
* dvd-vr.exe (c:\cygwin64\home\user_name\dvd-vr)
|
|
259
|
+
* cygwin1.dll (c:\cygwin64\bin)
|
|
260
|
+
* cygiconv-2.dll (c:\cygwin64\bin)
|
|
261
|
+
|
|
262
|
+
|
|
263
|
+
### FFmpeg
|
|
264
|
+
|
|
265
|
+
* [FFmpeg](https://www.ffmpeg.org/download.html)
|
|
266
|
+
From the Windows EXE Files link above, select the following website.
|
|
267
|
+
* [Releases · BtbN/FFmpeg-Builds](https://github.com/BtbN/FFmpeg-Builds/releases) (daily auto-build).
|
|
268
|
+
|
|
269
|
+
As an example, download Auto-Build 2021-09-28 12:22.
|
|
270
|
+
* [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)
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
## Development
|
|
274
|
+
|
|
275
|
+
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.
|
|
276
|
+
|
|
277
|
+
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).
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
## License
|
|
282
|
+
|
|
283
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
|
284
|
+
|
|
50
285
|
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 "
|
|
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")
|
data/lib/dvdvrconv/command.rb
CHANGED
|
@@ -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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
|
26
29
|
|
|
27
|
-
|
|
28
|
-
|
|
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
|
|
35
|
+
|
|
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]}"
|
|
@@ -41,14 +53,16 @@ module Dvdvrconv
|
|
|
41
53
|
puts " => VR_MANGR.IFO: #{dvd.vrdisc.opts_ifo}"
|
|
42
54
|
puts " => VR_MOVIE.VRO #{dvd.vrdisc.opts_vro}"
|
|
43
55
|
puts " => dvd-vr.exe: #{dvd.vrdisc.cmd}"
|
|
44
|
-
|
|
56
|
+
puts "== Customize settings =="
|
|
57
|
+
puts " => use_customize_title: #{@options[:use_customize_title]}"
|
|
58
|
+
puts " => base_dst_name: #{@options[:base_dst_name]}"
|
|
59
|
+
puts " => number_list: #{@options[:number_list]}"
|
|
60
|
+
|
|
45
61
|
dvd.read_info
|
|
46
62
|
|
|
47
|
-
if options[:opt][:info]
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
end
|
|
51
|
-
|
|
63
|
+
dvd.view_info if options[:opt][:info] || options[:opt].empty?
|
|
64
|
+
exit unless options[:opt][:exec]
|
|
65
|
+
|
|
52
66
|
# Extract vob files
|
|
53
67
|
dvd.adjust_title
|
|
54
68
|
dvd.vro2vob
|
|
@@ -116,19 +130,34 @@ module Dvdvrconv
|
|
|
116
130
|
|
|
117
131
|
# load yaml file and store in @options.
|
|
118
132
|
def load_config(file)
|
|
119
|
-
config = YAML.load(File.read(file))
|
|
133
|
+
config = YAML.load(File.read(file)) || {}
|
|
134
|
+
|
|
135
|
+
%w(vr_mangr_ifo vr_movie_vro dvd_vr_cmd).each do |key|
|
|
136
|
+
@options[key.to_sym] = nil
|
|
120
137
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
@options[file.to_sym] = config[file]
|
|
138
|
+
unless config.key?(key)
|
|
139
|
+
puts "[ #{key} ] does not exist in #{file} file."
|
|
124
140
|
else
|
|
125
|
-
|
|
141
|
+
if File.exist?(config[key])
|
|
142
|
+
@options[key.to_sym] = config[key]
|
|
143
|
+
else
|
|
144
|
+
puts "File read error. No such file: #{config[key]}"
|
|
145
|
+
end
|
|
126
146
|
end
|
|
147
|
+
|
|
127
148
|
end
|
|
128
149
|
|
|
129
150
|
@options[:use_customize_title] = config["use_customize_title"] || "no"
|
|
130
151
|
@options[:base_dst_name] = config["base_dst_name"] || []
|
|
131
152
|
@options[:number_list] = config["number_list"] || []
|
|
132
153
|
end
|
|
154
|
+
|
|
155
|
+
def dvdpath
|
|
156
|
+
{
|
|
157
|
+
:vr_mangr_ifo => @options[:vr_mangr_ifo],
|
|
158
|
+
:vr_movie_vro => @options[:vr_movie_vro],
|
|
159
|
+
:dvd_vr_cmd => @options[:dvd_vr_cmd]
|
|
160
|
+
}
|
|
161
|
+
end
|
|
133
162
|
end
|
|
134
163
|
end
|
data/lib/dvdvrconv/dvdvr.rb
CHANGED
|
@@ -13,16 +13,19 @@ 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]
|
|
16
19
|
)
|
|
17
20
|
|
|
18
21
|
BASE_NAME = "DVD"
|
|
19
|
-
DEFAULT_CONFIG_FILE = "default_dvdvrconv.
|
|
22
|
+
DEFAULT_CONFIG_FILE = "default_dvdvrconv.yml"
|
|
20
23
|
|
|
21
24
|
# Default DVD drive is "d".
|
|
22
|
-
# If you want to use a different drive, you need to set up a "default_dvdvrconv.
|
|
25
|
+
# If you want to use a different drive, you need to set up a "default_dvdvrconv.yml" file.
|
|
23
26
|
WIN_DRV_IFO = "/cygdrive/D/DVD_RTAV/VR_MANGR.IFO"
|
|
24
27
|
WIN_DRV_VRO = "/cygdrive/D/DVD_RTAV/VR_MOVIE.VRO"
|
|
25
|
-
WIN_DRV_CMD = "win/dvd-vr.exe"
|
|
28
|
+
WIN_DRV_CMD = File.expand_path("../../win/dvd-vr.exe", __dir__)
|
|
26
29
|
DRV_IFO = "/mnt/d/DVD_RTAV/VR_MANGR.IFO"
|
|
27
30
|
DRV_VRO = "/mnt/d/DVD_RTAV/VR_MOVIE.VRO"
|
|
28
31
|
DRV_CMD = "dvd-vr"
|
|
@@ -42,6 +45,10 @@ module Dvdvrconv
|
|
|
42
45
|
@vrdisc.opts_vro = Dvdvrconv::DRV_VRO
|
|
43
46
|
@vrdisc.cmd = Dvdvrconv::DRV_CMD
|
|
44
47
|
end
|
|
48
|
+
|
|
49
|
+
@vrdisc.default_opts_ifo = @vrdisc.opts_ifo
|
|
50
|
+
@vrdisc.default_opts_vro = @vrdisc.opts_vro
|
|
51
|
+
@vrdisc.default_cmd = @vrdisc.cmd
|
|
45
52
|
end
|
|
46
53
|
|
|
47
54
|
# Read VRO file from dvd-ram disc in dvd-vr format, and output vob files.
|
|
@@ -55,8 +62,8 @@ module Dvdvrconv
|
|
|
55
62
|
end
|
|
56
63
|
|
|
57
64
|
# File convert command, vob to mp4 for FFmpeg.
|
|
58
|
-
#
|
|
59
|
-
#
|
|
65
|
+
# * Change the aspect ratio to 16:9.
|
|
66
|
+
# * Delete a closed caption.
|
|
60
67
|
def str_convert_cmd(file_name)
|
|
61
68
|
%Q[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]
|
|
62
69
|
end
|
|
@@ -75,6 +82,7 @@ module Dvdvrconv
|
|
|
75
82
|
#
|
|
76
83
|
def read_info
|
|
77
84
|
out, err, status = Open3.capture3(@vrdisc.cmd, @vrdisc.opts_ifo)
|
|
85
|
+
puts "File read error => #{err}" unless status.success?
|
|
78
86
|
@vrdisc.header = out.scan(/^(.*?)Number/m)
|
|
79
87
|
|
|
80
88
|
# Sets the captured information to @vrdisc.
|
|
@@ -279,9 +287,9 @@ module Dvdvrconv
|
|
|
279
287
|
#
|
|
280
288
|
# concat_list = [[file_name, contents, base_name], [file_name, contents, base_name]. .... ]
|
|
281
289
|
#
|
|
282
|
-
#
|
|
283
|
-
#
|
|
284
|
-
#
|
|
290
|
+
# @param [String] file_name concat list name.
|
|
291
|
+
# @param [String] contents concatenate file names.
|
|
292
|
+
# @param [String] base_name output vob name.
|
|
285
293
|
#
|
|
286
294
|
def concat_titles(concat_list)
|
|
287
295
|
puts "----- Concatenate Split Titles -----"
|
data/lib/dvdvrconv/options.rb
CHANGED
|
@@ -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 }
|
data/lib/dvdvrconv/version.rb
CHANGED
|
File without changes
|
|
File without changes
|
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.
|
|
4
|
+
version: 1.1.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- icm7216
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2021-10-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 "
|
|
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.
|
|
65
|
-
- sample_my.
|
|
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
|
|
@@ -71,7 +71,7 @@ homepage: https://github.com/icm7216/dvdvrconv
|
|
|
71
71
|
licenses:
|
|
72
72
|
- MIT
|
|
73
73
|
metadata: {}
|
|
74
|
-
post_install_message:
|
|
74
|
+
post_install_message:
|
|
75
75
|
rdoc_options: []
|
|
76
76
|
require_paths:
|
|
77
77
|
- lib
|
|
@@ -86,8 +86,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
86
86
|
- !ruby/object:Gem::Version
|
|
87
87
|
version: '0'
|
|
88
88
|
requirements: []
|
|
89
|
-
rubygems_version: 3.
|
|
90
|
-
signing_key:
|
|
89
|
+
rubygems_version: 3.2.17
|
|
90
|
+
signing_key:
|
|
91
91
|
specification_version: 4
|
|
92
92
|
summary: DVD-VR utility
|
|
93
93
|
test_files: []
|