video_transcoding 0.1.1 → 0.1.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/README.md +8 -4
- data/bin/transcode-video +1 -1
- data/lib/video_transcoding/media.rb +8 -8
- data/lib/video_transcoding/version.rb +1 -1
- data/video_transcoding-0.1.1.gem +0 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea1e5f908d34e4290159cef2ead3dc50c75f6f4e
|
4
|
+
data.tar.gz: 699559bd07d8e133272ac7222520cc5d14d3183e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd714b6cd993f10849fccd7d24ce15143fc16577ffe3809bf0b4ec7958965aca47ae4813b38aacc150bd475db56d754aea3bf675a43c5ef807f206907161edf4
|
7
|
+
data.tar.gz: 6db85f92780f16e2d5d88de5fd298c44f52f55bdef3b47c2153cec0ceacf9e051c7eb9ebdf899ac70cff1fa46796d0ff182ad58f9adda3c4022cdbbba2be6d7c
|
data/README.md
CHANGED
@@ -12,16 +12,16 @@ This package is based on my original collection of [Video Transcoding Scripts](h
|
|
12
12
|
|
13
13
|
Most of the tools in this package are essentially intelligent wrappers around Open Source software like [HandBrake](https://handbrake.fr/), [MKVToolNix](https://www.bunkus.org/videotools/mkvtoolnix/), [MPlayer](http://mplayerhq.hu/), [FFmpeg](http://ffmpeg.org/), and [MP4v2](https://code.google.com/p/mp4v2/). And they're all designed to be executed from the command line shell:
|
14
14
|
|
15
|
-
* [`transcode-video`](#
|
15
|
+
* [`transcode-video`](#why-transcode-video)
|
16
16
|
Transcode video file or disc image directory into format and size similar to popular online downloads.
|
17
17
|
|
18
|
-
* [`detect-crop`](#
|
18
|
+
* [`detect-crop`](#why-detect-crop)
|
19
19
|
Detect optimal crop values for video file or disc image directory.
|
20
20
|
|
21
|
-
* [`convert-video`](#
|
21
|
+
* [`convert-video`](#why-convert-video)
|
22
22
|
Convert video file from Matroska to MP4 format or from MP4 to Matroksa format without transcoding video.
|
23
23
|
|
24
|
-
* [`query-handbrake-log`](#
|
24
|
+
* [`query-handbrake-log`](#why-query-handbrake-log)
|
25
25
|
Report information from HandBrake-generated `.log` files.
|
26
26
|
|
27
27
|
Even if you don't try any of my tools, you may find this "README" document helpful:
|
@@ -300,6 +300,10 @@ However, you can copy the original audio track, provided HandBrake and your sele
|
|
300
300
|
|
301
301
|
transcode-video --copy-audio 1 "/path/to/Movie.mkv"
|
302
302
|
|
303
|
+
The `--copy-audio` option doesn't implicitly add the audio track to be copied. The previous command works because `1` identifies the main audio track and it's included by default. To copy a different track, you must first add it:
|
304
|
+
|
305
|
+
transcode-video --add-audio 4 --copy-audio 4 "/path/to/Movie.mkv"
|
306
|
+
|
303
307
|
Be aware that copying audio tracks in their original format will likely defeat two very important goals of transcoding: portability and compression.
|
304
308
|
|
305
309
|
#### Understanding subtitles
|
data/bin/transcode-video
CHANGED
@@ -978,7 +978,7 @@ HERE
|
|
978
978
|
def prepare_subtitle(media, handbrake_options)
|
979
979
|
return if media.info[:subtitle].empty?
|
980
980
|
|
981
|
-
if @auto_burn
|
981
|
+
if @auto_burn and not media.info[:mp4]
|
982
982
|
burn_track, _ = media.info[:subtitle].find { |_, info| info[:forced] }
|
983
983
|
else
|
984
984
|
burn_track = @burn_subtitle
|
@@ -51,9 +51,9 @@ module VideoTranscoding
|
|
51
51
|
@info = {}
|
52
52
|
|
53
53
|
if @title.nil?
|
54
|
-
if @scan =~ /\+ title ([0-9]+):\n \+ Main Feature/m
|
54
|
+
if @scan =~ /\+ title ([0-9]+):\r?\n \+ Main Feature/m
|
55
55
|
@title = $1.to_i
|
56
|
-
elsif @scan =~ /^\+ title ([0-9]+)
|
56
|
+
elsif @scan =~ /^\+ title ([0-9]+):/
|
57
57
|
@title = $1.to_i
|
58
58
|
else
|
59
59
|
@title = 1
|
@@ -70,7 +70,7 @@ module VideoTranscoding
|
|
70
70
|
@info[:size] = @stat.size
|
71
71
|
@info[:directory] = @stat.directory?
|
72
72
|
|
73
|
-
unless @scan =~ /^ \+ duration: ([0-9]{2}):([0-9]{2}):([0-9]{2})
|
73
|
+
unless @scan =~ /^ \+ duration: ([0-9]{2}):([0-9]{2}):([0-9]{2})/
|
74
74
|
fail 'media duration not found'
|
75
75
|
end
|
76
76
|
|
@@ -92,7 +92,7 @@ module VideoTranscoding
|
|
92
92
|
|
93
93
|
return @info unless @extended
|
94
94
|
|
95
|
-
unless @scan =~ / \+ audio tracks:\n(.*) \+ subtitle tracks:\n(.*)
|
95
|
+
unless @scan =~ / \+ audio tracks:\r?\n(.*) \+ subtitle tracks:\r?\n(.*)\r?\nHandBrake has exited./m
|
96
96
|
fail 'audio and subtitle information not found'
|
97
97
|
end
|
98
98
|
|
@@ -101,7 +101,7 @@ module VideoTranscoding
|
|
101
101
|
@info[:audio] = {}
|
102
102
|
@info[:subtitle] = {}
|
103
103
|
|
104
|
-
audio.each_line do |line|
|
104
|
+
audio.gsub(/\r/, '').each_line do |line|
|
105
105
|
if line =~ /^ \+ ([0-9.]+), [^(]+\(([^)]+)\) .*\(([0-9.]+) ch\) .*\(iso639-2: ([a-z]{3})\)/
|
106
106
|
track = $1.to_i
|
107
107
|
track_info = {}
|
@@ -121,7 +121,7 @@ module VideoTranscoding
|
|
121
121
|
end
|
122
122
|
end
|
123
123
|
|
124
|
-
subtitle.each_line do |line|
|
124
|
+
subtitle.gsub(/\r/, '').each_line do |line|
|
125
125
|
if line =~ /^ \+ ([0-9.]+), .*\(iso639-2: ([a-z]{3})\) \((?:Text|Bitmap)\)\(([^)]+)\)/
|
126
126
|
track = $1.to_i
|
127
127
|
track_info = {}
|
@@ -166,7 +166,7 @@ module VideoTranscoding
|
|
166
166
|
track_info[:default] = false
|
167
167
|
end
|
168
168
|
|
169
|
-
if @scan =~ /[ ]+Stream #0\.#{stream}[^ ]*: Audio: [^\n]+\n[ ]+Metadata:\n^[ ]+title[ ]+: ([^\n]+)/m
|
169
|
+
if @scan =~ /[ ]+Stream #0\.#{stream}[^ ]*: Audio: [^\n]+\n[ ]+Metadata:\r?\n^[ ]+title[ ]+: ([^\r\n]+)/m
|
170
170
|
track_info[:name] = $1
|
171
171
|
else
|
172
172
|
track_info[:name] = nil
|
@@ -188,7 +188,7 @@ module VideoTranscoding
|
|
188
188
|
track_info[:forced] = false
|
189
189
|
end
|
190
190
|
|
191
|
-
if @scan =~ /[ ]+Stream #0\.#{stream}[^ ]*: Subtitle: [^\n]+\n[ ]+Metadata:\n^[ ]+title[ ]+: ([^\n]+)/m
|
191
|
+
if @scan =~ /[ ]+Stream #0\.#{stream}[^ ]*: Subtitle: [^\n]+\n[ ]+Metadata:\r?\n^[ ]+title[ ]+: ([^\r\n]+)/m
|
192
192
|
track_info[:name] = $1
|
193
193
|
else
|
194
194
|
track_info[:name] = nil
|
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: video_transcoding
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Don Melton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-08 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: |2
|
14
14
|
Video Transcoding is a package of tools to transcode, inspect
|
@@ -46,6 +46,7 @@ files:
|
|
46
46
|
- lib/video_transcoding/tool.rb
|
47
47
|
- lib/video_transcoding/version.rb
|
48
48
|
- video_transcoding-0.1.0.gem
|
49
|
+
- video_transcoding-0.1.1.gem
|
49
50
|
- video_transcoding.gemspec
|
50
51
|
homepage: https://github.com/donmelton/video_transcoding
|
51
52
|
licenses:
|