This repository has been archived on 2022-03-27. You can view files and clone it, but cannot push or open issues/pull-requests.
presis/revealjs/ffmpeg_englisch/index.html

142 lines
5.9 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>FFmpeg</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../node_modules/reveal.js/css/reveal.css">
<link rel="stylesheet" href="../node_modules/reveal.js/css/print/pdf.css" media="print">
<link rel="stylesheet" href="../node_modules/reveal.js/css/theme/black.css">
<link rel="stylesheet" href="../node_modules/highlight.js/styles/solarized-dark.css">
<link href="https://fonts.googleapis.com/css?family=Fira+Sans|Fira+Mono" rel="stylesheet">
<style>
body * {
font-family: "Fira Sans", Roboto, Helvetica, sans-serif !important;
}
code {
font-family: "Fira Mono", "Roboto Mono", monospace !important;
}
</style>
<script>
var link = document.createElement( 'link' );
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match( /print-pdf/gi ) ? '../node_modules/reveal.js/css/print/pdf.css' : '../node_modules/reveal.js/css/print/paper.css';
document.getElementsByTagName( 'head' )[0].appendChild( link );
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-background-image="img/cinema.jpg">
<h1>FFmpeg</h1>
Muldimedia manipulation made easy
<aside class="notes">
<ul>
<li>Id like to tell you about…</li>
<li>You might not know it</li>
</ul>
</aside>
</section>
<section>
<section data-background-image="img/matrix.jpg">
<h2>What is FFmpeg?</h2>
<aside class="notes">
<ul>
<li>You might ask yourself:</li>
<li>Why do I have to know something about ffmpeg?</li>
<li>Very popular video sites like YouTube use it</li>
<li>Im going to start with a quick introduction to ffmpeg</li>
</ul>
</aside>
</section>
<section data-background-image="img/cat.jpg">
<h3>A/V manipulation</h3>
<ul>
<li class="fragment fade-down">one <em>format</em> to another</li>
<li class="fragment fade-down">reduce the file size (and quality)</li>
<li class="fragment fade-down">draw text on some fancy graphics while playing music</li>
</ul>
<aside class="notes">
<ul>
<li>main purpose: Manipulation</li>
<li>manipulation is not bad!</li>
<li>can be as simple as: one format to another</li>
<li>no time to explain, why format does not fit well</li>
<li>more compex case: reduce the file size and obviously the quality</li>
<li>another compex case: draw text on some fancy graphics while playing music</li>
</ul>
</aside>
</section>
<section data-background-image="img/construction.jpg">
<h3>practical examples</h3>
<pre class="fragment"><code class="bash" data-trim>
ffmpeg -i foo.mp4 bar.mp4
</code></pre>
<pre class="fragment"><code class="bash" data-trim>
ffmpeg -i foo.mp4 -c:v libx264 -crf 28 \
-vf "scale=-2:720" -c:a aac -b:a 128k bar.mp4
</code></pre>
<pre class="fragment"><code class="bash" data-trim>
ffmpeg -i in.mp4 -b:v 1800k -minrate 900k -maxrate 2160k \
-tile-columns 2 -g 240 -threads 8 -deadline good \
-crf 31 -c:v libvpx-vp9 -c:a libopus -ac 2 -vbr on \
-b:a 96k -c:s copy -map 0 -pass 1 -cpu-used 1 out.mkv
</code></pre>
<pre class="fragment"><code class="bash" data-trim>
ffmpeg -i in.mp4 -b:v 1800k -minrate 900k -maxrate 2160k \
-tile-columns 4 -g 240 -threads 8 -deadline good \
-crf 31 -c:v libvpx-vp9 -c:a libopus -ac 2 -vbr on \
-b:a 96k -c:s copy -map 0 -pass 2 -cpu-used 1 out.mkv
</code></pre>
<aside class="notes">
<ul>
<li>so lets get our hands dirty</li>
<li>the first is mostly quite useless</li>
<li>the second one basically reduces the file size</li>
<li>the big ones are used in my production setup</li>
<li>they change the format of the video and optimize it to achieve smaller sizes with only little quality loss</li>
</ul>
</aside>
</section>
</section>
<section data-background-video="img/facepalm.mp4">
<h3>End</h3>
<aside class="notes">
<ul>
<li>so finally, we are at the end</li>
<li>Youll most likely say: “Ill never use ffmpeg”</li>
</ul>
</aside>
</section>
</div>
</div>
<script src="../node_modules/reveal.js/lib/js/head.min.js"></script>
<script src="../node_modules/reveal.js/js/reveal.js"></script>
<script>
Reveal.initialize({
controls: true,
progress: true,
history: true,
center:true,
width: 1280,
height: 800,
transition: 'slide', // none, fade, slide, convex, concave, zoom
dependencies: [
// Syntax highlight for <code> elements
{ src: '../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
// Zoom in and out with Alt+click
{ src: '../node_modules/reveal.js/plugin/zoom-js/zoom.js', async: true },
// Speaker notes
{ src: '../node_modules/reveal.js/plugin/notes/notes.js', async: true },
]
});
</script>
</body>
</html>