Compare commits

...

10 Commits

Author SHA1 Message Date
Ashley
782b1a992a Merge pull request #396 from amiaopensource/extract_recipes
simplify recipe extraction
2019-09-26 14:54:35 -04:00
Reto Kromer
9f6e6846e0 change h3 to h5 2019-09-26 18:07:51 +02:00
Reto Kromer
c4bd6a9191 add h5 2019-09-26 18:04:55 +02:00
Katherine Frances Nagels
8b48abf751 Merge pull request #394 from amiaopensource/kn/stream-mapping
Add note to Stream Mapping entry about mapping with a failsafe
2019-08-07 07:42:46 +12:00
kfrn
54aab85937 Add note to Stream Mapping entry about mapping with a failsafe
Following Ben Turkus' comment here:
https://github.com/amiaopensource/ffmprovisr/issues/383#issuecomment-516847829
2019-08-03 13:10:04 +12:00
kfrn
51ca7a4200 Revert "Add note to Stream Mapping entry about mapping with a failsafe"
This reverts commit 76c3fe1f88.
2019-08-02 19:25:27 +12:00
kfrn
76c3fe1f88 Add note to Stream Mapping entry about mapping with a failsafe
Following Ben Turkus' comment here:
https://github.com/amiaopensource/ffmprovisr/issues/383#issuecomment-516847829
2019-08-02 19:21:58 +12:00
Katherine Frances Nagels
839d50111e Merge pull request #393 from amiaopensource/kn/remove-unnecessary-command
Remove MKV → MP4 command
2019-08-01 07:32:51 +12:00
Reto Kromer
a6dd9c203c update recipe list 2019-07-31 16:50:39 +02:00
kfrn
3402d968a7 Remove MKV → MP4 command
Addressing user feedback received by Andrew Weaver (@privatezero).

When the source file is ffv1 in MKV, the command will fail on the `-c:v copy` flag, since MP4s can't house ffv1.
Therefore, the command is misleading, and has limited value from an archival perspective.

We already have a basic rewrap command (which includes a note addressing the possibility of stream/wrapper incompability), so I think our bases are covered with that.

See https://github.com/amiaopensource/ffmprovisr/issues/392
2019-07-31 23:37:53 +12:00
3 changed files with 10 additions and 30 deletions

View File

