movie_merge 0.0.4 → 0.0.5
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 +7 -0
- data/README.md +3 -2
- data/bin/moviemerge +1 -1
- data/lib/movie_merge/cli.rb +9 -7
- data/lib/movie_merge/version.rb +1 -1
- metadata +7 -11
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 23576023b74ea072e816515f15761ca8d30edd26
|
4
|
+
data.tar.gz: cd57a130eafc0b8c39f831ae16d239188938237e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 82cd9aa9289f22b9aa2cd902e2542a91edf12656a50df19ef7d4f49596301a388330bc9ae2475b9282348bff758422c0dde140d6e2ef87f69ed5d4dc6375a7e0
|
7
|
+
data.tar.gz: 09b70d21dde93eca7948052aa9dd29cf3c59c0d1e3fa055311ac9a4ef26e66b0b376bb55a031a407fb8fa7314199cc5d42250fd058c52a4fc52162a8758a7c39
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# MovieMerge
|
2
2
|
|
3
|
-
Joins multiple video files together using the `cat` command and ffmpeg.
|
3
|
+
Joins multiple video files together using the `cat` command and ffmpeg. Currently only `avi` files are supported.
|
4
4
|
|
5
5
|
```
|
6
6
|
moviemerge INPUT-1 .. INPUT-N
|
@@ -10,4 +10,5 @@ Options (all are optional):
|
|
10
10
|
-t, [--target=TARGET]
|
11
11
|
-d, [--dry-run]
|
12
12
|
-h, [--help]
|
13
|
-
|
13
|
+
-v, [--version]
|
14
|
+
```
|
data/bin/moviemerge
CHANGED
data/lib/movie_merge/cli.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
require "thor"
|
2
|
+
require "shellwords"
|
2
3
|
|
3
4
|
module MovieMerge
|
4
|
-
|
5
|
+
class Cli < ::Thor
|
5
6
|
include Thor::Actions
|
6
7
|
|
7
8
|
desc "INPUT-1 .. INPUT-N", "Combines multiple video files into a single video file."
|
@@ -46,12 +47,13 @@ module MovieMerge
|
|
46
47
|
file_type = file_types.first
|
47
48
|
|
48
49
|
# Build the target and temp file names.
|
49
|
-
|
50
|
-
|
50
|
+
tname = "moviemerged-x#{sources.size}.#{file_type}"
|
51
|
+
target = options[:target] || tname
|
52
|
+
temp = ".#{tname}"
|
51
53
|
|
52
54
|
# Ensure each of the input files actually exist.
|
53
55
|
sources.each do |source|
|
54
|
-
source_exists = File.exists?(
|
56
|
+
source_exists = File.exists?(source)
|
55
57
|
return say("Source file not found; cannot continue (#{source})", :red) unless source_exists
|
56
58
|
end
|
57
59
|
|
@@ -65,7 +67,7 @@ module MovieMerge
|
|
65
67
|
|
66
68
|
# Concatenate the input files and output to a temp file.
|
67
69
|
say("Concatenating files.", :green)
|
68
|
-
`cat #{sources.join(' ')} > #{temp}`
|
70
|
+
`cat #{sources.map { |s| Shellwords.escape(s) }.join(' ')} > #{Shellwords.escape(temp)}`
|
69
71
|
|
70
72
|
unless $?.success?
|
71
73
|
`rm -f #{temp}`
|
@@ -74,7 +76,7 @@ module MovieMerge
|
|
74
76
|
|
75
77
|
# Reindex the temp file using ffmpeg.
|
76
78
|
say("Reindexing combined output at framerate of #{framerate}.", :green)
|
77
|
-
`ffmpeg -i #{temp} -r #{framerate} -
|
79
|
+
`ffmpeg -i #{Shellwords.escape(temp)} -r #{framerate} -qscale 0 #{Shellwords.escape(target)} 2>&1`
|
78
80
|
|
79
81
|
unless $?.success?
|
80
82
|
`rm -f #{temp}`
|
@@ -83,7 +85,7 @@ module MovieMerge
|
|
83
85
|
|
84
86
|
# Remove the temp file.
|
85
87
|
say("Cleaning up temp files.", :green)
|
86
|
-
`rm -f #{temp}`
|
88
|
+
`rm -f #{Shellwords.escape(temp)}`
|
87
89
|
say("Unable to remove temp file: #{temp}", :red) unless $?.success?
|
88
90
|
|
89
91
|
# Done!
|
data/lib/movie_merge/version.rb
CHANGED
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: movie_merge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.5
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Mike Fulcher
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-07-11 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: thor
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - '='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - '='
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -48,26 +45,25 @@ files:
|
|
48
45
|
- movie_merge.gemspec
|
49
46
|
homepage: https://github.com/6twenty/movie_merge
|
50
47
|
licenses: []
|
48
|
+
metadata: {}
|
51
49
|
post_install_message:
|
52
50
|
rdoc_options: []
|
53
51
|
require_paths:
|
54
52
|
- lib
|
55
53
|
required_ruby_version: !ruby/object:Gem::Requirement
|
56
|
-
none: false
|
57
54
|
requirements:
|
58
|
-
- -
|
55
|
+
- - '>='
|
59
56
|
- !ruby/object:Gem::Version
|
60
57
|
version: '0'
|
61
58
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
62
|
-
none: false
|
63
59
|
requirements:
|
64
|
-
- -
|
60
|
+
- - '>='
|
65
61
|
- !ruby/object:Gem::Version
|
66
62
|
version: '0'
|
67
63
|
requirements: []
|
68
64
|
rubyforge_project:
|
69
|
-
rubygems_version:
|
65
|
+
rubygems_version: 2.0.3
|
70
66
|
signing_key:
|
71
|
-
specification_version:
|
67
|
+
specification_version: 4
|
72
68
|
summary: Automates joining multiple video files using the `cat` command and ffmpeg.
|
73
69
|
test_files: []
|