
Ich verwende ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg developers
. Ich muss eine MP4-Datei in das OGG-Format konvertieren. Ich verwende Mac OS X und habe bisher Folgendes ausprobiert:
ffmpeg -i sample_mpeg4.mp4 -acodec vorbis -vcodec libtheora -f ogg output.ogv
Ich bekomme:Unknown encoder 'libtheora'
ffmpeg -i sample_mpeg4.mp4 -acodec libvorbis -vcodec --enable-libtheora output.ogv
Ich bekomme:Unknown encoder '--enable-libtheora'
ffmpeg -i sample_mpeg4.mp4 -acodec libvorbis -vcodec libtheora -f ogv output.ogv
Ich bekomme:
[NULL @ 0x7f81bb00f800] Requested output format 'ogv' is not a suitable output format
output.ogv: Invalid argument
ffmpegtheora
ist keine Option, da es nicht auf dem Server installiert werden kann.
Antwort1
In Ihrer FFmpeg-Version fehlen die erforderlichen Encoder libtheora
für Theora-Video und libvorbis
Vorbis-Audio.
Sie können diese Encoder nur hinzufügen, indem Sie entweder
- Kompilieren mit FFmpeg oder
- Installieren einer ausführbaren Datei, die sie bereits bündelt.
Für Sie wäre es am einfachsten, eine statische Version herunterzuladen vondie FFmpeg-Download-Seite. Sie alle werden mit libtheora
und geliefert libvorbis
, unabhängig vom Betriebssystem, für das sie gebaut wurden.
Anschließend müssen Sie das Download-Archiv entpacken und die ffmpeg
enthaltene Binärdatei ausführen. Die korrekte Syntax wäre:
ffmpeg -i in.mp4 -c:v libtheora -c:a libvorbis out.ogv
Wenn Sie die Qualität für Audio oder Video ändern möchten, können Sie die Bitrate ändern, z. B. mit -b:v 1M
oder -b:a 192k
. Spielen Sie mit diesen Werten und verwenden Sie je nach Qualitäts- oder Dateigrößenbeschränkungen eine höhere oder niedrigere Bitrate.
Sie können auch VBR (konstante Qualität) mit verwenden -q:v
, wobei die Werte zwischen 0 und 10 liegen (je höher, desto besser), wobei 7 empfohlen wird. Die Audioqualität kann mit eingestellt werden -q:a
, ebenfalls mit Werten zwischen 0 und 10, wobei 4 empfohlen wird und etwa 128 kBit/s entspricht.
Beachten Sie, dass --enable-libtheora
es sich hierbei um eine Konfigurationsoption handelt und diese beim Anrufen nicht funktioniert ffmpeg
.
Antwort2
VerwendenSelbstgebrautesPaket-Manager
Installieren Sie Homebrew in der Befehlszeile
$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
Installieren Sie ffmpeg mit Libtheora-Unterstützung
$ brew install ffmpeg --with-theora --with-libvorbis
Weitere Optionen sind hier aufgeführt
$ brew options ffmpeg
Hoffe, es hilft anderen oder meinem zukünftigen Ich ;)
Antwort3
--enable-libtheora sollte beim Erstellen von ffmpeg aus dem Quellcode verwendet werden, nicht beim Ausführen des Programms. Sie sollten versuchen, ffmpeg neu zu erstellen (mitdie neuste Quelle natürlich) und Hinzufügen von Unterstützung für libtheora während der Konfiguration (./configure --enable-libtheora usw....)
Wenn Sie Hilfe beim Erstellen aus dem Quellcode benötigen, gibt es eine Menge Material auf Google, aber es läuft (für Sie) darauf hinaus, die Bibliotheken zu aktivieren, die Sie benötigen. Sie können sehenHierund _http://jungels.net/articles/ffmpeg-howto.html für den Anfang.