Commit adaa6a15 authored by Gerion Entrup's avatar Gerion Entrup
Browse files

restructurize

parent 22d149de
......@@ -52,9 +52,9 @@
\hyphenation{ge-hasht}
\title{FFmpeg}
\subtitle{Multimediadateien verarbeiten}
\subtitle{Effekte mit Filtern}
\author{Gerion Entrup\\gerion.entrup@flump.de}
\date[21.03.2015]{21. März 2015\\
\date[05.11.2016]{05. November 2016\\
~\\
\includegraphics[width=1.2cm]{pics/by-sa}\\
\tiny{lizensiert unter \href{https://creativecommons.org/licenses/by-sa/4.0/}{CC-BY-SA~4.0}}}
......@@ -121,53 +121,22 @@ http://krul.finf.uni-hannover.de/$\sim$gerion/ffmpeg/
\end{frame}
\section{Einleitung}
\begin{frame}{Sie lernen hier FFmpeg kennen!}
„Ich habe mit meinem Camcorder lauter Videos vom Typ .vid aufgenommen. Wie kann ich die abspielen?“\\
„Wie kann ich eine AVI-Datei so konvertieren, dass mein Fernseher die abspielt?“
\pause
\begin{enumerate}
\item Aufbau von FFmpeg
\item Einführung in Multimediagrundlagen
\item Bedienung
\end{enumerate}
\end{frame}
\section{FFmpeg}
\begin{frame}{Aufbau I}
FFmpeg ist ersteinmal ein Framework:
\begin{itemize}
\item libavdevice
\item libavcodec
\item libavformat
\item libavfilter
\item \dots
\end{itemize}
\end{frame}
\begin{frame}{Aufbau II}
FFmpeg hat aber auch Enduser-Programme:
\begin{itemize}
\item ffmpeg
\item ffplay
\item ffprobe
\item \dots
\end{itemize}
\end{frame}
\begin{frame}{FFmpeg vs. Libav}
\begin{itemize}
\item Libav 2010 entstanden
\item aus User-Sicht in erster Linie verwirrend
\item ffmpeg und avconv
\item ffplay und avplay
\end{itemize}
\begin{frame}{Agenda}
\begin{enumerate}
\item Installation(?)
\item Grundlagen Multimedia
\item Grundlagen FFmpeg
\item Pause
\item Einfache Filterketten
\item Pause
\item Komplexe Filterketten
\end{enumerate}
\end{frame}
\begin{frame}[fragile]{Installation}
Alle Befehle als Root (z.B. sudo davorschreiben)!
Alle Befehle als Root (z.\,B. sudo davorschreiben)!
Unter Debian Sid (Unstable) und Ubuntu 15.04:
Ab Debian Stretch (Testing) und ab Ubuntu 15.04:
\begin{lstlisting}
$ apt-get install ffmpeg
\end{lstlisting}
......@@ -186,36 +155,11 @@ http://krul.finf.uni-hannover.de/$\sim$gerion/ffmpeg/
\end{frame}
\begin{frame}[fragile]{Installation: Debian Special}
Unter Debian Jessie (Testing):
Nachziehen aus Sid (Unstable)
\begin{lstlisting}
$ apt-get install -t sid ffmpeg
\end{lstlisting}
Unter Debian Wheezy (Stable)
den sources.list hinzufügen:
\begin{lstlisting}[basicstyle=\footnotesize\sffamily]
deb https://people.debian.org/~rbalint/ppa/xbmc-ffmpeg \
xbmc-ffmpeg-wheezy-backports/
deb http://http.debian.net/debian wheezy-backports main contrib non-free
\end{lstlisting}
Und dann:
\begin{lstlisting}
$ apt-get update
$ apt-get install ffmpeg
\end{lstlisting}
\end{frame}
Unter Debian Jessie (Stable):
\begin{frame}[fragile]{Installation: Ubuntu Special}
Unter Ubuntu 14.04 und 14.10:
Nachziehen aus den Backports (ggf. in den Quellen nachtragen)
\begin{lstlisting}
$ add-apt-repository ppa:mc3man/trusty-media
\end{lstlisting}
Unter Ubuntu 14.10 muss in der Datei /etc/apt/sources.list das utopic in trusty umgeändert werden.
Danach:
\begin{lstlisting}
$ apt-get update
$ apt-get install ffmpeg
$ apt-get install -t jessie-backports ffmpeg
\end{lstlisting}
\end{frame}
......@@ -247,13 +191,8 @@ http://krul.finf.uni-hannover.de/$\sim$gerion/ffmpeg/
\includegraphics[width=\textwidth]{pics/container-interleaved.pdf}
\end{column}
\end{columns}
\end{frame}
% ffmpeg -i INPUT
% ffmpeg -formats
\subsection{Codecs}
\begin{frame}{Codecs}
Dort findet die eigentliche Komprimierung statt. Speziell auf Art der Daten angepasst.
......@@ -266,8 +205,37 @@ http://krul.finf.uni-hannover.de/$\sim$gerion/ffmpeg/
„In welchem Format ist das?“
\end{frame}
% ffmpeg -i INPUT
% ffmpeg -codecs
\section{FFmpeg}
\begin{frame}{Aufbau I}
FFmpeg ist ersteinmal ein Framework:
\begin{itemize}
\item libavdevice
\item libavcodec
\item libavformat
\item libavfilter
\item \dots
\end{itemize}
\end{frame}
\begin{frame}{Aufbau II}
FFmpeg hat aber auch Enduser-Programme:
\begin{itemize}
\item ffmpeg
\item ffplay
\item ffprobe
\item \dots
\end{itemize}
\end{frame}
\begin{frame}{FFmpeg vs. Libav}
\begin{itemize}
\item Libav 2010 entstanden
\item aus User-Sicht in erster Linie verwirrend
\item ffmpeg und avconv
\item ffplay und avplay
\end{itemize}
\end{frame}
\subsection{Workflow}
......@@ -399,103 +367,6 @@ http://krul.finf.uni-hannover.de/$\sim$gerion/ffmpeg/
\end{block}
\end{frame}
% Inputparameter
% Outputparameter Streamauswahl
\subsection{Outputparameter}
\begin{frame}{Outputparameter}
Beispiele:
\begin{itemize}
%Auch wieder von Teilnehmer erklärt
\item \lstinline$-c:0 copy$
\item \lstinline$-c:a:1 copy$
\item \lstinline$-c:v copy$
\end{itemize}
\end{frame}
\section{Container}
\begin{frame}{Übersicht: Container}
\begin{itemize}
\item Matroska (mkv, mka, mks, \dots)
\item MP4
\item ogg
\item AVI
\end{itemize}
\end{frame}
\section{Codecs}
\begin{frame}{Übersicht: Codecs}
\begin{itemize}
\item H.264/MPEG-4 AVC
\item H.265/HEVC (ab FFmpeg 2.2)
\item FFv1
\item MPEG-1 Layer 3 (MP3)
\item Opus
\item Flac
\end{itemize}
\end{frame}
%vorführen
%copy, libx264, libx265, libmp3lame, libopus, rawvideo, rawaudio
\begin{frame}{Aufgabe}
Benutzen Sie das Kommando von vorhin und erweitern Sie es: Die Videospur soll mit H.264 recodiert werden, die Tonspuren mit Mp3. Die Untertitelspuren sollen übernommen werden.
\end{frame}
\subsection{Videocodecs}
\begin{frame}{Kodiermodi und Irrtümer}
\begin{block}{\textbf{C}onstant \textbf{R}ate \textbf{F}actor}
gleiche Qualität
\end{block}
\begin{block}{Bitrate}
gleiche Bitrate
\end{block}
\begin{block}{Twopass}
beste Qualität für feste Größe
\end{block}
\end{frame}
\begin{frame}{Intraframecodierung}
\begin{itemize}
\item Menschen nehmen Helligkeiten deutlich besser wahr als Farben, also werden Farbinformation weggelassen.
\item Grobe Konturen sind wichtiger als feine Abstufungen (Kante vs. Himmel)
\item Entropiecodierung: Grob gesagt sowas wie zip (verlustlos!).
\end{itemize}
\end{frame}
\begin{frame}{Interframecodierung}
Nur Unterschiede abspeichern.
\vspace{1cm}
\includegraphics[width=\textwidth]{pics/b-frame-sequence.pdf}\\
\tiny{CC-BY-SA 3.0 von encodingwissen.de}
\end{frame}
%h264: crf, preset
%i, p und b-frames in den statistiken zeigen
%h265: crf, preset
\subsection{Audiocodecs}
\begin{frame}{Kodiermodi}
\begin{block}{\textbf{V}ariable \textbf{B}it\textbf{R}ate}
gleiche Qualität
\end{block}
\begin{block}{\textbf{C}onstant \textbf{B}it\textbf{R}ate}
gleiche Bitrate
\end{block}
\end{frame}
%mp3 und opus vorstellen
\begin{frame}{Aufgabe}
Benutzen Sie das Kommando von vorhin und erweitern Sie es: Finden Sie möglichst gute Parameter für die Codecs. Probieren Sie andere Codecs aus. Das Ziel ist es, die Datei möglichst klein zu machen bei „gleicher“ subjektiver Qualität.
\end{frame}
\section{Filter}
%ffmpeg-filter manpage
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment