Skip to content
This repository was archived by the owner on Apr 5, 2022. It is now read-only.

Commit b0aba66

Browse files
author
Doug Anarino
committed
Version 4.0.13
1 parent 609155e commit b0aba66

File tree

1 file changed

+179
-0
lines changed

1 file changed

+179
-0
lines changed

doc/Documentation_md.html

+179
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
<!DOCTYPE html>
2+
3+
<html>
4+
<head>
5+
<meta charset="UTF-8">
6+
7+
<title>Documentation - RDoc Documentation</title>
8+
9+
<link href="./fonts.css" rel="stylesheet">
10+
<link href="./rdoc.css" rel="stylesheet">
11+
12+
<script type="text/javascript">
13+
var rdoc_rel_prefix = "./";
14+
</script>
15+
16+
<script src="./js/jquery.js"></script>
17+
<script src="./js/navigation.js"></script>
18+
<script src="./js/search_index.js"></script>
19+
<script src="./js/search.js"></script>
20+
<script src="./js/searcher.js"></script>
21+
<script src="./js/darkfish.js"></script>
22+
23+
24+
<body id="top" role="document" class="file">
25+
<nav role="navigation">
26+
<div id="project-navigation">
27+
<div id="home-section" role="region" title="Quick navigation" class="nav-section">
28+
<h2>
29+
<a href="./index.html" rel="home">Home</a>
30+
</h2>
31+
32+
<div id="table-of-contents-navigation">
33+
<a href="./table_of_contents.html#pages">Pages</a>
34+
<a href="./table_of_contents.html#classes">Classes</a>
35+
<a href="./table_of_contents.html#methods">Methods</a>
36+
</div>
37+
</div>
38+
39+
<div id="search-section" role="search" class="project-section initially-hidden">
40+
<form action="#" method="get" accept-charset="utf-8">
41+
<div id="search-field-wrapper">
42+
<input id="search-field" role="combobox" aria-label="Search"
43+
aria-autocomplete="list" aria-controls="search-results"
44+
type="text" name="search" placeholder="Search" spellcheck="false"
45+
title="Type to search, Up and Down to navigate, Enter to load">
46+
</div>
47+
48+
<ul id="search-results" aria-label="Search Results"
49+
aria-busy="false" aria-expanded="false"
50+
aria-atomic="false" class="initially-hidden"></ul>
51+
</form>
52+
</div>
53+
54+
</div>
55+
56+
57+
<div class="nav-section">
58+
<h3>Table of Contents</h3>
59+
60+
<ul class="link-list" role="directory">
61+
<li><a href="#label-moviemasher.rb">moviemasher.rb</a>
62+
<li><a href="#label-RDoc+Documentation">RDoc Documentation</a>
63+
<li><a href="#label-Core+Classes%2FModules">Core Classes/Modules</a>
64+
<li><a href="#label-Core+Usage">Core Usage</a>
65+
</ul>
66+
</div>
67+
68+
69+
<div id="project-metadata">
70+
<div id="fileindex-section" class="nav-section">
71+
<h3>Pages</h3>
72+
73+
<ul class="link-list">
74+
75+
<li><a href="./Documentation_md.html">Documentation</a>
76+
77+
<li><a href="./README_md.html">README</a>
78+
79+
</ul>
80+
</div>
81+
82+
</div>
83+
</nav>
84+
85+
<main role="main" aria-label="Page Documentation.md">
86+
87+
<p><img
88+
src="https://github.com/moviemasher/moviemasher.rb/raw/master/README/logo-120x60.png">
89+
<strong><a
90+
href="https://github.com/moviemasher/moviemasher.js">moviemasher.js</a> |
91+
<a
92+
href="https://github.com/moviemasher/angular-moviemasher">angular-moviemasher</a>
93+
| <a
94+
href="https://github.com/moviemasher/moviemasher.rb">moviemasher.rb</a></strong></p>
95+
96+
<p><em>Ruby library for mashing up video, images and audio utilizing FFmpeg
97+
and Ecasound</em></p>
98+
99+
<h1 id="label-moviemasher.rb">moviemasher.rb<span><a href="#label-moviemasher.rb">&para;</a> <a href="#documentation">&uarr;</a></span></h1>
100+
<hr>
101+
102+
<h3 id="label-RDoc+Documentation">RDoc <a href="Documentation_md.html">Documentation</a><span><a href="#label-RDoc+Documentation">&para;</a> <a href="#documentation">&uarr;</a></span></h3>
103+
104+
<h5 id="label-Core+Classes%2FModules">Core Classes/Modules<span><a href="#label-Core+Classes%2FModules">&para;</a> <a href="#documentation">&uarr;</a></span></h5>
105+
<ul><li>
106+
<p><a href="MovieMasher.html">MovieMasher</a></p>
107+
</li><li>
108+
<p><a href="MovieMasher/Job.html">MovieMasher::Job</a></p>
109+
</li><li>
110+
<p><a href="MovieMasher/Input.html">MovieMasher::Input</a></p>
111+
</li><li>
112+
<p><a href="MovieMasher/Output.html">MovieMasher::Output</a></p>
113+
</li><li>
114+
<p><a href="MovieMasher/Transfer.html">MovieMasher::Transfer</a></p>
115+
</li><li>
116+
<p><a href="MovieMasher/Source.html">MovieMasher::Source</a></p>
117+
</li><li>
118+
<p><a href="MovieMasher/Destination.html">MovieMasher::Destination</a></p>
119+
</li><li>
120+
<p><a href="MovieMasher/Callback.html">MovieMasher::Callback</a></p>
121+
</li></ul>
122+
123+
<h5 id="label-Core+Usage">Core Usage<span><a href="#label-Core+Usage">&para;</a> <a href="#documentation">&uarr;</a></span></h5>
124+
125+
<pre class="ruby"> <span class="ruby-identifier">require_relative</span> <span class="ruby-string">&#39;lib/moviemasher.rb&#39;</span>
126+
<span class="ruby-identifier">job</span> = { :<span class="ruby-identifier">inputs</span> =<span class="ruby-operator">&gt;</span> [], :<span class="ruby-identifier">base_source</span> =<span class="ruby-operator">&gt;</span> {}, :<span class="ruby-identifier">outputs</span> =<span class="ruby-operator">&gt;</span> [], :<span class="ruby-identifier">destination</span> =<span class="ruby-operator">&gt;</span> {} }
127+
<span class="ruby-identifier">job</span>[:<span class="ruby-identifier">base_source</span>][:<span class="ruby-identifier">path</span>] = <span class="ruby-identifier">job</span>[:<span class="ruby-identifier">destination</span>][:<span class="ruby-identifier">path</span>] = <span class="ruby-string">&#39;~/&#39;</span>
128+
<span class="ruby-identifier">job</span>[:<span class="ruby-identifier">inputs</span>] <span class="ruby-operator">&lt;&lt;</span> { :<span class="ruby-identifier">type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&#39;video&#39;</span>, :<span class="ruby-identifier">source</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&#39;input.mov&#39;</span>, :<span class="ruby-identifier">fill</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&#39;crop&#39;</span> }
129+
<span class="ruby-identifier">job</span>[:<span class="ruby-identifier">inputs</span>] <span class="ruby-operator">&lt;&lt;</span> { :<span class="ruby-identifier">type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&#39;image&#39;</span>, :<span class="ruby-identifier">source</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&#39;input.jpg&#39;</span>, :<span class="ruby-identifier">length</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">2</span> }
130+
<span class="ruby-identifier">job</span>[:<span class="ruby-identifier">inputs</span>] <span class="ruby-operator">&lt;&lt;</span> { :<span class="ruby-identifier">type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&#39;audio&#39;</span>, :<span class="ruby-identifier">source</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&#39;input.mp3&#39;</span>, :<span class="ruby-identifier">offset</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">10</span> }
131+
<span class="ruby-identifier">job</span>[:<span class="ruby-identifier">outputs</span>] <span class="ruby-operator">&lt;&lt;</span> { :<span class="ruby-identifier">type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&#39;video&#39;</span>, :<span class="ruby-identifier">name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&#39;output.mp4&#39;</span> }
132+
<span class="ruby-constant">MovieMasher</span>.<span class="ruby-identifier">process</span> <span class="ruby-identifier">job</span>
133+
</pre>
134+
135+
<p>When inputs use relative URLs like the example above then either the input
136+
or the job needs a <code>base_source</code> key containing a <a
137+
href="MovieMasher/Transfer.html">MovieMasher::Transfer</a> object to
138+
resolve them to absolute ones. Likewise, a <code>destination</code> key
139+
containing a <a
140+
href="MovieMasher/Destination.html">MovieMasher::Destination</a> object can
141+
be placed either in an output or the job for all outputs to use to resolve
142+
relative locations. We&#39;ve set them both to our home directory in this
143+
case so all files live there.</p>
144+
145+
<p>Inputs are arranged consecutively one after the other - at least the visual
146+
ones. Audio inputs will by default start where the last audio or video with
147+
audio ends, so if the video input in our example has audio the audio input
148+
will start after it, otherwise they will begin at the same time. You can
149+
also explicitly play an audio track at any time by specify its
150+
<code>start</code> value.</p>
151+
152+
<p>In addition to raw media (video, audio and images) it&#39;s also possible
153+
to output image sequences from video tracks and waveform graphics from
154+
audio tracks. In terms of inputs, it&#39;s also possible to provide a mash
155+
JSON payload like moviemasher.js creates. Within a mash input, visual
156+
elements can be composited together just like audio elements can in the job
157+
itself.</p>
158+
159+
<p>The visual composition of inputs is controlled by <em>effect, scaler</em>
160+
and <em>merger</em> media, which are all arrangements of FFmpeg
161+
<em>filters</em>. Only a subset of filters and their parameters are
162+
supported at this time, but they include basics like crop, scale, fade and
163+
drawtext. That last one relies on <em>font</em> media, the last of the
164+
modular types.</p>
165+
166+
<p><strong>To regenerate this documentation <code>cd</code> to project
167+
directory and execute:</strong></p>
168+
169+
<pre>rdoc --visibility=public -o doc --main=&#39;Documentation.md&#39; --fmt=darkfish --markup=tomdoc --tab-width=2 --no-dcov --exclude=&#39;/spec&#39; --exclude=&#39;/log&#39; --exclude=&#39;/Gemfile&#39; --exclude=&#39;/tmp&#39; --exclude=&#39;/config&#39; --exclude=&#39;/index.rb&#39; --exclude=&#39;/doc&#39; --exclude=&#39;/bin&#39; --exclude=&#39;/Rakefile&#39; --exclude=&#39;/Docker&#39; --exclude=&#39;/README-short&#39; --exclude=&#39;/LICENSE&#39;</pre>
170+
</main>
171+
172+
173+
174+
<footer id="validator-badges" role="contentinfo">
175+
<p><a href="http://validator.w3.org/check/referer">Validate</a>
176+
<p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.0.
177+
<p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
178+
</footer>
179+

0 commit comments

Comments
 (0)