<!doctype html>
<html lang="de">
		<meta charset="utf-8">

		<title>Einführung in Linux</title>

		<meta name="description" content="YALC - Yet Another Linux Course ">
		<meta name="author" content="Daniel Schubert">

		<meta name="apple-mobile-web-app-capable" content="yes">
		<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">

		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

		<link rel="stylesheet" href="css/reveal.css">
		<link rel="stylesheet" href="css/theme/league.css" id="theme">
		
		<link rel="icon" href="img/openlogo-nd-25.png" type="img/png">

		<!-- Theme used for syntax highlighting of code -->
		<link rel="stylesheet" href="lib/css/zenburn.css">

		<!-- Printing and PDF exports -->
		<script>
			var link = document.createElement( 'link' );
			link.rel = 'stylesheet';
			link.type = 'text/css';
			link.href = window.location.search.match( /print-pdf/gi ) ? 'css/print/pdf.css' : 'css/print/paper.css';
			document.getElementsByTagName( 'head' )[0].appendChild( link );
		</script>
		<style type="text/css">
			.reveal img{ max-height: 60vh}
		</style>

	</head>

	<body>
		<div class="reveal">
			<!-- Any section element inside of this container is displayed as a slide -->
			<div class="slides">

				<section data-transition="slide" data-background="#4d7e65" data-background-transition="zoom">
					<h1>LINUX</h1>
					<h3>Das universelle Betriebssystem</h3>
					<p>Eine Einführung - Teil 16
					<p> <small>Deutsche Angestellten Akademie</small> </p>
					<aside class="notes">
						Frage: Fragen zur letzten Stunde?
					</aside>
				</section>

				<section  data-transition="slide" data-background="#b5533c" data-background-transition="convex" ><h3  >Linux und Multimedia</h3></section>

				<section  data-transition="slide" data-background="img/trianglify.svg" data-background-transition="convex"> <h3 style="color: lightgrey; text-shadow: 1px 1px black">Bildbearbeitung</h3></section>

				<section>
						<h5>the Gimp</h5>
						<p>GNU Image Manipulation Programm</p>
						<img src="img/2019-03-02-124423_1366x768_scrot.png">
				</section>

				<section>
						<h5>Darktable</h5>
						<img src="img/2019-03-02-124938_1366x768_scrot.png">
				</section>

				<section>
						<h5>Inkscape</h5>
						<p>Vektorbilder </p>
						<img src="img/2019-03-02-125227_1366x768_scrot.png">
				</section>				

        <section>
          <p><a href="https://imagemagick.org/index.php" target="_blank">ImageMagick</a>
          	<pre><code> sudo apt install imagemagick</code></pre>
          <ul>
            <li>convert / mogrify
          </ul> 

        	<pre><code class="bash">convert bild.jpg out.gif </code></pre>
          <ul>
            <li>montage</li>
          </ul> 
          <pre><code>montage *.jpg out.jpg</code></pre>

          <ul>	
            <li>import</li>
          </ul> 
          <pre><code>import screen.jpg</code></pre>
        </section>

        <section>

            <pre><code class="bash" contenteditable>
# komprimiert ein jpg ohne sichtbare Qualitätsverluste
# ( zb für Webseiten Deployment )
convert -strip -interlace Plane -sampling-factor 4:2:0 \
	-quality 85% quelle.jpg result.jpg

# das selbe, aber rekursiv und destruktiv
find . -name "*.jpg" -exec mogrify -strip -interlace Plane \
	-sampling-factor 4:2:0 -quality 85% {} \;

# Bild beschneiden und zentrieren
convert input.jpg -crop '1900x1400+0+0'\
	-gravity Center output.jpg
          </code></pre>
        </section>

        <section>
        	<pre style="width: 80vw; font-size: .5em"><code class="bash">convert -size 320x90 canvas:none -stroke snow4 -size 1x90 -tile gradient:white-snow4 \
  -draw 'roundrectangle 16, 5, 304, 85 20,40' +tile -fill snow \
  -draw 'roundrectangle 264, 5, 304, 85  20,40' -tile gradient:chartreuse-green \
  -draw 'roundrectangle 16,  5, 180, 85  20,40' -tile gradient:chartreuse1-chartreuse3 \
  -draw 'roundrectangle 140, 5, 180, 85  20,40' +tile -fill none \
  -draw 'roundrectangle 264, 5, 304, 85 20,40' -strokewidth 2 \
  -draw 'roundrectangle 16, 5, 304, 85 20,40' \( +clone -background snow4 \
  -shadow 80x3+3+3 \) +swap -background none -layers merge \( +size -pointsize 90 \
  -strokewidth 1 -fill red label:'50 %' -trim +repage \( +clone -background firebrick3 \
  -shadow 80x3+3+3 \) +swap -background none -layers merge \) -insert 0 -gravity center \
  -append -background white -gravity center -extent 320x200 cylinder_shaded.png</code></pre>
        </section>

        <section>Ein Bild verschlüsseln
        	<pre><code class="bash">convert rose.jpg -encipher passphrase.txt rose.png</code></pre>
        	<pre><code class="bash"># ein anders Bild als Passwort
