mirror of
https://github.com/amiaopensource/ffmprovisr.git
synced 2025-10-13 17:29:58 +02:00
Compare commits
26 Commits
v2018-04-0
...
v2018-06-0
Author | SHA1 | Date | |
---|---|---|---|
|
6e9d9c9a29 | ||
|
8810d40523 | ||
|
1ebea5cf19 | ||
|
ec3829d1b6 | ||
|
468b7b3a09 | ||
|
7ecd3214d5 | ||
|
50166200b9 | ||
|
f2ec08fd59 | ||
|
32004553a6 | ||
|
a67b7cc879 | ||
|
b9da657b19 | ||
|
91e929dab4 | ||
|
21e5561dc9 | ||
|
36deb1ea62 | ||
|
89139311f4 | ||
|
fb6581a50e | ||
|
5bdd6f8d8a | ||
|
3b7ce0e79f | ||
|
b9b7e0fef9 | ||
|
95e90bb26b | ||
|
d70a1de6e1 | ||
|
8417883004 | ||
|
937b9ae525 | ||
|
d46138a81b | ||
|
e6317731c9 | ||
|
0849bd29e4 |
@@ -1,6 +1,7 @@
|
|||||||
html, body {
|
html, body {
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
font-size: 16px;
|
font-size: 18px;
|
||||||
|
font-family: sans-serif;
|
||||||
color: #888888;
|
color: #888888;
|
||||||
background-color: #060606;
|
background-color: #060606;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
@@ -88,9 +89,6 @@ a:visited {
|
|||||||
display: inline;
|
display: inline;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1, h2, h3, h4, h5, h6 {
|
|
||||||
font-family: 'Montserrat', sans-serif;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
letter-spacing: 0.1em;
|
letter-spacing: 0.1em;
|
||||||
@@ -116,7 +114,6 @@ h4 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.intro-lead {
|
.intro-lead {
|
||||||
font-family: 'Montserrat', sans-serif;
|
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,7 +162,6 @@ img {
|
|||||||
}
|
}
|
||||||
|
|
||||||
div {
|
div {
|
||||||
font-family: 'Merriweather', serif;
|
|
||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -177,7 +173,6 @@ div {
|
|||||||
color: white;
|
color: white;
|
||||||
background-color: #383838;
|
background-color: #383838;
|
||||||
padding: 14px;
|
padding: 14px;
|
||||||
font-family: "Montserrat";
|
|
||||||
letter-spacing: 0.05em;
|
letter-spacing: 0.05em;
|
||||||
border: 1px solid black;
|
border: 1px solid black;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
162
index.html
162
index.html
@@ -3,7 +3,6 @@
|
|||||||
<head>
|
<head>
|
||||||
<title>ffmprovisr</title>
|
<title>ffmprovisr</title>
|
||||||
<meta name="viewport" charset="utf-8" content="text/html, width=device-width, initial-scale=1">
|
<meta name="viewport" charset="utf-8" content="text/html, width=device-width, initial-scale=1">
|
||||||
<link href="https://fonts.googleapis.com/css?family=Montserrat%7CMerriweather" rel="stylesheet" type="text/css">
|
|
||||||
<link rel="stylesheet" href="css/css.css">
|
<link rel="stylesheet" href="css/css.css">
|
||||||
<link rel="icon" href="img/vhs.ico">
|
<link rel="icon" href="img/vhs.ico">
|
||||||
<script src="js/jquery.min.js"></script>
|
<script src="js/jquery.min.js"></script>
|
||||||
@@ -19,6 +18,7 @@
|
|||||||
<nav class="sidebar well">
|
<nav class="sidebar well">
|
||||||
<h2 class="heading">Table of Contents</h2>
|
<h2 class="heading">Table of Contents</h2>
|
||||||
<a href="#about"><div class="contents-list">About this resource</div></a>
|
<a href="#about"><div class="contents-list">About this resource</div></a>
|
||||||
|
<div id="open-all" class="contents-list">Show/hide all recipes</div>
|
||||||
<a href="#basics"><div class="contents-list">FFmpeg basics</div></a>
|
<a href="#basics"><div class="contents-list">FFmpeg basics</div></a>
|
||||||
<a href="#concepts"><div class="contents-list">Advanced FFmpeg concepts</div></a>
|
<a href="#concepts"><div class="contents-list">Advanced FFmpeg concepts</div></a>
|
||||||
<a href="#rewrap"><div class="contents-list">Change container (rewrap)</div></a>
|
<a href="#rewrap"><div class="contents-list">Change container (rewrap)</div></a>
|
||||||
@@ -47,6 +47,7 @@
|
|||||||
<span class="intro-lead">Making FFmpeg Easier</span>
|
<span class="intro-lead">Making FFmpeg Easier</span>
|
||||||
<p>FFmpeg is a powerful tool for manipulating audiovisual files. Unfortunately, it also has a steep learning curve, especially for users unfamiliar with a command line interface. This app helps users through the command generation process so that more people can reap the benefits of FFmpeg.</p>
|
<p>FFmpeg is a powerful tool for manipulating audiovisual files. Unfortunately, it also has a steep learning curve, especially for users unfamiliar with a command line interface. This app helps users through the command generation process so that more people can reap the benefits of FFmpeg.</p>
|
||||||
<p>Each button displays helpful information about how to perform a wide variety of tasks using FFmpeg. To use this site, click on the task you would like to perform. A new window will open up with a sample command and a description of how that command works. You can copy this command and understand how the command works with a breakdown of each of the flags.</p>
|
<p>Each button displays helpful information about how to perform a wide variety of tasks using FFmpeg. To use this site, click on the task you would like to perform. A new window will open up with a sample command and a description of how that command works. You can copy this command and understand how the command works with a breakdown of each of the flags.</p>
|
||||||
|
<p>This page does not have search functionality, but you can open all recipes (second option in the sidebar) and use your browser's search tool (often ctrl+f or cmd+f) to perform a keyword search through all recipes.</p>
|
||||||
<span class="intro-lead">Tutorials</span>
|
<span class="intro-lead">Tutorials</span>
|
||||||
<p>For FFmpeg basics, check out the program’s <a href="https://ffmpeg.org/" target="_blank">official website</a>.</p>
|
<p>For FFmpeg basics, check out the program’s <a href="https://ffmpeg.org/" target="_blank">official website</a>.</p>
|
||||||
<p>For instructions on how to install FFmpeg on Mac, Linux, and Windows, refer to Reto Kromer’s <a href="https://avpres.net/FFmpeg/#ch1" target="_blank">installation instructions</a>.</p>
|
<p>For instructions on how to install FFmpeg on Mac, Linux, and Windows, refer to Reto Kromer’s <a href="https://avpres.net/FFmpeg/#ch1" target="_blank">installation instructions</a>.</p>
|
||||||
@@ -212,6 +213,24 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- ends MKV to MP4 -->
|
<!-- ends MKV to MP4 -->
|
||||||
|
|
||||||
|
<!-- Rewrap DV -->
|
||||||
|
<label class="recipe" for="rewrap-dv">Rewrap DV video to .dv file</label>
|
||||||
|
<input type="checkbox" id="rewrap-dv">
|
||||||
|
<div class="hiding">
|
||||||
|
<h3>Rewrap DV video to .dv file</h3>
|
||||||
|
<p><code>ffmpeg -i <i>input_file</i> -f rawvideo -c:v copy <i>output_file.dv</i></code></p>
|
||||||
|
<p>This script will take a video that is encoded in the <a href="https://en.wikipedia.org/wiki/DV" target="_blank">DV Codec</a> but wrapped in a different container (such as MOV) and rewrap it into a raw DV file (with the .dv extension). Since DV files potentially contain a great deal of provenance metadata within the DV stream, it is necessary to rewrap files in this method to avoid unintentional stripping of this metadata.</p>
|
||||||
|
<dl>
|
||||||
|
<dt>ffmpeg</dt><dd>starts the command</dd>
|
||||||
|
<dt>-i <i>input_file</i></dt><dd>path and name of the input file</dd>
|
||||||
|
<dt>-f rawvideo</dt><dd>this tells FFmpeg to pass the video stream as raw video data without remuxing. This step is what ensures the survival of embedded metadata versus a standard rewrap.</dd>
|
||||||
|
<dt>-c:v copy</dt><dd>copy the DV stream directly, without re-encoding.</dd>
|
||||||
|
<dt><i>output_file.dv</i></dt><dd>tells FFmpeg to use the DV wrapper for the output.</dd>
|
||||||
|
</dl>
|
||||||
|
<p class="link"></p>
|
||||||
|
</div>
|
||||||
|
<!-- Rewrap DV -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="well">
|
<div class="well">
|
||||||
<h2 id="transcode">Change codec (transcode)</h2>
|
<h2 id="transcode">Change codec (transcode)</h2>
|
||||||
@@ -242,7 +261,7 @@
|
|||||||
<p>FFmpeg comes with more than one ProRes encoder:</p>
|
<p>FFmpeg comes with more than one ProRes encoder:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><code>prores</code> is much faster, can be used for progressive video only, and seems to be better for video according to Rec. 601 (Recommendation ITU-R BT.601).</li>
|
<li><code>prores</code> is much faster, can be used for progressive video only, and seems to be better for video according to Rec. 601 (Recommendation ITU-R BT.601).</li>
|
||||||
<li><code>prores_ks</code> generates a better file, can also be used for interlaced video, allows also encoding of ProRes 4444 (<code>-c:v prores_ks -profile:v 4</code>), and seems to be better for video according to Rec. 709 (Recommendation ITU-R BT.709).</li>
|
<li><code>prores_ks</code> generates a better file, can also be used for interlaced video, allows also encoding of ProRes 4444 (<code>-c:v prores_ks -profile:v 4</code>) and ProRes 4444 XQ (<code>-c:v prores_ks -profile:v 5</code>), and seems to be better for video according to Rec. 709 (Recommendation ITU-R BT.709).</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p class="link"></p>
|
<p class="link"></p>
|
||||||
</div>
|
</div>
|
||||||
@@ -965,7 +984,7 @@
|
|||||||
<p>You can speed up or slow down a file using the <code>fps</code> and <code>atempo</code> filters (see also the <a href="https://amiaopensource.github.io/ffmprovisr/#modify_speed">Modify speed</a> command).</p>
|
<p>You can speed up or slow down a file using the <code>fps</code> and <code>atempo</code> filters (see also the <a href="https://amiaopensource.github.io/ffmprovisr/#modify_speed">Modify speed</a> command).</p>
|
||||||
<p>Here's an example of the full command, in which input_1 is 30fps, input_2 is 25fps, and 25fps is the desired output speed.</p>
|
<p>Here's an example of the full command, in which input_1 is 30fps, input_2 is 25fps, and 25fps is the desired output speed.</p>
|
||||||
<p><code>ffmpeg -i input_1.avi -i input_2.mp4 -filter_complex "[0:v:0] fps=fps=25 [video_to_25fps]; [0:a:0] atempo=(25/30) [audio_to_25fps]; [video_to_25fps] [audio_to_25fps] [1:v:0] [1:a:0] concat=n=2:v=1:a=1 [video_out] [audio_out]" -map "[video_out]" -map "[audio_out]" <i>output_file</i></code></p>
|
<p><code>ffmpeg -i input_1.avi -i input_2.mp4 -filter_complex "[0:v:0] fps=fps=25 [video_to_25fps]; [0:a:0] atempo=(25/30) [audio_to_25fps]; [video_to_25fps] [audio_to_25fps] [1:v:0] [1:a:0] concat=n=2:v=1:a=1 [video_out] [audio_out]" -map "[video_out]" -map "[audio_out]" <i>output_file</i></code></p>
|
||||||
<p>Note that the <code>fps</code> filter will drop or repeat frames as necessary in order to achieve the desired frame rate - see the FFmpeg <a href="https://ffmpeg.org/ffmpeg-filters.html#fps-1">fps docs</a> for more details.</p>
|
<p>Note that the <code>fps</code> filter will drop or repeat frames as necessary in order to achieve the desired frame rate - see the FFmpeg <a href="https://ffmpeg.org/ffmpeg-filters.html#fps-1" target="_blank">fps docs</a> for more details.</p>
|
||||||
<p>For more information, see the <a href="https://trac.ffmpeg.org/wiki/Concatenate#differentcodec" target="_blank">FFmpeg wiki page on concatenating files of different types</a>.</p>
|
<p>For more information, see the <a href="https://trac.ffmpeg.org/wiki/Concatenate#differentcodec" target="_blank">FFmpeg wiki page on concatenating files of different types</a>.</p>
|
||||||
<p class="link"></p>
|
<p class="link"></p>
|
||||||
</div>
|
</div>
|
||||||
@@ -1691,6 +1710,42 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- ends batch processing (Windows) -->
|
<!-- ends batch processing (Windows) -->
|
||||||
|
|
||||||
|
<!-- Check decoder errors -->
|
||||||
|
<label class="recipe" for="check_decoder_errors">Check decoder errors</label>
|
||||||
|
<input type="checkbox" id="check_decoder_errors">
|
||||||
|
<div class="hiding">
|
||||||
|
<h3>Check decoder errors</h3>
|
||||||
|
<p><code>ffmpeg -i <i>input_file</i> -f null -</code></p>
|
||||||
|
<p>This decodes your video and prints any errors or found issues to the screen.</p>
|
||||||
|
<dl>
|
||||||
|
<dt>ffmpeg</dt><dd>starts the command</dd>
|
||||||
|
<dt>-i <i>input_file</i></dt><dd>path, name and extension of the input file</dd>
|
||||||
|
<dt>-f null</dt><dd>Video is decoded with the <code>null</code> muxer. This allows video decoding without creating an output file.</dd>
|
||||||
|
<dt>-</dt><dd>FFmpeg syntax requires a specified output, and <code>-</code> is just a place holder. No file is actually created.</dd>
|
||||||
|
</dl>
|
||||||
|
<p class="link"></p>
|
||||||
|
</div>
|
||||||
|
<!-- ends Check decoder errors -->
|
||||||
|
|
||||||
|
<!-- Check FFV1 fixity -->
|
||||||
|
<label class="recipe" for="check_FFV1_fixity">Check FFV1 fixity</label>
|
||||||
|
<input type="checkbox" id="check_FFV1_fixity">
|
||||||
|
<div class="hiding">
|
||||||
|
<h3>Check FFV1 Version 3 fixity</h3>
|
||||||
|
<p><code>ffmpeg -report -i <i>input_file</i> -f null -</code></p>
|
||||||
|
<p>This decodes your video and displays any CRC checksum mismatches. These errors will display in your terminal like this: <code>[ffv1 @ 0x1b04660] CRC mismatch 350FBD8A!at 0.272000 seconds</code></p>
|
||||||
|
<p>Frame CRCs are enabled by default in FFV1 Version 3.</p>
|
||||||
|
<dl>
|
||||||
|
<dt>ffmpeg</dt><dd>starts the command</dd>
|
||||||
|
<dt>-report</dt><dd>Dump full command line and console output to a file named <i>ffmpeg-YYYYMMDD-HHMMSS.log</i> in the current directory. It also implies <code>-loglevel verbose</code>.</dd>
|
||||||
|
<dt>-i <i>input_file</i></dt><dd>path, name and extension of the input file</dd>
|
||||||
|
<dt>-f null</dt><dd>Video is decoded with the <code>null</code> muxer. This allows video decoding without creating an output file.</dd>
|
||||||
|
<dt>-</dt><dd>FFmpeg syntax requires a specified output, and <code>-</code> is just a place holder. No file is actually created.</dd>
|
||||||
|
</dl>
|
||||||
|
<p class="link"></p>
|
||||||
|
</div>
|
||||||
|
<!-- ends Check FFV1 Fixity -->
|
||||||
|
|
||||||
<!-- Create frame md5s -->
|
<!-- Create frame md5s -->
|
||||||
<label class="recipe" for="create_frame_md5s_v">Create MD5 checksums (video frames)</label>
|
<label class="recipe" for="create_frame_md5s_v">Create MD5 checksums (video frames)</label>
|
||||||
<input type="checkbox" id="create_frame_md5s_v">
|
<input type="checkbox" id="create_frame_md5s_v">
|
||||||
@@ -1809,25 +1864,6 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- ends QCTools Report (no audio) -->
|
<!-- ends QCTools Report (no audio) -->
|
||||||
|
|
||||||
<!-- Check FFV1 fixity -->
|
|
||||||
<label class="recipe" for="check_FFV1_fixity">Check FFV1 fixity</label>
|
|
||||||
<input type="checkbox" id="check_FFV1_fixity">
|
|
||||||
<div class="hiding">
|
|
||||||
<h3>Check FFV1 Version 3 fixity</h3>
|
|
||||||
<p><code>ffmpeg -report -i <i>input_file</i> -f null -</code></p>
|
|
||||||
<p>This decodes your video and displays any CRC checksum mismatches. These errors will display in your terminal like this: <code>[ffv1 @ 0x1b04660] CRC mismatch 350FBD8A!at 0.272000 seconds</code></p>
|
|
||||||
<p>Frame CRCs are enabled by default in FFV1 Version 3.</p>
|
|
||||||
<dl>
|
|
||||||
<dt>ffmpeg</dt><dd>starts the command</dd>
|
|
||||||
<dt>-report</dt><dd>Dump full command line and console output to a file named <i>ffmpeg-YYYYMMDD-HHMMSS.log</i> in the current directory. It also implies <code>-loglevel verbose</code>.</dd>
|
|
||||||
<dt>-i <i>input_file</i></dt><dd>path, name and extension of the input file</dd>
|
|
||||||
<dt>-f null</dt><dd>Video is decoded with the <code>null</code> muxer. This allows video decoding without creating an output file.</dd>
|
|
||||||
<dt>-</dt><dd>FFmpeg syntax requires a specified output, and <code>-</code> is just a place holder. No file is actually created. </dd>
|
|
||||||
</dl>
|
|
||||||
<p class="link"></p>
|
|
||||||
</div>
|
|
||||||
<!-- ends Check FFV1 Fixity -->
|
|
||||||
|
|
||||||
<!-- Read/Extract EIA-608 Closed Captions -->
|
<!-- Read/Extract EIA-608 Closed Captions -->
|
||||||
<label class="recipe" for="readeia608">Read/Extract EIA-608 Closed Captioning</label>
|
<label class="recipe" for="readeia608">Read/Extract EIA-608 Closed Captioning</label>
|
||||||
<input type="checkbox" id="readeia608">
|
<input type="checkbox" id="readeia608">
|
||||||
@@ -2007,7 +2043,7 @@
|
|||||||
<input type="checkbox" id="game_of_life">
|
<input type="checkbox" id="game_of_life">
|
||||||
<div class="hiding">
|
<div class="hiding">
|
||||||
<h3>Conway's Game of Life</h3>
|
<h3>Conway's Game of Life</h3>
|
||||||
<p>Simulates <a href="https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life">Conway's Game of Life</a></p>
|
<p>Simulates <a href="https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life" target="_blank">Conway's Game of Life</a></p>
|
||||||
<p><code>ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800</code></p>
|
<p><code>ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800</code></p>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>ffplay</dt><dd>starts the command</dd>
|
<dt>ffplay</dt><dd>starts the command</dd>
|
||||||
@@ -2328,29 +2364,29 @@
|
|||||||
<div class="hiding">
|
<div class="hiding">
|
||||||
<h3>About ImageMagick</h3>
|
<h3>About ImageMagick</h3>
|
||||||
<p>ImageMagick is a free and open-source software suite for displaying, converting, and editing raster image and vector image files.</p>
|
<p>ImageMagick is a free and open-source software suite for displaying, converting, and editing raster image and vector image files.</p>
|
||||||
<p>It's official website can be found <a href="https://www.imagemagick.org/script/index.php">here</a>.</p>
|
<p>It's official website can be found <a href="https://www.imagemagick.org/script/index.php" target="_blank">here</a>.</p>
|
||||||
<p>Another great resource with lots of supplemental explanations of filters is available at <a href="http://www.fmwconcepts.com/imagemagick/index.php">Fred's ImageMagick Scripts</a>.</p>
|
<p>Another great resource with lots of supplemental explanations of filters is available at <a href="http://www.fmwconcepts.com/imagemagick/index.php" target="_blank">Fred's ImageMagick Scripts</a>.</p>
|
||||||
<p>Unlike many other command line tools, ImageMagick isn't summoned by calling its name. Rather, ImageMagick installs links to several more specific commands: <code>convert</code>, <code>montage</code>, and <code>mogrify</code>, to name a few.</p>
|
<p>Unlike many other command line tools, ImageMagick isn't summoned by calling its name. Rather, ImageMagick installs links to several more specific commands: <code>convert</code>, <code>montage</code>, and <code>mogrify</code>, to name a few.</p>
|
||||||
<p class="link"></p>
|
<p class="link"></p>
|
||||||
</div>
|
</div>
|
||||||
<!-- End About ImageMagick -->
|
<!-- End About ImageMagick -->
|
||||||
|
|
||||||
<!-- Resize to width -->
|
<!-- Compare two images -->
|
||||||
<label class="recipe" for="im_resize">Resizes image to specific pixel width</label>
|
<label class="recipe" for="im_compare">Compare two images</label>
|
||||||
<input type="checkbox" id="im_resize">
|
<input type="checkbox" id="im_compare">
|
||||||
<div class="hiding">
|
<div class="hiding">
|
||||||
<h3>Resize to width</h3>
|
<h3>Compare two images</h3>
|
||||||
<p><code>convert <i>input_file.ext</i> -resize 750 <i>output_file.ext</i></code></p>
|
<p><code>compare -metric ae <i>image1.ext image2.ext</i> null:</code></p>
|
||||||
<p>This script will also convert the file format, if the output has a different file extension than the input.</p>
|
<p>Compares two images to each other.</p>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>convert</dt><dd>starts the command</dd>
|
<dt>compare</dt><dd>starts the command</dd>
|
||||||
<dt>-i <i>input_file.ext</i></dt><dd>path and name of the input file</dd>
|
<dt>-metric ae</dt><dd>applies the absolute error count metric, returning the number of different pixels. <a href="https://www.imagemagick.org/script/command-line-options.php#metric" target="_blank">Other parameters</a> are available for image comparison.</dd>
|
||||||
<dt>-resize 750</dt><dd>resizes the image to 750 pixels wide, retaining aspect ratio</dd>
|
<dt><i>image1.ext image2.ext</i></dt><dd>takes two images as input</dd>
|
||||||
<dt><i>output_file.ext</i></dt><dd>path and name of the output file</dd>
|
<dt>null:</dt><dd>throws away the comparison image that would be generated</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<p class="link"></p>
|
<p class="link"></p>
|
||||||
</div>
|
</div>
|
||||||
<!-- ends Resize to width -->
|
<!-- ends Compare two images -->
|
||||||
|
|
||||||
<!-- Create thumbnails -->
|
<!-- Create thumbnails -->
|
||||||
<label class="recipe" for="im_thumbs">Create thumbnails of images</label>
|
<label class="recipe" for="im_thumbs">Create thumbnails of images</label>
|
||||||
@@ -2389,6 +2425,58 @@
|
|||||||
</div>
|
</div>
|
||||||
<!-- ends Create grid of images -->
|
<!-- ends Create grid of images -->
|
||||||
|
|
||||||
|
<!-- Get file signature data -->
|
||||||
|
<label class="recipe" for="im_sig_data">Get file signature data</label>
|
||||||
|
<input type="checkbox" id="im_sig_data">
|
||||||
|
<div class="hiding">
|
||||||
|
<h3>Get file signature data</h3>
|
||||||
|
<p><code>convert -verbose <i>input_file.ext</i> | grep -i signature </code></p>
|
||||||
|
<p>Gets signature data from an image file, which is a hash that can be used to uniquely identify the image.</p>
|
||||||
|
<dl>
|
||||||
|
<dt>convert</dt><dd>starts the command</dd>
|
||||||
|
<dt>-verbose</dt><dd>sets verbose flag for collecting the most data</dd>
|
||||||
|
<dt><i>input_file.ext</i></dt><dd>path and name of image file</dd>
|
||||||
|
<dt>|</dt><dd>pipe the data into something else</dd>
|
||||||
|
<dt>grep</dt><dd>starts the grep command</dd>
|
||||||
|
<dt>-i signature</dt><dd>ignore case and search for the phrase "signature"</dd>
|
||||||
|
</dl>
|
||||||
|
<p class="link"></p>
|
||||||
|
</div>
|
||||||
|
<!-- ends Get file signature data -->
|
||||||
|
|
||||||
|
<!-- Remove exif data -->
|
||||||
|
<label class="recipe" for="im_strip">Removes exif metadata</label>
|
||||||
|
<input type="checkbox" id="im_strip">
|
||||||
|
<div class="hiding">
|
||||||
|
<h3>Remove exif data</h3>
|
||||||
|
<p><code>mogrify -path ./stripped/ -strip *.jpg</code></p>
|
||||||
|
<p>Removes (strips) exif data and moves clean files to a new folder.</p>
|
||||||
|
<dl>
|
||||||
|
<dt>mogrify</dt><dd>starts the command</dd>
|
||||||
|
<dt>-path ./stripped/</dt><dd>sets directory within current directory called "stripped"</dd>
|
||||||
|
<dt>-strip</dt><dd>removes exif metadata</dd>
|
||||||
|
<dt>*.jpg</dt><dd>applies command to all .jpgs in current folder</dd>
|
||||||
|
</dl>
|
||||||
|
<p class="link"></p>
|
||||||
|
</div>
|
||||||
|
<!-- ends Remove exif data -->
|
||||||
|
|
||||||
|
<!-- Resize to width -->
|
||||||
|
<label class="recipe" for="im_resize">Resizes image to specific pixel width</label>
|
||||||
|
<input type="checkbox" id="im_resize">
|
||||||
|
<div class="hiding">
|
||||||
|
<h3>Resize to width</h3>
|
||||||
|
<p><code>convert <i>input_file.ext</i> -resize 750 <i>output_file.ext</i></code></p>
|
||||||
|
<p>This script will also convert the file format, if the output has a different file extension than the input.</p>
|
||||||
|
<dl>
|
||||||
|
<dt>convert</dt><dd>starts the command</dd>
|
||||||
|
<dt>-i <i>input_file.ext</i></dt><dd>path and name of the input file</dd>
|
||||||
|
<dt>-resize 750</dt><dd>resizes the image to 750 pixels wide, retaining aspect ratio</dd>
|
||||||
|
<dt><i>output_file.ext</i></dt><dd>path and name of the output file</dd>
|
||||||
|
</dl>
|
||||||
|
<p class="link"></p>
|
||||||
|
</div>
|
||||||
|
<!-- ends Resize to width -->
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div><!-- ends "content" -->
|
</div><!-- ends "content" -->
|
||||||
@@ -2411,7 +2499,7 @@ Change the above data-target field, the hover-over description, the button text,
|
|||||||
<!-- ends sample example -->
|
<!-- ends sample example -->
|
||||||
|
|
||||||
<footer class="footer">
|
<footer class="footer">
|
||||||
<p>Made with ♥ at <a href="https://wiki.curatecamp.org/index.php/Association_of_Moving_Image_Archivists_%26_Digital_Library_Federation_Hack_Day_2015" target="_blank">AMIA #AVhack15</a>! Contribute to the project via <a href="https://github.com/amiaopensource/ffmprovisr">our GitHub page</a>!</p>
|
<p>Made with ♥ at <a href="https://wiki.curatecamp.org/index.php/Association_of_Moving_Image_Archivists_%26_Digital_Library_Federation_Hack_Day_2015" target="_blank">AMIA #AVhack15</a>! Contribute to the project via <a href="https://github.com/amiaopensource/ffmprovisr" target="_blank">our GitHub page</a>!</p>
|
||||||
</footer>
|
</footer>
|
||||||
</div><!-- ends "grid" -->
|
</div><!-- ends "grid" -->
|
||||||
</body>
|
</body>
|
||||||
|
6
js/js.js
6
js/js.js
@@ -18,4 +18,10 @@ $(document).ready(function() {
|
|||||||
$('#' + id).closest('div').find('.link').append("<small>Link to this command: <a href='https://amiaopensource.github.io/ffmprovisr/index.html"+window.location.hash+"'>https://amiaopensource.github.io/ffmprovisr/index.html"+window.location.hash+"</a></small>");
|
$('#' + id).closest('div').find('.link').append("<small>Link to this command: <a href='https://amiaopensource.github.io/ffmprovisr/index.html"+window.location.hash+"'>https://amiaopensource.github.io/ffmprovisr/index.html"+window.location.hash+"</a></small>");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('#open-all').on("click", function(){
|
||||||
|
$('input[type=checkbox]').each(function(){
|
||||||
|
this.checked = !this.checked;
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
25
readme.md
25
readme.md
@@ -49,10 +49,13 @@ You can read our contributor code of conduct [here](https://github.com/amiaopens
|
|||||||
## Contributors
|
## Contributors
|
||||||
* Gathered using [octohatrack](https://github.com/LABHR/octohatrack)
|
* Gathered using [octohatrack](https://github.com/LABHR/octohatrack)
|
||||||
|
|
||||||
*GitHub Contributors*:
|
*Code Contributors*:
|
||||||
ablwr (Ashley)
|
ablwr (Ashley)
|
||||||
|
bastibeckr (Basti Becker)
|
||||||
|
bturkus
|
||||||
dericed (Dave Rice)
|
dericed (Dave Rice)
|
||||||
edsu (Ed Summers)
|
edsu (Ed Summers)
|
||||||
|
jamessam (Jim Sam)
|
||||||
jfarbowitz (Jonathan Farbowitz)
|
jfarbowitz (Jonathan Farbowitz)
|
||||||
kfrn (Katherine Frances Nagels)
|
kfrn (Katherine Frances Nagels)
|
||||||
kgrons (Kathryn Gronsbell)
|
kgrons (Kathryn Gronsbell)
|
||||||
@@ -62,17 +65,23 @@ pjotrek-b (Peter B.)
|
|||||||
privatezero (Andrew Weaver)
|
privatezero (Andrew Weaver)
|
||||||
retokromer (Reto Kromer)
|
retokromer (Reto Kromer)
|
||||||
rfraimow
|
rfraimow
|
||||||
|
|
||||||
*All Contributors*:
|
*All Contributors*:
|
||||||
ablwr (Ashley)
|
ablwr (Ashley)
|
||||||
audiovisualopen
|
audiovisualopen
|
||||||
|
bastibeckr (Basti Becker)
|
||||||
brainwane (Sumana Harihareswara)
|
brainwane (Sumana Harihareswara)
|
||||||
bturkus
|
bturkus
|
||||||
dericed (Dave Rice)
|
dericed (Dave Rice)
|
||||||
|
drodz11 (Dave Rodriguez)
|
||||||
edsu (Ed Summers)
|
edsu (Ed Summers)
|
||||||
|
EG-tech (Ethan Gates)
|
||||||
|
federicomenaquintero (Federico Mena Quintero)
|
||||||
Fizz24
|
Fizz24
|
||||||
|
GregH18
|
||||||
jamessam (Jim Sam)
|
jamessam (Jim Sam)
|
||||||
jfarbowitz (Jonathan Farbowitz)
|
jfarbowitz (Jonathan Farbowitz)
|
||||||
|
JonnyTech
|
||||||
jronallo (Jason Ronallo)
|
jronallo (Jason Ronallo)
|
||||||
kellyhaydon (metacynic)
|
kellyhaydon (metacynic)
|
||||||
kfrn (Katherine Frances Nagels)
|
kfrn (Katherine Frances Nagels)
|
||||||
@@ -80,16 +89,19 @@ kgrons (Kathryn Gronsbell)
|
|||||||
kieranjol (Kieran O'Leary)
|
kieranjol (Kieran O'Leary)
|
||||||
llogan (Lou)
|
llogan (Lou)
|
||||||
mulvya
|
mulvya
|
||||||
|
nkrabben (Nick Krabbenhoeft)
|
||||||
pjotrek-b (Peter B.)
|
pjotrek-b (Peter B.)
|
||||||
privatezero (Andrew Weaver)
|
privatezero (Andrew Weaver)
|
||||||
retokromer (Reto Kromer)
|
retokromer (Reto Kromer)
|
||||||
rfraimow
|
rfraimow
|
||||||
richardpl (Paul B Mahol)
|
richardpl (Paul B Mahol)
|
||||||
|
ross-spencer (Ross Spencer)
|
||||||
todrobbins (Tod Robbins)
|
todrobbins (Tod Robbins)
|
||||||
|
|
||||||
Repo: amiaopensource/ffmprovisr
|
Repo: amiaopensource/ffmprovisr
|
||||||
GitHub Contributors: 12
|
Code Contributors: 15
|
||||||
All Contributors: 22
|
All Contributors: 30
|
||||||
|
Last updated: 2018-04-22 (4:2:2 Day)
|
||||||
|
|
||||||
## AVHack Team
|
## AVHack Team
|
||||||
|
|
||||||
@@ -99,6 +111,7 @@ All Contributors: 22
|
|||||||
|
|
||||||
## Sister projects
|
## Sister projects
|
||||||
|
|
||||||
|
[The Cable Bible](https://amiaopensource.github.io/cable-bible/): A Guide to Cables and Connectors Used for Audiovisual Tech
|
||||||
[Script Ahoy](http://dd388.github.io/crals/): Community Resource for Archivists and Librarians Scripting
|
[Script Ahoy](http://dd388.github.io/crals/): Community Resource for Archivists and Librarians Scripting
|
||||||
[sourcecaster](https://datapraxis.github.io/sourcecaster/): helps you use the command line to work through common challenges that come up when working with digital primary sources.
|
[sourcecaster](https://datapraxis.github.io/sourcecaster/): helps you use the command line to work through common challenges that come up when working with digital primary sources.
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user