@@ -105,7 +105,7 @@ h2 {
margin: 6px 0px 12px 0px;
}
h3 {
h3, h5 {
font-size: 1.5em;
}

View File

@@ -72,7 +72,7 @@
<label class="recipe" for="basic-structure">Basic structure of an FFmpeg command</label>
<input type="checkbox" id="basic-structure">
<div class="hiding">
<h3>Basic structure of an FFmpeg command</h3>
<h5>Basic structure of an FFmpeg command</h5>
<p>At its basis, an FFmpeg command is relatively simple. After you have installed FFmpeg (see instructions <a href="https://avpres.net/FFmpeg/#ch1" target="_blank">here</a>), the program is invoked simply by typing <code>ffmpeg</code> at the command prompt.</p>
<p>Subsequently, each instruction that you supply to FFmpeg is actually a pair: a flag, which designates the <em>type</em> of action you want to carry out; and then the specifics of that action. Flags are always prepended with a hyphen.</p>
<p>For example, in the instruction <code>-i <em>input_file.ext</em></code>, the <code>-i</code> flag tells FFmpeg that you are supplying an input file, and <code>input_file.ext</code> states which file it is.</p>
@@ -111,7 +111,7 @@
<label class="recipe" for="codec-defaults">Codec defaults</label>
<input type="checkbox" id="codec-defaults">
<div class="hiding">
<h3>Codec Defaults</h3>
<h5>Codec Defaults</h5>
<p>Unless specified, FFmpeg will automatically set codec choices and codec parameters based off of internal defaults. These defaults are applied based on the file type used in the output (for example <code>.mov</code> or <code>.wav</code>).</p>
<p>When creating or transcoding files with FFmpeg, it is important to consider codec settings for both audio and video, as the default options may not be desirable in your particular context. The following is a brief list of codec defaults for some common file types:</p>
<ul>
@@ -161,7 +161,7 @@
<label class="recipe" for="stream-mapping">Stream mapping</label>
<input type="checkbox" id="stream-mapping">
<div class="hiding">
<h3>Stream mapping</h3>
<h5>Stream mapping</h5>
<p>Stream mapping is the practice of defining which of the streams (e.g., video or audio tracks) present in an input file will be present in the output file. FFmpeg recognizes five stream types:</p>
<ul>
<li><code>a</code> - audio</li>
@@ -178,8 +178,12 @@
<li><code>-map 0:0 -map 0:2</code> means take the first and third streams from the first input file.</li>
<li><code>-map 0:1 -map 1:0</code> means take the second stream from the first input file and the first stream from the second input file.</li>
</ul>
<p>To map <em>all</em> streams in the input file to the output file, use <code>-map 0</code>. However, note that not all container formats can include all stream types: for example, .mp4 cannot contain timecode.</p>
<p>When no mapping is specified in an ffmpeg command, the default for video files is to take just one video and one audio stream for the output: other stream types, such as timecode or subtitles, will not be copied to the output file by default. If multiple video or audio streams are present, the best quality one is automatically selected by FFmpeg.</p>
<p>To map <em>all</em> streams in the input file to the output file, use <code>-map 0</code>. However, note that not all container formats can include all stream types: for example, .mp4 cannot contain timecode.</p>
<h4>Mapping with a failsafe</h4>
<p>To safely process files that may or may not contain given a type of stream, you can add a trailing <code>?</code> to your map commands: for example, <code>-map 0:a?</code> instead of <code>-map 0:a</code>.</p>
<p>This makes the map optional: audio streams will be mapped over if they are present in the file—but if the file contains no audio streams, the transcode will precede as usual, minus the audio stream mapping. Without adding the trailing <code>?</code>, FFmpeg will exit with an error on that file.</p>
<p>This is especially recommended when batch processing video files: it ensures that all files in your batch will be transcoded, whether or not they contain audio streams.</p>
<p>For more information, check out the FFmpeg wiki <a href="https://trac.ffmpeg.org/wiki/Map" target="_blank">Map</a> page, and the official FFmpeg <a href="https://ffmpeg.org/ffmpeg.html#Advanced-options" target="_blank">documentation on <code>-map</code></a>.</p>
<p class="link"></p>
</div>
@@ -213,28 +217,6 @@
</div>
<!-- End Basic rewrap command -->
<!-- MKV to MP4 -->
<label class="recipe" for="mkv_to_mp4">Convert Matroska (MKV) to MP4</label>
<input type="checkbox" id="mkv_to_mp4">
<div class="hiding">
<h3>MKV to MP4</h3>
<p><code>ffmpeg -i <em>input_file</em>.mkv -c:v copy -c:a aac <em>output_file</em>.mp4</code></p>
<p>This will convert your Matroska (MKV) files to MP4 files.</p>
<dl>
<dt>ffmpeg</dt><dd>starts the command</dd>
<dt>-i <em>input_file</em></dt><dd>path and name of the input file<br>
The extension for the Matroska container is <code>.mkv</code>.</dd>
<dt>-c:v copy</dt><dd>copies the video stream without re-encoding it</dd>
<dt>-c:a aac</dt><dd>re-encodes the audio stream using the AAC audio codec<br>
Note that sadly MP4 cannot contain sound encoded by a PCM (Pulse-Code Modulation) audio codec.<br>
For silent videos you can replace <code>-c:a aac</code> by <code>-an</code>, which means that there will be no audio track in the output file.</dd>
<dt><em>output_file</em></dt><dd>path and name of the output file<br>
The extension for the MP4 container is <code>.mp4</code>.</dd>
</dl>
<p class="link"></p>
</div>
<!-- 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">
@@ -789,7 +771,7 @@
</dl>
<p>It's also possible to specify the crop position by adding the x and y coordinates representing the top left of your cropped area to your crop filter, as such:</p>
<p><code>ffmpeg -i <em>input_file</em> -vf "crop=<em>width</em>:<em>height</em>[:<em>x_position</em>:<em>y_position</em>]" <em>output_file</em></code></p>
<h3>Examples</h3>
<h5>Examples</h5>
<p>The original frame, a screenshot of the SMPTE colorbars:</p>
<img class="sample-image" src="img/crop_example_orig.png" alt="VLC screenshot of Maggie Cheung">
<p>Result of the command <code>ffmpeg -i <em>smpte_colorsbars.mov</em> -vf "crop=500:500" <em>output_file</em></code>:</p>

View File

@@ -1,7 +1,5 @@
# Basic rewrap command
ffmpeg -i input_file.ext -c copy -map 0 output_file.ext
# Convert Matroska (MKV) to MP4
ffmpeg -i input_file.mkv -c:v copy -c:a aac output_file.mp4
# Rewrap DV video to .dv file
ffmpeg -i input_file -f rawvideo -c:v copy output_file.dv
# Transcode to deinterlaced Apple ProRes LT