<!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>