convert rose.jpg -encipher smiley.gif rose.png</code></pre>

        	<pre><code class="bash"># entschlüsseln
convert rose.png -decipher smiley.gif rose.jpg</code></pre>

					<a href="https://imagemagick.org/Usage/transform/#encipher">ImageMagick Hilfe Seite</a>
        </section>

        <section>
        	<span style="color: orange">Aufgabe:</span>
        	<ul>
        		<li>Bereitet <a href="https://www.schubertdaniel.de/linuxkurs/bilder.zip">diese Bilder</a> vor für eine Bildergallerie. </li>
        		<li>Die Bilder sollen nicht grösser als 1200x800px sein.</li>
        		<li>Die Bilder sollen nicht beschnitten werden.</li>
        		<li>Die Metadaten sollen entfernt werden.</li>
        		<li>Veröffentlicht die Bilder in einer Gallerie auf eurer Wordpress Seite.</li>
        	</ul>

        	Hinweis:
        	<pre><code>convert input.jpg -resize '1200x800' output.jpg</code></pre>
        </section>

				<section>
        	screenshots mit scrot
        	<pre><code class="bash">~$ scrot -d 5 '%Y-%m-%d_$wx$h.png'</code></pre>
        </section>
        
        <section  data-transition="slide" data-background="img/trianglify.svg" data-background-transition="convex"> <h3 style="color: lightgrey; text-shadow: 1px 1px black">Video Editing / Transkodierung</h3></section>

        <section>
          <h4>Einfacher Videoschnitt</h4>
          <ul>
            <li class="fragment">OpenShot
            	<div><img src="img/openshot-screen.jpg"></div></li>
            <li class="fragment">Pitivi</li>
            <li class="fragment">KDEnlive</li>
          </ul>  
         </section>
         <section> 
          <h4 class="fragment">Anspruchsvoller Videoschnitt</h4>
          <ul>  
            <li class="fragment">Blender - eigentl. 3D-Rendering <ul><li><a href="https://www.youtube.com/watch?v=YE7VzlLtp-4">Big Buck Bunny bei YouTube</a></li>
            	<li><a href="https://www.blenderguru.com/articles/27-inspiring-blender-animations-that-will-make-your-jaw-drop">Blender Videos</a></li></ul>
            <li class="fragment">Lightworks</li>
          </ul>
        </section>

        <section>
        	<h3>Ausflug</h3>
        	Video Container
        </section>

        <section>
        	Ein Video Container beinhält
        	<ul>
        		<li class="fragment ">Eine Videospur</li>
        		<li class="fragment ">eine oder mehrere Audiospuren</li>
        		<li class="fragment ">Untertitel</li>
        		
        	</ul>
        </section>

        <section>
        	Die Videospur ist meist kodiert mit 
        	<ul>
        		<li class="fragment ">mpeg-1</li>
        		<li class="fragment ">mpeg-4</li>
        		<li class="fragment ">mpeg4-part10: h264 / h265</li>
        		<li class="fragment ">vp8 / vp9 </li>
        		<li class="fragment ">theora</li>
        	</ul>
        </section>

        <section>
        	Die Audiospur ist meist kodiert mit
        	<p>
        	<ul>
        		<li class="fragment ">mp3</li>
        		<li class="fragment ">aac</li>
        		<li class="fragment ">ogg vorbis</li>
        		<li class="fragment ">opus</li>
        	</ul>
        </section>

        <section>
        	Zusammengesetzt ergeben sich Container
        	<ul>
        		<li class="fragment ">mp4 : h264 + mp3 ( <a href="https://de.wikipedia.org/wiki/MP4">Wikipedia</a> )</li>
        		<li class="fragment ">webm : vp9 + opus ( <a href="https://de.wikipedia.org/wiki/WebM">Wikipedia</a> )</li>
        		<li class="fragment ">ogv : theora + ogg ( <a href="https://de.wikipedia.org/wiki/Ogg">Wikipedia</a> )</li>
        		<li class="fragment ">mehr <a href="https://de.wikipedia.org/wiki/Containerformat">Wikipedia</a></li>
        	</ul>
        </section>
        <section>
          <h4>ffmpeg</h4>
          <h5>Das Schweizer Taschenmesser der Audio / Video Konvertierung</h5>

          <pre><code class="bash"># einfache Transkodierung
ffmpeg -i videoi.avi video.mpg

# DVD Rip
ffmpeg -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k \ 
       -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.mpg

# h264 kodiertes mp4 zur Darstellung im Browser
ffmpeg -i infile.avi -vf scale=1200:800  -b:v 600k \ 
	-b:a 128k -c:v libx264 -preset medium outfile.mp4 

