Konvertieren Sie Videos von .mp4 in .ogg

7

Ich benutze ffmpeg version 0.11.1 Copyright (c) 2000-2012 the FFmpeg developers. Ich muss eine Datei .mp4 in das .ogg-Format konvertieren. Ich bin unter Mac OS X und habe dies bisher versucht:

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.

Unbekannt
quelle
Was ist mit ffmpeg -i file.mp4 file.ogg? Dies funktioniert auf meiner Debian Wheezy Box, nicht sicher über Mac OS X.
user49740
Nee. Es funktioniert nicht
Unbekannt
Dann ist es ein OSX-spezifisches Problem. Sie haben höchstwahrscheinlich nicht die erforderlichen Codecs.
user49740
1
Wenn Sie in Zukunft FFmpeg-Fragen stellen, geben Sie bitte die vollständige, ungeschnittene Befehlsausgabe an, nicht nur die Fehlermeldungen, die Sie für relevant halten.
Slhck

Antworten:

11

In Ihrer FFmpeg-Version fehlen die erforderlichen Encoder libtheorafür Theora-Video und libvorbisVorbis-Audio.

Sie können diese Encoder nur von beiden hinzufügen

  • Kompilieren mit FFmpeg oder
  • Installieren einer ausführbaren Datei, die sie bereits bündelt.

Für Sie ist es am einfachsten, eine statische Version von der FFmpeg-Download-Seite herunterzuladen . Sie werden alle mit libtheoraund libvorbisgeliefert, unabhängig vom Betriebssystem, für das sie entwickelt wurden.

Sie müssen dann das Download-Archiv extrahieren und einfach die enthaltene ffmpegBinärdatei ausführen . Die richtige 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 1Moder -b:a 192k. Spielen Sie mit diesen Werten und verwenden Sie je nach Qualität oder Dateigröße 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 (höher ist besser), wobei 7 empfohlen wird. Die Audioqualität kann -q:amit Werten von 0 bis 10 eingestellt werden, wobei 4 empfohlen wird und ungefähr 128 kBit / s entspricht.

Beachten Sie, dass dies --enable-libtheoraeine Konfigurationsoption ist und beim Aufrufen nicht funktioniert ffmpeg.

slhck
quelle
9

Verwenden Sie den Homebrew- Paketmanager

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 aufgelistet

$ brew options ffmpeg

Hoffe es hilft anderen oder zukünftigen mir;)

elmariofredo
quelle
5
Möglicherweise benötigen Sie auch Folgendes --with-libvorbis:brew install ffmpeg --with-theora --with-libvorbis
Adam Taylor
1
Sie können auch reinstallBrew verwenden, um ffmpeg --with-theora --with-libvorbis
pixelearth
0

--enable-libtheora sollte beim Erstellen von ffmpeg aus dem Quellcode verwendet werden, nicht beim Versuch, das Programm auszuführen. Sie sollten versuchen, ffmpeg neu zu erstellen (natürlich unter Verwendung der neuesten Quelle ) und während der Konfiguration Unterstützung für libtheora hinzuzufügen (./configure --enable-libtheora usw. ....)

Wenn Sie Hilfe beim Erstellen aus dem Quellcode benötigen, gibt es bei Google viele Informationen, die jedoch (für Sie) die benötigten Bibliotheken aktivieren. Sie finden sie hier und unter _http: //jungels.net/articles/ffmpeg-howto.html für Starter.

MDMoore313
quelle
Normalerweise muss nicht aus dem Quellcode erstellt werden, da dies unter OS X eine ziemliche Aufgabe sein kann. Paketmanager wie Homebrew vereinfachen diese Aufgabe, aber das OP kann auch nur einen statischen Build von der FFmpeg-Downloadseite verwenden.
Slhck