##[[Vorlage(Ausbaufähig, "FFmpeg ist ab [:Natty:Ubuntu 11.04] nicht mehr Bestandteil der offiziellen Paketquellen, da man stattdessen auf [:Libav:] setzt. Eine aktuelle Anleitung zum Kompilieren enthält der [https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu Compilation Guide Ubuntu] {en}. Eine weitere Hilfe kann [github:pyke369/sffmpeg:sffmpeg] {en} sein.")]] [[Vorlage(Archiviert )]] [[Vorlage(Fortgeschritten)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:Pakete installieren: Installation von Programmen] [:Editor: Einen Editor öffnen] [:Paketinstallation_DEB: Ein einzelnes Paket installieren] [:Programme_kompilieren: Pakete aus dem Quellcode erstellen] }}} [[Inhaltsverzeichnis()]] Die Installation von [:FFmpeg:] bzw. Libav aus dem Quellcode ist etwas aufwändiger, aber auf diese Weise können neuere Versionen und mehr Codecs installiert werden. = Vorbereitung = Die zum Kompilieren notwendigen Pakete installiert man z.B.im Terminal[1]: {{{#!vorlage Builddeps ffmpeg }}} Außerdem braucht man folgende Pakete[2]: {{{#!vorlage Paketinstallation subversion, optional git-core, optional, ab [:Maverick Meerkat:Ubuntu 10.10] durch das Paket '''git''' bereitgestellt checkinstall, optional yasm, optional libxfixes-dev, Ubuntu 10.04 }}} Zusätzlich werden noch die Entwickler-Pakete der in den Binärpaketen nicht enthaltenen Codecs benötigt: {{{#!vorlage Paketinstallation libmp3lame-dev, multiverse libfaac-dev, multiverse libfaad-dev, multiverse libxvidcore-dev, multiverse libx264-dev, multiverse libopencore-amrnb-dev libopencore-amrwb-dev }}} = Quellcode herunterladen = == Aus den Paketquellen == Der Quellcode kann dann in einem Terminal[1] mit dem folgenden Befehl heruntergeladen werden: {{{#!vorlage Befehl apt-get source ffmpeg }}} Diese Version sollte man wählen, wenn man keine neuere Version von FFmpeg braucht, sondern Codecs verwenden will, die standardmäßig nicht aktiviert sind, ohne eine andere Paketquelle freizuschalten. Der Vorteil ist, dass die Erstellung der Pakete wie bei den offiziellen erfolgt und sich diese daher gut in das System einfügen. Durch den apt-get Befehl entsteht ein Verzeichnis '''ffmpeg-x.x.x''' (z.B. bei Ubuntu 10.04 LTD = ffmpeg-0.5.1) bzw. '''libav-x.x.x.''' ab [:Natty:11.04 Natty]. == Von der FFmpeg-Projektseite == Wer eine neuere Version haben will, kann über die [http://ffmpeg.org/download.html Download-Seite] {dl} des FFmpeg-Projekts oder über die [http://libav.org/download.html Download-Seite] {dl} des Libav-Projekts den Quellcode als bzip2- oder gzip-Archiv herunterladen. Noch aktueller ist die Version im Versionskontrollsystem des Projektes. Der Download von FFmpeg mittels Git erfolgt im Terminal durch Ausführung des Befehls: {{{#!vorlage Befehl git clone git://git.videolan.org/ffmpeg.git }}} Der Download von Libav erfolgt durch Ausführung des Befehls: {{{#!vorlage Befehl git clone git://git.libav.org/libav.git }}} = Aus Ubuntu-Paketquellen kompilieren = Einige Codecs sind zwar im Quellcode vorhanden, werden aber standardmäßig nicht aktiviert. Dieser Abschnitt zeigt, wie man Ubuntu-Pakete erstellt, in denen diese Codecs aktiviert sind. Vor dem Kompilieren muss man noch die Version von FFmpeg anpassen, damit das Paket bei der Aktualisierung nicht mit einer Version aus den Paketquellen überschrieben wird. Dazu wechselt man im Terminal zunächst in eines der folgenden Verzeichnisse: * Bis einschließlich [:Maverick:10.10 Maverick]: '''ffmpeg-x.x.x''' (das "x.x.x" bezeichnet die Version) * Ab [:Natty Narwhal:11.04 Natty]: '''libav-x.x.x''' Mit Hilfe eines Editors [3] wird nun der Inhalt der Datei '''debian/changelog''' geändert. Die Datei sollte danach ungefähr so aussehen: {{{ ffmpeg (4:0.5.1-1ubuntu1+private1) lucid; urgency=low * Rebuild -- Peter Silie Thu, 10 Jun 2010 12:34:56 +0100 ffmpeg (4:0.5.1-1ubuntu1) lucid; urgency=low * merge from debian. remaining changes: - don't disable encoders - don't build against libfaad, libdirac and libopenjpeg (all in universe) -- Reinhard Tartler Thu, 04 Mar 2010 10:34:37 +0100 ... }}} Durch den Zusatz `+private1` wird erreicht, dass die Version größer ist als die in der Paketquelle, aber kleiner als eventuelle (Sicherheits-)Updates (in dem Fall sollte FFmpeg wieder neu erstellt werden). {{{#!vorlage Hinweis Bitte genauestens auf das Format des neuen Eintrags in der '''changelog'''-Datei achten, da sonst der nachfolgende Build fehlschlägt! }}} Anschließend führt man folgenden Befehl aus: {{{#!vorlage Befehl dpkg-buildpackage -b }}} Mit der Ausführung dieses Befehls, der einige Zeit in Anspruch nimmt, werden im übergeordneten Verzeichnis einige '''.deb'''-Pakete erstellt. Wer lediglich die FFmpeg-Anwendungen verwenden möchte, braucht als nächstes nur das Paket '''ffmpeg_*.deb''' zu installieren [4]. Wer dagegen auch die FFmpeg-Bibliotheken braucht, muss auch die anderen .'''deb'''-Pakete installieren. Aufgrund der Abhängigkeiten empfiehlt es sich, das Paket '''libavcodec-dev_*.deb''' vor dem Paket '''libavformat-dev_*.deb''' zu installieren. = Aus Quellcode von der Homepage kompilieren = Zuerst sollten alle zu FFmpeg gehörenden Pakete deinstalliert werden, z.B. mit {{{#!vorlage Befehl sudo apt-get purge libavcodec52 libavcodec-extra-52 libavdevice52 libavdevice-extra-52 libavfilter0 libavfilter-extra-0 libavformat52 libavformat-extra-52 libavutil49 libavutil-extra-49 libpostproc51 libpostproc-extra-51 libswscale0 libswscale-extra-0 }}} Abhängig von der benutzten Ubuntuversion kann es notwendig sein, bestimmte Encoder-Bibliotheken ebenfalls neu zu kompilieren. Diese müssen kompiliert und installiert werden, bevor man mit der Kompilierung von FFmpeg weitermacht. Siehe dazu den Abschnitt [#Codecs-und-Hilfsmittel-kompilieren Codecs und Hilfsmittel kompilieren]. Alternativ kann man auch für Codecs, die man nicht braucht, die entsprechende Option bei dem Befehl `configure` weglassen. Unter allen Ubuntu-Versionen ist davon betroffen: * x264 * libvpx (VP8) Um den Quellcode zu konfigurieren, führt man folgenden Befehl aus: {{{#!vorlage Befehl ./configure --enable-avfilter --enable-avfilter-lavf --enable-vdpau \ --enable-bzlib --enable-libgsm --enable-libschroedinger \ --enable-libspeex --enable-libtheora --enable-libvorbis \ --enable-pthreads --enable-zlib --disable-stripping --enable-runtime-cpudetect \ --enable-libmp3lame --enable-libfaac --enable-nonfree --enable-gpl \ --enable-postproc --enable-swscale --enable-x11grab --enable-libfaad \ --enable-libxvid --enable-libx264 --enable-libopencore-amrnb \ --enable-version3 --enable-libopencore-amrwb --enable-version3 \ --enable-libdc1394 --enable-libvpx }}} Dann standardmäßig kompilieren[5], mit `checkinstall` ggf. {{{#!vorlage Befehl sudo checkinstall --pkgname=ffmpeg --pkgversion="4:VERSION+REVISION~checkinstall" --default }}} `VERSION` ist dabei die aktuelle Versionsnummer von FFmpeg. Man findet sie in der Datei '''Changelog''' oder mit dem Befehl {{{#!vorlage Befehl sed -n 's/^version \([^:<]*\):.*$/\1/p'