# mp3 aus wav 
ffmpeg -i infile.wav -b:a 192k outfile.mp3

          </code></pre>
        </section>

        <section>
        	<pre><code class="bash" contenteditable> 
# produziert 3 Videos; benötigt für Webseiten
# damit alle Browser d. Video abspielen

# video: h264; audio: aac ( default )
ffmpeg  -i infile -b:v 600k -b:a 128k -c:v libx264 out.mp4

# video: vp9; audio: opus ( default )
ffmpeg  -i infile -b:v 600k -b:a 128k out.webm

# video: theora; audio: ogg vorbis
ffmpeg -i infile -codec:v libtheora -qscale:v 7 \ 
	-codec:a libvorbis -qscale:a 5 out.ogv
					</code></pre>
        </section>

        <section>
        	<ul>
        		<li>Handbrake</li>
        		<li>libdvdcss</li>
        	</ul>
        </section>

        <section>
        	<span style="color: orange">Aufgabe:</span>
        	<ul>
        		<li>installiert ffmpeg</li>
        		<li>erstellt aus <a href="/beispiele/16/infile.m4v">DIESEM</a> Video einen 10sec langen mp4 Video-Snippet.</li>
        		<li>erstellt aus <a href="/beispiele/16/wav-file.zip">DIESEM</a> Wav ein MP3 mit 192kB Bitrate.</li>
        		<li>erstellt aus der Wav-Datei eine flac Datei.</li>
        		<li>vergleicht die Grössen.</li>
        		<li>Warum ist es nicht sinnvoll aus einem mp3 ein wav zu machen?</li>
        	</ul>

        		Hinweis:
        	<pre><code class="bash" contenteditable># 10sec langes video:
ffmpeg -t 10 -i .....  </code></pre>
        </section>

        <section  data-transition="slide" data-background="img/Jaromir-Chalabala1.jpg" data-background-transition="convex"> <h3 style="color: lightgrey; text-shadow: 1px 1px black">Audio Production</h3></section>
        <section>
        	Audio unter Linux ist .... interessant.
        	<p>Meist Kombination aus Pulseaudio / ALSA
        	<p>PulseAudio -> Middleware
        	<p>ALSA -> Treiber
        	<p>Für Echtzeit-Audio-Verarbeitung ( möglichst geringe Latenzen ) muss die Kombination Jack / ALsa konfiguriert werden

        	<aside class="notes">alsamixer</aside>
        </section>


        <section>Audacity
        	<div><img src="img/audacity.png"></div></section>

        <section>
        	Ardour - Professionelles Recording
        	<div><img src="img/ardour.jpg"></div>
				</section>

				<section>
						Guitarix - Virtueller Gitarrenamp
						<div><img src="img/guitarix.jpg"></div>
				</section>						

				<section>
					<p><a href="http://kxstudio.linuxaudio.org/index.php">Plugins und andere Tools</a>
				</section>

				<section>
						Jack
						<div><img src="img/QjackctlConnectionsForm.png"></div>
        </section>

        <section>
          <h4>Abspielprgramme</h4>
          <ul>
            <li class="fragment">VLC</li>
            <li class="fragment">Mplayer</li>
            <li class="fragment">Rhythmbox</li>
            <li class="fragment">mocp</li>
          </ul>
        </section>

        <section>
        	<h4>Multimedia Distributionen</h4>
        	<ul>
        		<li><a href="http://www.bandshed.net/avlinux/">avlinux</a></li>
        		<li><a href="http://ubuntustudio.org">UbuntuStudio</a></li>
        	</ul>
        </section>

        <section>
        	<h4>Gaming</h4>
        	<ul>
        		<li class="fragment ">Steam</li>
        		<li class="fragment ">GOG</li>
        		<li class="fragment ">viele Open Source Spiele
        				<ul>
        					<li>Sauerbraten</li>
        					<li>Assault Cube</li>
        					<li>Zero-K</li>
        					<li>0 A.D.</li>
        					<li>Flightgear</li>
        				</ul>
        		</li>
        	</ul>


        </section>
			</div>
		</div>

		<script src="lib/js/head.min.js"></script>
		<script src="js/reveal.js"></script>

		<script>

			// More info https://github.com/hakimel/reveal.js#configuration
			Reveal.initialize({
				controls: true,
				progress: true,
				history: true,
				center: true,

				transition: 'slide', // none/fade/slide/convex/concave/zoom

				// More info https://github.com/hakimel/reveal.js#dependencies
				dependencies: [
					{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
					{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
					{ src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
					{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
					{ src: 'plugin/search/search.js', async: true },
					{ src: 'plugin/zoom-js/zoom.js', async: true },
					{ src: 'plugin/notes/notes.js', async: true }
				]
			});

		</script>

	</body>
</html>