staging.inyokaproject.org

FFmpeg

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels FFmpeg.

eishailiga

Avatar von eishailiga

Anmeldungsdatum:
31. Oktober 2006

Beiträge: 5401

Habe vor einigen Tagen "Installation des aktuellen ffmpeg, yasm und x264 unter Ubuntu 8.04" in der Sektion FFmpeg/Kompilieren hinzugefügt...

/edit

Die Anleitung zum Updaten der kompilierten Versionen des x264 und ffmpeg hinzugefügt. ( Ubuntu 8.04/8.10/9.04 )

20100801

Anmeldungsdatum:
3. Januar 2007

Beiträge: 1050

Wobei x264 ./configure mit --enable-shared zwingend konfiguriert werden sollte, weil sonst ffmpeg x264 gar nicht aufnehmen kann.

eishailiga

Avatar von eishailiga

Anmeldungsdatum:
31. Oktober 2006

Beiträge: 5401

Klappt aber wohl dennoch...ffmpeg wird doch mit --enable-libx264 konfiguriert oder was meinst du ?

ffmpeg -formats | grep x264
FFmpeg version SVN-r19560, Copyright (c) 2000-2009 Fabrice Bellard, et al.
  configuration: --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac --enable-libfaad --enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab
  libavutil     50. 3. 0 / 50. 3. 0
  libavcodec    52.32. 0 / 52.32. 0
  libavformat   52.37. 0 / 52.37. 0
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0. 7. 1 /  0. 7. 1
  built on Aug  2 2009 12:33:51, gcc: 4.3.3
  EV    libx264         libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10

20100801

Anmeldungsdatum:
3. Januar 2007

Beiträge: 1050

Ich meine , wenn du x264 svn aktuell hältst. Ein statischer Build wird meines Wissens nicht in ffmpeg eingebunden.

Es gibt ja zwei Möglichkeiten mit x264/h264 zu wandeln. Einmal durch ffmpeg intern und einmal übergibt ffmpeg an x264.

Frage : welche libx264 ist denn eingebunden, die Standard Ubuntu 65, oder die aktuelle 68.

eishailiga

Avatar von eishailiga

Anmeldungsdatum:
31. Oktober 2006

Beiträge: 5401

Lt. Versionsabfrage ist hier x264 0.68.1195 aktiv...

20100801

Anmeldungsdatum:
3. Januar 2007

Beiträge: 1050

Das ist die aktuellste.

x264 --help
x264 core:68 r1195 5d75a9b
Syntax: x264 [options] -o outfile infile [widthxheight]

Infile can be raw YUV 4:2:0 (in which case resolution is required),
  or YUV4MPEG 4:2:0 (*.y4m),
  or AVI or Avisynth if compiled with AVIS support (no).
Outfile type is selected by filename:
 .264 -> Raw bytestream
 .mkv -> Matroska
 .mp4 -> MP4 if compiled with GPAC support (yes)

Selber kompiliert, oder PPA? Per Checkinstall, oder nach Debian Art?

Falls selber kompiliert, erzeugst du eine, oder drei Dateien?

libx264-68_0.svn20090731-0.68~ppa1~jaunty1_i386.deb

libx264-dev_0.svn20090731-0.68~ppa1~jaunty1_i386.deb

x264_0.svn20090731-0.68~ppa1~jaunty1_i386.deb

Was mich interessieren würde, wenn du mal Zeit hast, eine Video-Datei direkt in x264 wandeln und einmal mit ffmpeg.

Was sagt dann mediainfo?

Beide Dateien sind dann mit x264 core:68 r1195 gewandelt, da ja ffmpeg an x264 übergibt?

Selbst einige der Entwickler von x264 bei doom9 empfehlen shared.

eishailiga

Avatar von eishailiga

Anmeldungsdatum:
31. Oktober 2006

Beiträge: 5401

Ich verstehe deine Frage nicht...wenn ich unter Ubuntu den x264 deinstalliere und mir den aktuellsten x264 kompiliere und den dann installiere, dann ist dieser auch aktiv.

Wie ich den aktuellsten x264 installiere, ob mit install, checkinstall oder per dpkg, ist eher sekundär...

20100801

Anmeldungsdatum:
3. Januar 2007

Beiträge: 1050

./configure --help --enable-shared build libx264.so

Was passiert bei static?

Wenn keine libx264.so neu gebaut wird, kann ffmpeg immer nur die alte Version von libx264.so einbinden?

Das wäre dann kein kompletter Neubau von x264. Oder sehe ich das falsch?

ffmpeg configure --help --enable-libx264

Das bezieht sich doch auf die libx264.so?

eishailiga

Avatar von eishailiga

Anmeldungsdatum:
31. Oktober 2006

Beiträge: 5401

Die wird natürlich neu gebaut...liegt in usr/lib...als libx264.so.revisionsnummer...z.B.: libx264.so.65 oder libx264.so.68...

20100801

Anmeldungsdatum:
3. Januar 2007

Beiträge: 1050

Was ist dann der Unterschied zwischen shared und static bei x264?

eishailiga

Avatar von eishailiga

Anmeldungsdatum:
31. Oktober 2006

Beiträge: 5401

Das was generell gültig ist...

Shared heißt, daß die Libraries nur symbolisch angesprochen und nicht in das ausführbare Programm eingebunden werden. Die Libraries werden dann dynamisch beim Programmstart geladen und eingebunden.Der Vorteil hierbei ist. daß das ausführbare Programm meist klein ist und die Library auch nur einmal auf der Festplatte und im Arbeitsspeicher Platz verbrauchen. Man braucht allerdimgs die Version der Library auf der Festplatte, gegen die das Originalprogramm gelinkt wurde.

Static heißt, daß die aus der Library benötigten Funktionen extrahiert und in das Programm eingebunden werden, dieses wird dadurch größer. Startet man mehrere Instanzen des Programms gleichzeitig, so verbraucht die Library immer wieder neuen Speicher weil sie ja immer wieder mitgeladen wird. Der Vorteil ist , daß das Programm sofort lauffähig ist. (bzw.sein sollte)

20100801

Anmeldungsdatum:
3. Januar 2007

Beiträge: 1050

Danke! Das heißt, für ffmpeg spielt es keine Rolle ob x264 statisch oder shared ist. Das ist mir neu. Was dazu gelernt.

eishailiga

Avatar von eishailiga

Anmeldungsdatum:
31. Oktober 2006

Beiträge: 5401

FFmpeg ist im eigentlichen Sinn kein Programm, was man sonst unter Programm versteht, sondern es ist das FFmpeg-Projekt. Das ist eine Ansammlung diverser Bibliotheken, wie z.B.: libavformat oder libavcodec. Das "Programm" ffmpeg stellt nur die Funktionenen der Bibliotheken nach außen dar...

20100801

Anmeldungsdatum:
3. Januar 2007

Beiträge: 1050

Nochmal Danke für Info.

Offtopic

Gilt dann gleiches auch für Avidemux, speziell die neue 2.5 Version, oder sogar generell.

In Version 2.5 wird x264,etc als Plugin gehandelt und muss separat eingebunden werden, sprich kompiliert.

Siehe hier

eishailiga

Avatar von eishailiga

Anmeldungsdatum:
31. Oktober 2006

Beiträge: 5401

Nein, Avidemux ist ein Programm wo du zusätzliche Bibliotheken als Plugins einbinden kannst...