EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

avconv – Online in der Cloud

Führen Sie avconv im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl avconv, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


ffmpeg - ffmpeg-Videokonverter

ZUSAMMENFASSUNG


ffmpeg [globale_optionen] {[input_file_options] -ich Eingabedatei} ... {[Ausgabedateioptionen]
Ausgabedatei} ...

BESCHREIBUNG


ffmpeg ist ein sehr schneller Video- und Audiokonverter, der auch Live-Audio/Video aufnehmen kann
Quelle. Es kann auch zwischen beliebigen Abtastraten konvertieren und die Größe von Videos im Handumdrehen ändern
mit einem hochwertigen Polyphasenfilter.

ffmpeg liest aus einer beliebigen Anzahl von Eingabe-"Dateien" (das können normale Dateien, Pipes,
Netzwerkstreams, Greifgeräte usw.), die durch die Option "-i" angegeben werden, und schreibt in eine
beliebige Anzahl von Ausgabe-"Dateien", die durch einen einfachen Ausgabedateinamen angegeben werden.
Alles, was auf der Kommandozeile gefunden wird und nicht als Option interpretiert werden kann, wird berücksichtigt
ein Ausgabedateiname sein.

Jede Eingabe- oder Ausgabedatei kann prinzipiell beliebig viele Streams unterschiedlicher
Typen (Video/Audio/Untertitel/Anhang/Daten). Die zulässige Anzahl und/oder Arten von Streams
kann durch das Containerformat eingeschränkt sein. Auswählen, welche Streams von welchen Eingängen gehen
in die die Ausgabe entweder automatisch oder mit der Option "-map" erfolgt (siehe Stream
Auswahlkapitel).

Um in Optionen auf Eingabedateien zu verweisen, müssen Sie deren Indizes verwenden (0-basiert). ZB der erste
Eingabedatei ist 0, die zweite ist 1, usw. In ähnlicher Weise werden Streams innerhalb einer Datei mit bezeichnet
ihre Indizes. ZB "2:3" bezieht sich auf den vierten Stream in der dritten Eingabedatei. Siehe auch
das Kapitel Stream-Bezeichner.

In der Regel werden Optionen auf die nächste angegebene Datei angewendet. Daher ist die Ordnung
wichtig, und Sie können dieselbe Option mehrmals in der Befehlszeile verwenden. Jeder
Das Vorkommen wird dann auf die nächste Eingabe- oder Ausgabedatei angewendet. Ausnahmen von dieser Regel
sind die globalen Optionen (zB Ausführlichkeitsstufe), die zuerst angegeben werden sollten.

Mischen Sie keine Eingabe- und Ausgabedateien – geben Sie zuerst alle Eingabedateien und dann alle Ausgabedateien an.
Mischen Sie auch keine Optionen, die zu verschiedenen Dateien gehören. Alle Optionen gelten NUR für die
nächste Eingabe- oder Ausgabedatei und werden zwischen den Dateien zurückgesetzt.

· So stellen Sie die Videobitrate der Ausgabedatei auf 64 kbit/s ein:

ffmpeg -i Eingabe.avi -b:v 64k -bufsize 64k Ausgabe.avi

· So erzwingen Sie die Bildrate der Ausgabedatei auf 24 fps:

ffmpeg -i Eingabe.avi -r 24 Ausgabe.avi

· Um die Bildrate der Eingabedatei (nur gültig für Rohformate) auf 1 fps zu erzwingen und
die Bildrate der Ausgabedatei auf 24 fps:

ffmpeg -r 1 -i Eingabe.m2v -r 24 Ausgabe.avi

Die Formatoption wird möglicherweise für Roheingabedateien benötigt.

DETAILLIERTE BESCHREIBUNG


Der Transcodierungsprozess in ffmpeg für jeden Ausgang kann wie folgt beschrieben werden
Diagramm:

_______ ______________
| | | |
| Eingabe | demuxer | codierte Daten | Decoder
| Datei | -------> | Pakete | -----+
|_______| |______________| |
v
_________
| |
| entschlüsselt |
| Rahmen |
| _________ |
________ ______________ |
| | | | |
| Ausgabe | <-------- | codierte Daten | <----+
| Datei | Muxer | Pakete | Encoder
|________| |______________|

ffmpeg ruft die Bibliothek libavformat (die Demuxer enthält) auf, um Eingabedateien zu lesen und zu erhalten
Pakete, die codierte Daten von ihnen enthalten. Wenn mehrere Eingabedateien vorhanden sind, ffmpeg
versucht, sie synchronisiert zu halten, indem der niedrigste Zeitstempel in jedem aktiven Eingabestream verfolgt wird.

Codierte Pakete werden dann an den Decoder übergeben (es sei denn, streamcopy wird für die
Stream, siehe weiter für eine Beschreibung). Der Decoder erzeugt unkomprimierte Frames (raw
Video/PCM-Audio/...), die durch Filterung weiterverarbeitet werden können (siehe nächster Abschnitt). Nach
Filterung werden die Frames an den Encoder übergeben, der sie kodiert und kodiert ausgibt
Pakete. Schließlich werden diese an den Muxer übergeben, der die codierten Pakete in die
Ausgabedatei.

Filterung
Vor dem Codieren, ffmpeg kann rohe Audio- und Videoframes mit Filtern aus dem
libavfilter-Bibliothek. Mehrere verkettete Filter bilden einen Filtergraphen. ffmpeg unterscheidet
zwischen zwei Arten von Filtergraphen: einfach und komplex.

Einfacher Filtergrafiken

Einfache Filtergraphen sind solche, die genau einen Eingang und Ausgang haben, beide gleich
Typ. Im obigen Diagramm können sie durch einfaches Einfügen eines zusätzlichen Schrittes dargestellt werden
zwischen Dekodierung und Kodierung:

_________ ______________
| | | |
| entschlüsselt | | kodierte Daten |
| Rahmen |\ _ | Pakete |
|__________| \ /||______________|
\ __________ /
einfach _\|| | / Encoder
Filtergrafik | gefiltert |/
| Rahmen |
|__________|

Einfache Filtergraphen werden mit dem Per-Stream konfiguriert -Filter Option (mit -vf und -N
Aliase für Video bzw. Audio). Ein einfacher Filtergraph für Video kann gesucht werden
Beispiel wie folgt:

_______ _____________ _______ ________
| | | | | | | |
| Eingabe | ---> | deinterlacen | ---> | Skala | ---> | Ausgabe |
|_______| |______________| |_______| |________|

Beachten Sie, dass einige Filter die Frame-Eigenschaften ändern, aber nicht den Frame-Inhalt. zB die "fps"
Filter im obigen Beispiel ändert die Anzahl der Frames, berührt aber nicht den Frame
Inhalt. Ein weiteres Beispiel ist der Filter "setpts", der nur Zeitstempel setzt und sonst
übergibt die Frames unverändert.

Complex Filtergrafiken

Komplexe Filtergraphen sind solche, die nicht einfach als lineare Verarbeitung beschrieben werden können
Kette auf einen Stream angewendet. Dies ist zum Beispiel der Fall, wenn der Graph mehr als
eine Eingabe und/oder Ausgabe, oder wenn der Ausgabestromtyp sich von der Eingabe unterscheidet. Sie können sein
dargestellt mit folgendem Diagramm:

_________
| |
| Eingabe 0 |\ __________
|__________| \ | |
\ _________ /| Ausgang 0 |
\ | | / |__________|
_________ \| komplex | /
| | | |/
| Eingang 1 |---->| filtern |\
|__________| | | \ __________
/| Grafik | \ | |
/ | | \| Ausgang 1 |
_________ / |_________| |__________|
| | /
| Eingang 2 |/
| _________ |

Komplexe Filtergraphen werden mit dem -filter_komplex Möglichkeit. Beachten Sie, dass dies
Option ist global, da ein komplexer Filtergraph naturgemäß nicht eindeutig sein kann
einem einzelnen Stream oder einer Datei zugeordnet.

Das -lavfi Option ist äquivalent zu -filter_komplex.

Ein triviales Beispiel für einen komplexen Filtergraph ist der "Overlay"-Filter, der zwei Video
Eingänge und einen Videoausgang, der ein Video über das andere enthält. Sein Audio
Gegenstück ist der "amix"-Filter.

Strom Kopieren
Stream Copy ist ein Modus, der ausgewählt wird, indem der Parameter "copy" an die -Codec Möglichkeit. Es
macht ffmpeg Lassen Sie den Decodierungs- und Codierungsschritt für den angegebenen Stream aus, sodass dies nur der Fall ist
demuxen und muxen. Es ist nützlich, um das Containerformat zu ändern oder zu ändern
Metadaten auf Containerebene. Das obige Diagramm vereinfacht sich in diesem Fall so:

_______ ______________ ________
| | | | | |
| Eingabe | demuxer | kodierte Daten | Muxer | Ausgabe |
| Datei | -------> | Pakete | -------> | Datei |
|_______| |______________| |________|

Da keine Dekodierung oder Kodierung stattfindet, ist es sehr schnell und es gibt keinen Qualitätsverlust.
In einigen Fällen kann es jedoch aufgrund vieler Faktoren nicht funktionieren. Das Anwenden von Filtern ist
offensichtlich auch unmöglich, da Filter auf unkomprimierte Daten arbeiten.

STREAM SELECTION


Standardmäßig ffmpeg enthält nur einen Stream jedes Typs (Video, Audio, Untertitel) vorhanden
in den Eingabedateien und fügt sie jeder Ausgabedatei hinzu. Es wählt das "Beste" von jeder Basis aus
nach folgenden Kriterien: für Video der Stream mit der höchsten Auflösung, für
Audio, es ist der Stream mit den meisten Kanälen, für Untertitel ist es der erste Untertitel
Strom. Für den Fall, dass mehrere Streams des gleichen Typs gleich viel bewerten, wird der Stream mit
der niedrigste Index wird gewählt.

Sie können einige dieser Standardeinstellungen deaktivieren, indem Sie die Optionen "-vn/-an/-sn" verwenden. Für vollständiges Handbuch
control verwenden Sie die Option "-map", die die gerade beschriebenen Standardeinstellungen deaktiviert.

OPTIONAL


Alle numerischen Optionen akzeptieren, wenn nicht anders angegeben, eine Zeichenfolge, die a . darstellt
Zahl als Eingabe, gefolgt von einem der SI-Einheitenpräfixe, zum Beispiel: 'K',
'M' oder 'G'.

Wenn 'i' an das SI-Einheitenpräfix angehängt wird, wird das vollständige Präfix als a . interpretiert
Einheitenpräfix für binäre Vielfache, die auf Potenzen von 1024 statt Potenzen von . basieren
1000. Das Anhängen von 'B' an das Präfix der SI-Einheit multipliziert den Wert mit 8. Dies ermöglicht die Verwendung von
zum Beispiel: 'KB', 'MiB', 'G' und 'B' als Nummernsuffixe.

Optionen, die keine Argumente annehmen, sind boolesche Optionen und setzen den entsprechenden Wert
zu wahr. Sie können auf false gesetzt werden, indem dem Optionsnamen "no" vorangestellt wird. Zum Beispiel
die Verwendung von "-nofoo" setzt die boolesche Option mit dem Namen "foo" auf false.

Strom Bezeichner
Einige Optionen werden pro Stream angewendet, zB Bitrate oder Codec. Stream-Bezeichner werden verwendet, um
Geben Sie genau an, zu welchem/n Stream(s) eine bestimmte Option gehört.

Ein Stream-Bezeichner ist eine Zeichenfolge, die im Allgemeinen an den Optionsnamen angehängt und von diesem getrennt wird
durch einen Doppelpunkt. Beispiel: "-codec:a:1 ac3" enthält den Stream-Spezifizierer "a:1", der dem
zweiten Audiostream. Daher würde es den ac3-Codec für den zweiten Audiostream auswählen.

Ein Stream-Bezeichner kann mehrere Streams zuordnen, sodass die Option auf alle angewendet wird
Sie. ZB passt der Stream-Specifier in "-b:a 128k" zu allen Audio-Streams.

Ein leerer Stream-Bezeichner stimmt mit allen Streams überein. Beispiel: "-codec copy" oder "-codec:
copy" würde alle Streams ohne Neucodierung kopieren.

Mögliche Formen von Stream-Bezeichnern sind:

stream_index
Entspricht dem Stream mit diesem Index. ZB "-threads:1 4" würde die Threadanzahl für . setzen
der zweite Stream zu 4.

stream_type[:stream_index]
stream_type ist einer der folgenden: 'v' oder 'V' für Video, 'a' für Audio, 's' für
Untertitel, 'd' für Daten und 't' für Anhänge. 'v' entspricht allen Videostreams, 'V'
Gleicht nur Videostreams ab, denen keine Bilder, Video-Thumbnails oder Cover angehängt sind
Künste. Wenn stream_index gegeben ist, dann stimmt es mit der Stream-Nummer überein stream_index von diesem
Typ. Andernfalls entspricht es allen Streams dieses Typs.

p:Programm-ID[:stream_index]
If stream_index gegeben ist, dann stimmt es mit dem Stream mit der Nummer überein stream_index der
Programm mit der ID Programm-ID. Andernfalls entspricht es allen Streams im Programm.

#stream_id or i:stream_id
Ordnen Sie den Stream nach der Stream-ID zu (zB PID im MPEG-TS-Container).

m:Schlüssel[:Wert]
Gleicht Streams mit dem Metadaten-Tag ab Schlüssel den angegebenen Wert haben. Wenn Wert ist nicht
gegeben, ordnet Streams, die das angegebene Tag enthalten, einen beliebigen Wert zu.

u Stimmt Streams mit brauchbarer Konfiguration überein, der Codec muss definiert und das Wesentliche
Informationen wie Videodimension oder Audio-Samplerate müssen vorhanden sein.

Beachten Sie, dass in ffmpeg, funktioniert der Abgleich nach Metadaten nur für Eingabedateien richtig.

Generisch Optionen
Diese Optionen werden von den ff*-Tools gemeinsam genutzt.

-L Lizenz anzeigen.

-H, -?, -Hilfe, --help [arg]
Zeig Hilfe. Ein optionaler Parameter kann angegeben werden, um Hilfe zu einem bestimmten Element zu drucken.
Wenn kein Argument angegeben wird, werden nur grundlegende (nicht erweiterte) Werkzeugoptionen angezeigt.

Mögliche Werte von arg sind:

lange
Drucken Sie erweiterte Werkzeugoptionen zusätzlich zu den grundlegenden Werkzeugoptionen.

voller
Drucken Sie eine vollständige Liste der Optionen, einschließlich gemeinsamer und privater Optionen für Encoder,
Decoder, Demuxer, Muxer, Filter usw.

Decoder=Decodername
Drucken Sie detaillierte Informationen über den benannten Decoder Decodername. Benutze die -Decoder
Option, um eine Liste aller Decoder zu erhalten.

Encoder=Encoder_Name
Detaillierte Informationen zum benannten Encoder ausdrucken Encoder_Name. Benutze die -Encoder
Option, um eine Liste aller Encoder zu erhalten.

Demuxer=Demuxer-Name
Drucken Sie detaillierte Informationen über den benannten Demuxer Demuxer-Name. Benutze die -Formate
Option, um eine Liste aller Demuxer und Muxer zu erhalten.

muxer=muxer_name
Drucken Sie detaillierte Informationen über den genannten Muxer muxer_name. Benutze die -Formate
Option, um eine Liste aller Muxer und Demuxer zu erhalten.

Filter=Filtername
Detaillierte Informationen zum Filternamen drucken Filtername. Benutze die -Filter
Option, um eine Liste aller Filter zu erhalten.

-Ausführung
Version anzeigen.

-Formate
Verfügbare Formate anzeigen (einschließlich Geräte).

-Geräte
Verfügbare Geräte anzeigen.

-Codecs
Alle Codecs anzeigen, die libavcodec bekannt sind.

Beachten Sie, dass der Begriff 'Codec' in dieser Dokumentation als Abkürzung für
was richtiger ein Medien-Bitstream-Format genannt wird.

-Decoder
Verfügbare Decoder anzeigen.

-Encoder
Alle verfügbaren Encoder anzeigen.

-bsfs
Verfügbare Bitstream-Filter anzeigen.

-Protokolle
Verfügbare Protokolle anzeigen.

-Filter
Verfügbare libavfilter-Filter anzeigen.

-pix_fmts
Verfügbare Pixelformate anzeigen.

-sample_fmts
Verfügbare Beispielformate anzeigen.

-Layouts
Kanalnamen und Standardkanallayouts anzeigen.

-Farben
Erkannte Farbnamen anzeigen.

-quellen Gerät[,opt1=val1[,opt2=val2]...]
Zeigt automatisch erkannte Quellen des Eingabegeräts an. Einige Geräte können system-
abhängige Quellennamen, die nicht automatisch erkannt werden können. Die zurückgegebene Liste kann nicht sein
als immer vollständig angenommen.

ffmpeg -sources puls,server=192.168.0.4

-senkt Gerät[,opt1=val1[,opt2=val2]...]
Automatisch erkannte Senken des Ausgabegeräts anzeigen. Einige Geräte können system-
abhängige Senkennamen, die nicht automatisch erkannt werden können. Die zurückgegebene Liste kann nicht angenommen werden
immer vollständig zu sein.

ffmpeg -senkt Impuls, Server=192.168.0.4

-Loglevel [wiederholen+]loglevel | -v [wiederholen+]loglevel
Legen Sie die von der Bibliothek verwendete Protokollierungsebene fest. Das Hinzufügen von "repeat+" zeigt an, dass wiederholt
log-Ausgabe sollte nicht auf die erste Zeile komprimiert werden und die "Letzte Nachricht wiederholt n
times" wird ausgelassen. "repeat" kann auch alleine verwendet werden. Wenn "repeat" verwendet wird
allein und ohne vorheriges gesetztes Loglevel wird das Standard-Loglevel verwendet. Wenn mehrere
Loglevel-Parameter angegeben sind, wird die Verwendung von 'repeat' den Loglevel nicht ändern. loglevel
ist ein String oder eine Zahl mit einem der folgenden Werte:

ruhig, -8
Zeigen Sie überhaupt nichts; Schweigen.

Panik, 0
Zeigen Sie nur schwerwiegende Fehler an, die zum Absturz des Prozesses führen könnten, wie und assert
Versagen. Dies wird derzeit für nichts verwendet.

tödlich, 8
Nur schwerwiegende Fehler anzeigen. Dies sind Fehler, nach denen der Prozess absolut nicht mehr möglich ist
weiter nach.

Error, 16
Zeigen Sie alle Fehler an, einschließlich derer, die wiederhergestellt werden können.

Warnung, 24
Alle Warnungen und Fehler anzeigen. Jede Nachricht im Zusammenhang mit möglicherweise falschen oder
unerwartete Ereignisse werden angezeigt.

Info, 32
Zeigen Sie während der Verarbeitung informative Meldungen an. Dies ist zusätzlich zu Warnungen und
Fehler. Dies ist der Standardwert.

ausführlich, 40
Wie "info", nur ausführlicher.

debuggen, 48
Alles anzeigen, einschließlich Debugging-Informationen.

verfolgen, 56

Standardmäßig loggt sich das Programm in stderr ein, wenn die Farbgebung vom Terminal unterstützt wird,
Farben werden verwendet, um Fehler und Warnungen zu markieren. Die Färbung des Protokolls kann deaktiviert werden, indem die
variable Umgebung AV_LOG_FORCE_NOCOLOR or KEINE FARBE, oder kann erzwungenes Einstellen der
variable Umgebung AV_LOG_FORCE_COLOR. Die Verwendung der Umgebungsvariablen KEINE FARBE
ist veraltet und wird in einer folgenden FFmpeg-Version entfernt.

-Bericht
Vollständige Befehlszeilen- und Konsolenausgabe in eine Datei namens . ausgeben
"Programm-JJJJMMTT-HHMMSS.log" im aktuellen Verzeichnis. Diese Datei kann nützlich sein für
Fehlerberichte. Es impliziert auch "-loglevel verbose".

Umgebungsvariable setzen FREPORT auf einen beliebigen Wert hat den gleichen Effekt. Wenn die
value ist eine durch ':' getrennte Schlüssel=Wert-Sequenz, diese Optionen wirken sich auf den Bericht aus;
Optionswerte müssen mit Escapezeichen versehen werden, wenn sie Sonderzeichen oder die Optionen enthalten
Trennzeichen ':' (siehe den Abschnitt ``Quoting and Escaping'' im ffmpeg-utils-Handbuch).

Folgende Optionen werden erkannt:

Datei
Legen Sie den Dateinamen fest, der für den Bericht verwendet werden soll; %p wird zum Namen des . erweitert
Programm, %t wird zu einem Zeitstempel erweitert, "%%" wird zu einem einfachen "%" erweitert

Grad des
Setzen Sie den Log Ausführlichkeitsgrad mit einem numerischen Wert (siehe "-loglevel").

Um beispielsweise einen Bericht in eine Datei namens . auszugeben ffreport.log mit einem Log-Level von 32
(Alias ​​für Loglevel "info"):

FFREPORT=file=ffreport.log:level=32 ffmpeg -i Eingabe Ausgabe

Fehler beim Parsen der Umgebungsvariablen sind nicht schwerwiegend und werden nicht in der Datei angezeigt
berichten.

-Banner ausblenden
Druckbanner unterdrücken.

Alle FFmpeg-Tools zeigen normalerweise einen Copyright-Hinweis, Build-Optionen und eine Bibliothek an
Versionen. Diese Option kann verwendet werden, um das Drucken dieser Informationen zu unterdrücken.

-CPU-Flags Fahnen (globale )
Ermöglicht das Setzen und Löschen von CPU-Flags. Diese Option ist zum Testen gedacht. Verwende nicht
es sei denn, Sie wissen, was Sie tun.

ffmpeg -cpuflags -sse+mmx ...
ffmpeg -cpuflags mmx ...
ffmpeg -cpuflags 0 ...

Mögliche Flags für diese Option sind:

x86
MMX
mmext
sse
ss2
sse2langsam
ss3
sse3langsam
ssse3
Atom
ss4.1
ss4.2
avx
avx2
xop
fma3
fma4
3djetzt
3dnowext
bmi1
bmi2
cmov
ARM
armv5te
armv6
armv6t2
vfp
vfpv3
Neon
setzen
AAArch64
armv8
vfp
Neon
PowerPC
altivec
spezifische Prozessoren
Pentium2
Pentium3
Pentium4
k6
k62
athlon
athlonxp
k8
-opencl_bench
Diese Option wird verwendet, um alle verfügbaren OpenCL-Geräte zu vergleichen und die Ergebnisse zu drucken.
Diese Option ist nur verfügbar, wenn FFmpeg mit "--enable-opencl" kompiliert wurde.

Wenn FFmpeg mit "--enable-opencl" konfiguriert ist, werden die Optionen für die globale OpenCL
Kontext werden gesetzt über -opencl_options. Siehe den Abschnitt "OpenCL-Optionen" im ffmpeg-
utils-Handbuch für die vollständige Liste der unterstützten Optionen. Unter anderem diese Optionen
beinhalten die Möglichkeit, eine bestimmte Plattform und ein bestimmtes Gerät auszuwählen, um den OpenCL-Code auszuführen
An. Standardmäßig wird FFmpeg auf dem ersten Gerät der ersten Plattform ausgeführt. Während
Optionen für den globalen OpenCL-Kontext bieten dem Benutzer Flexibilität bei der Auswahl der
OpenCL-Gerät ihrer Wahl, die meisten Benutzer möchten wahrscheinlich das schnellste auswählen
OpenCL-Gerät für ihr System.

Diese Option unterstützt die Auswahl der effizientesten Konfiguration, indem sie
das passende Gerät für das System des Benutzers. Der eingebaute Benchmark wird auf allen
OpenCL-Geräte und die Leistung wird für jedes Gerät gemessen. Die Geräte im
Die Ergebnisliste wird nach Leistung sortiert, wobei das schnellste Gerät aufgelistet wird
Erste. Der Benutzer kann anschließend aufrufen ffmpeg mit dem Gerät, das als am meisten angesehen wird
passend über -opencl_options um die beste Leistung für die OpenCL zu erzielen
beschleunigter Code.

Die typische Verwendung des schnellsten OpenCL-Geräts umfasst die folgenden Schritte.

Führen Sie den Befehl aus:

ffmpeg -opencl_bench

Notieren Sie sich die Plattform-ID (pidx) und Geräte-ID (didx) des ersten bzw. schnellsten Geräts
In der Liste. Wählen Sie die Plattform und das Gerät mit dem Befehl aus:

ffmpeg -opencl_options platform_idx= :device_idx= ...

-opencl_options Optionen (globale )
Legen Sie OpenCL-Umgebungsoptionen fest. Diese Option ist nur verfügbar, wenn FFmpeg
kompiliert mit "--enable-opencl".

Optionen muss eine Liste von sein Schlüssel=Wert Optionspaare durch ':' getrennt. Siehe ``OpenCL
Optionen'' im ffmpeg-utils-Handbuch für die Liste der unterstützten Optionen.

AVOptionen
Diese Optionen werden direkt von libavformat, libavdevice und libavcodec bereitgestellt
Bibliotheken. Um die Liste der verfügbaren AVOptionen anzuzeigen, verwenden Sie die -Hilfe Möglichkeit. Sie sind
in zwei Kategorien unterteilt:

Generika
Diese Optionen können für jeden Container, Codec oder Gerät eingestellt werden. Generische Optionen sind
aufgeführt unter AVFormatContext-Optionen für Container/Geräte und unter AVCodecContext
Optionen für Codecs.

privat
Diese Optionen sind spezifisch für den angegebenen Container, das Gerät oder den Codec. Private Optionen
sind unter den entsprechenden Containern/Geräten/Codecs aufgeführt.

Um beispielsweise einen ID3v2.3-Header anstelle eines Standard-ID3v2.4 in eine MP3-Datei zu schreiben, verwenden Sie
id3v2_version private Option des MP3-Muxers:

ffmpeg -i input.flac -id3v2_version 3 out.mp3

Alle Codec-AVOptionen gelten pro Stream, und daher sollte ein Stream-Spezifizierer angehängt werden
Them.

Beachten Sie das -keine Option Syntax kann nicht für boolesche AVOptions verwendet werden, verwenden Sie -Möglichkeit 0/-Möglichkeit 1.

Hinweis: die alte undokumentierte Methode, AVOptions pro Stream anzugeben, indem v/a/s an . vorangestellt wird
Der Optionsname ist nun veraltet und wird in Kürze entfernt.

Main Optionen
-f fmt (Input-Output)
Eingabe- oder Ausgabedateiformat erzwingen. Das Format wird normalerweise automatisch für die Eingabe erkannt
Dateien und erraten von der Dateierweiterung für Ausgabedateien, daher ist diese Option nicht
in den meisten Fällen benötigt.

-i Dateinamen (Eingabe)
Dateiname eingeben

-y (globale )
Ausgabedateien überschreiben, ohne zu fragen.

-n (globale )
Ausgabedateien nicht überschreiben und sofort beenden, wenn bereits eine angegebene Ausgabedatei vorhanden ist
besteht.

-C[:stream_specifier] Codec (Eingabe/Ausgabe, pro Stream)
-codec[:stream_specifier] Codec (Eingabe/Ausgabe, pro Stream)
Wählen Sie einen Encoder (bei Verwendung vor einer Ausgabedatei) oder einen Decoder (bei Verwendung vor einer Ausgabedatei)
Eingabedatei) für einen oder mehrere Streams. Codec ist der Name eines Decoders/Encoders oder a
Sonderwert "copy" (nur Ausgabe), um anzuzeigen, dass der Stream nicht erneut
codiert.

Zum Beispiel

ffmpeg -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT

codiert alle Videostreams mit libx264 und kopiert alle Audiostreams.

Für jeden Stream wird die letzte passende Option "c" angewendet, also

ffmpeg -i INPUT -map 0 -c kopieren -c:v:1 libx264 -c:a:137 libvorbis OUTPUT

kopiert alle Streams außer dem zweiten Video, das mit libx264 codiert wird.
und das 138. Audio, das mit libvorbis kodiert wird.

-t Dauer (Input-Output)
Bei Verwendung als Eingabeoption (vor "-i") begrenzen Sie die Dauer von Daten gelesen aus dem
Eingabedatei.

Bei Verwendung als Ausgabeoption (vor einem Ausgabedateinamen) beenden Sie das Schreiben der Ausgabe
nachdem seine Dauer erreicht ist Dauer.

Dauer muss eine Zeitdauerangabe sein, siehe Uhrzeit Dauer Abschnitt in
ffmpeg-utils(1) manuell.

-to und -t schließen sich gegenseitig aus und -t hat Priorität.

Zu Position (Ausgabe)
Beenden Sie das Schreiben der Ausgabe um Position. Position muss eine Zeitdauerangabe sein,
sehen Uhrzeit Dauer Abschnitt in ffmpeg-utils(1) manuell.

-to und -t schließen sich gegenseitig aus und -t hat Priorität.

-fs limit_size (Ausgabe)
Legen Sie die Dateigrößenbeschränkung in Bytes fest.

-ss Position (Input-Output)
Sucht bei Verwendung als Eingabeoption (vor "-i") in dieser Eingabedatei nach Position. Hinweis
dass es in den meisten Formaten nicht möglich ist, genau zu suchen, also ffmpeg werde nach dem suchen
nächster Suchpunkt vorher Position. Beim Transkodieren und -accurate_seek aktiviert
(Standardeinstellung), dieses zusätzliche Segment zwischen dem Suchpunkt und Position wird entschlüsselt
und verworfen. Beim Streamen kopieren oder wenn -noaccurate_seek verwendet wird, wird es sein
konserviert.

Bei Verwendung als Ausgabeoption (vor einem Ausgabedateinamen) wird die Eingabe dekodiert, aber verworfen
bis die Zeitstempel erreichen Position.

Position muss eine Zeitdauerangabe sein, siehe Uhrzeit Dauer Abschnitt in
ffmpeg-utils(1) manuell.

-seof Position (Input-Output)
Wie die Option "-ss", aber relativ zum "Ende der Datei". Das heißt, negative Werte sind
weiter oben in der Datei steht 0 bei EOF.

-sein Offset Offset (Eingabe)
Stellen Sie den Eingabezeit-Offset ein.

Offset muss eine Zeitdauerangabe sein, siehe Uhrzeit Dauer Abschnitt in
ffmpeg-utils(1) manuell.

Der Offset wird zu den Zeitstempeln der Eingabedateien hinzugefügt. Angabe eines positiven Offsets
bedeutet, dass die entsprechenden Streams um die in angegebene Zeitdauer verzögert werden
Offset.

-Zeitstempel Datum (Ausgabe)
Legen Sie den Aufnahmezeitstempel im Container fest.

Datum muss eine Datumsangabe sein, siehe Datum Abschnitt in ffmpeg-utils(1) manuell.

-metadata[:metadata_specifier] Schlüssel=Wert (Ausgabe, pro Metadaten)
Legen Sie ein Schlüssel/Wert-Paar für Metadaten fest.

Ein optionales Metadatenspezifizierer kann angegeben werden, um Metadaten für Streams oder Kapitel festzulegen.
Weitere Informationen finden Sie in der Dokumentation zu "-map_metadata".

Diese Option überschreibt Metadaten, die mit "-map_metadata" festgelegt wurden. Es ist auch möglich zu löschen
Metadaten, indem Sie einen leeren Wert verwenden.

Um beispielsweise den Titel in der Ausgabedatei festzulegen:

ffmpeg -i in.avi -metadata title="my title" out.flv

So stellen Sie die Sprache des ersten Audiostreams ein:

ffmpeg -i INPUT -metadata:s:a:0 language=eng AUSGABE

-Ziel tippe (Ausgabe)
Geben Sie den Zieldateityp ("vcd", "svcd", "dvd", "dv", "dv50") an. tippe kann vorangestellt werden
mit "pal-", "ntsc-" oder "film-", um den entsprechenden Standard zu verwenden. Das ganze Format
Optionen (Bitrate, Codecs, Puffergrößen) werden dann automatisch eingestellt. Sie können einfach eingeben:

ffmpeg -i meinedatei.avi -target vcd /tmp/vcd.mpg

Sie können jedoch zusätzliche Optionen angeben, solange Sie wissen, dass dies nicht der Fall ist
Konflikt mit dem Standard, wie in:

ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg

-dframes Anzahl (Ausgabe)
Legen Sie die Anzahl der auszugebenden Datenrahmen fest. Dies ist ein Alias ​​für "-frames:d".

-Rahmen[:stream_specifier] Frameanzahl (Ausgabe pro Stream)
Hör auf, danach in den Stream zu schreiben Frameanzahl Frames.

-Q[:stream_specifier] q (Ausgabe pro Stream)
-qskala[:stream_specifier] q (Ausgabe pro Stream)
Verwenden Sie eine feste Qualitätsskala (VBR). Die Bedeutung von q/qskala ist Codec-abhängig. Wenn qskala
wird ohne a verwendet stream_specifier dann gilt es nur für den Videostream, das ist
um die Kompatibilität mit dem vorherigen Verhalten aufrechtzuerhalten und denselben Codec anzugeben
spezifischer Wert für 2 verschiedene Codecs, das ist Audio und Video im Allgemeinen nicht das, was ist
beabsichtigt, wenn kein stream_specifier verwendet wird.

-Filter[:stream_specifier] Filtergrafik (Ausgabe pro Stream)
Erstellen Sie den durch . angegebenen Filtergraph Filtergrafik und verwenden Sie es, um den Stream zu filtern.

Filtergrafik ist eine Beschreibung des Filtergraphen, der auf den Stream angewendet werden soll, und muss haben
ein einzelner Eingang und ein einzelner Ausgang des gleichen Typs des Streams. In der Filtergrafik
der Eingang ist dem Label "in" und der Ausgang dem Label "out" zugeordnet. Siehe die
ffmpeg-filters-Handbuch für weitere Informationen über die Filtergraph-Syntax.

Siehe die -filter_komplex zu erhalten wenn Sie Filtergraphen mit mehreren Eingaben erstellen möchten
und/oder Ausgänge.

-filter_script[:stream_specifier] Dateinamen (Ausgabe pro Stream)
Diese Option ist ähnlich wie -Filter, der einzige Unterschied besteht darin, dass sein Argument die
Name der Datei, aus der eine Filtergraph-Beschreibung gelesen werden soll.

-Vor[:stream_specifier] Voreinstellungsname (Ausgabe pro Stream)
Geben Sie die Voreinstellung für übereinstimmende Streams an.

-Statistiken (globale )
Kodierungsfortschritt/Statistiken drucken. Es ist standardmäßig aktiviert, um es explizit zu deaktivieren
müssen "-nostats" angeben.

-Fortschritt URL (globale )
Sende programmfreundliche Fortschrittsinformationen an URL.

Fortschrittsinformationen werden ungefähr jede Sekunde geschrieben und am Ende des
Codiervorgang. Es ist gemacht aus "Schlüssel=Wert" Linien. Schlüssel besteht nur aus alphanumerischen
Zeichen. Der letzte Schlüssel einer Folge von Fortschrittsinformationen ist immer "Fortschritt".

-stdin
Aktivieren Sie die Interaktion bei der Standardeingabe. Standardmäßig aktiviert, es sei denn, die Standardeingabe wird als verwendet
eine Eingabe. Um die Interaktion explizit zu deaktivieren, müssen Sie "-nostdin" angeben.

Das Deaktivieren der Interaktion bei der Standardeingabe ist beispielsweise nützlich, wenn ffmpeg im
Hintergrundprozessgruppe. Ungefähr das gleiche Ergebnis kann mit "ffmpeg ...
/dev/null", aber es erfordert eine Shell.

-debug_ts (globale )
Zeitstempelinformationen drucken. Es ist standardmäßig deaktiviert. Diese Option ist vor allem nützlich für
Test- und Debugging-Zwecke, und das Ausgabeformat kann sich von einer Version zu ändern
eine andere, daher sollte sie nicht von portablen Skripten verwendet werden.

Siehe auch die Option "-fdebug ts".

-anfügen Dateinamen (Ausgabe)
Fügen Sie der Ausgabedatei einen Anhang hinzu. Dies wird von einigen Formaten wie Matroska . unterstützt
B. für Schriftarten, die beim Rendern von Untertiteln verwendet werden. Anhänge werden spezifisch implementiert
Stream-Typ, sodass diese Option der Datei einen neuen Stream hinzufügt. Dann ist es möglich
um die Stream-Optionen für diesen Stream auf die übliche Weise zu verwenden. Anhänge-Streams erstellt
mit dieser Option werden nach allen anderen Streams erstellt (dh diejenigen, die mit erstellt wurden)
"-map" oder automatische Zuordnungen).

Beachten Sie, dass Sie für Matroska auch das Mimetype-Metadaten-Tag setzen müssen:

ffmpeg -i INPUT -attach DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv

(unter der Annahme, dass der Anhangsstream in der Ausgabedatei an dritter Stelle steht).

-dump_attachment[:stream_specifier] Dateinamen (Eingabe pro Stream)
Extrahieren Sie den passenden Anhangsstream in eine Datei namens Dateinamen. Wenn Dateinamen is
leer, dann wird der Wert des Metadaten-Tags "filename" verwendet.

ZB um den ersten Anhang in eine Datei namens 'out.ttf' zu extrahieren:

ffmpeg -dump_attachment:t:0 out.ttf -i INPUT

So extrahieren Sie alle Anhänge von Dateien, die durch das Tag "filename" bestimmt werden:

ffmpeg -dump_attachment:t "" -i INPUT

Technischer Hinweis – Anhänge werden als Codec-Extradaten implementiert, daher kann diese Option
tatsächlich verwendet werden, um Extradaten aus jedem Stream zu extrahieren, nicht nur Anhänge.

-keine automatische Drehung
Deaktivieren Sie das automatische Drehen von Videos basierend auf Dateimetadaten.

Video Optionen
-vframes Anzahl (Ausgabe)
Legen Sie die Anzahl der auszugebenden Videobilder fest. Dies ist ein Alias ​​für "-frames:v".

-R[:stream_specifier] fps (Eingabe/Ausgabe, pro Stream)
Bildrate einstellen (Hz-Wert, Bruch oder Abkürzung).

Ignorieren Sie als Eingabeoption alle in der Datei gespeicherten Zeitstempel und generieren Sie stattdessen
Zeitstempel unter Annahme einer konstanten Bildrate fps. Dies ist nicht dasselbe wie die -Framerate
Option, die für einige Eingabeformate wie image2 oder v4l2 verwendet wird (früher war sie dasselbe in
ältere Versionen von FFmpeg). Im Zweifelsfall verwenden -Framerate statt der Eingabemöglichkeit -r.

Als Ausgabeoption duplizieren oder löschen Sie Eingabeframes, um einen konstanten Ausgabeframe zu erzielen
Rate fps.

-S[:stream_specifier] Größe (Eingabe/Ausgabe, pro Stream)
Rahmengröße einstellen.

Als Eingabemöglichkeit ist dies eine Abkürzung für die Video Größe private Option, anerkannt
von einigen Demuxern, bei denen die Framegröße entweder nicht in der Datei gespeichert ist oder
konfigurierbar -- zB Rohvideo oder Videograbber.

Als Ausgabeoption fügt dies den Videofilter "scale" in die Ende dauert ebenfalls 3 Jahre. Das erste Jahr ist das sog.
entsprechende Filtergrafik. Bitte verwenden Sie den Filter "Skala" direkt, um ihn am
Anfang oder an einem anderen Ort.

Das Format ist B x H (Standard - wie Quelle).

-Aspekt[:stream_specifier] Aussehen (Ausgabe pro Stream)
Stellen Sie das Seitenverhältnis der Videoanzeige ein, das durch . angegeben wird Aussehen.

Aussehen kann ein String mit Gleitkommazahlen oder ein String der Form . sein num:am, Wobei
num und am sind Zähler und Nenner des Seitenverhältnisses. Zum Beispiel "4:3",
"16:9", "1.3333" und "1.7777" sind gültige Argumentwerte.

Bei Verwendung zusammen mit -vcodec Kopieren, beeinflusst dies das unter gespeicherte Seitenverhältnis
Containerebene, aber nicht das in codierten Frames gespeicherte Seitenverhältnis, falls vorhanden.

-vn (Ausgabe)
Videoaufzeichnung deaktivieren.

-vcodec Codec (Ausgabe)
Stellen Sie den Video-Codec ein. Dies ist ein Alias ​​für "-codec:v".

-passieren[:stream_specifier] n (Ausgabe pro Stream)
Wählen Sie die Passnummer (1 oder 2). Es wird verwendet, um eine Videocodierung mit zwei Durchgängen durchzuführen. Die
Statistiken des Videos werden im ersten Durchgang in einer Logdatei aufgezeichnet (siehe auch die
Option -passlogfile), und im zweiten Durchgang wird diese Protokolldatei verwendet, um die
Video mit der genau angeforderten Bitrate. Bei Pass 1 können Sie einfach Audio deaktivieren und
setze output auf null, Beispiele für Windows und Unix:

ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y NUL
ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y /dev/null

-passlogfile[:stream_specifier] Präfix (Ausgabe pro Stream)
Setzen Sie das Namenspräfix für zwei Durchgänge auf Präfix, das standardmäßige Dateinamenpräfix ist
``ffmpeg2pass''. Der vollständige Dateiname lautet PRÄFIX-N.log, wobei N eine Zahl ist
spezifisch für den Ausgabestrom

-vf Filtergrafik (Ausgabe)
Erstellen Sie den durch . angegebenen Filtergraph Filtergrafik und verwenden Sie es, um den Stream zu filtern.

Dies ist ein Alias ​​für "-filter:v", siehe die -Filter zu erhalten.

Fortgeschrittener Video Optionen
-pix_fmt[:stream_specifier] Format (Eingabe/Ausgabe, pro Stream)
Pixelformat einstellen. Verwenden Sie "-pix_fmts", um alle unterstützten Pixelformate anzuzeigen. Wenn die
das ausgewählte Pixelformat kann nicht ausgewählt werden, ffmpeg druckt eine Warnung und wählt das
bestes Pixelformat, das vom Encoder unterstützt wird. Wenn pix_fmt wird ein "+" vorangestellt, ffmpeg
wird mit einem Fehler beendet, wenn das angeforderte Pixelformat nicht ausgewählt werden kann, und
automatische Konvertierungen innerhalb von Filtergraphen sind deaktiviert. Wenn pix_fmt ist ein einzelnes "+",
ffmpeg wählt das gleiche Pixelformat wie die Eingabe (oder Grafikausgabe) und automatisch
Konvertierungen sind deaktiviert.

-sws_flags Fahnen (Input-Output)
Setzt SwScaler-Flags.

-vdt n
Schwellenwert verwerfen.

-rc_override[:stream_specifier] Override (Ausgabe pro Stream)
Überschreiben der Ratensteuerung für bestimmte Intervalle, formatiert als "int,int,int"-Liste
durch Schrägstriche getrennt. Zwei erste Werte sind die Anfangs- und Endbildnummern, letzter
einer ist der zu verwendende Quantisierer, wenn er positiv ist, oder der Qualitätsfaktor, wenn er negativ ist.

-ilme
Interlacing-Unterstützung im Encoder erzwingen (nur MPEG-2 und MPEG-4). Verwenden Sie diese Option, wenn
Ihre Eingabedatei ist interlaced und Sie möchten das Interlaced-Format für ein Minimum beibehalten
Verluste. Die Alternative besteht darin, den Eingabestrom mit zu deinterlacen -deinterlacen, Aber
Deinterlacing führt zu Verlusten.

-psnr
Berechnen Sie PSNR komprimierter Frames.

-vstats
Videocodierungsstatistiken ausgeben in vstats_HHMMSS.log.

-vstats_file Datei
Videocodierungsstatistiken ausgeben in Datei.

-oben[:stream_specifier] n (Ausgabe pro Stream)
oben=1/unten=0/auto=-1 Feld zuerst

-dc Präzision
Intra_dc_precision.

-vtag vierccm/tag (Ausgabe)
Video-Tag/Fourcc erzwingen. Dies ist ein Alias ​​für "-tag:v".

-qphist (globale )
QP-Histogramm anzeigen

-vbsf bitstream_filter
Veraltet siehe -bsf

-force_key_frames[:stream_specifier] Zeit[,Zeit...] (Ausgabe pro Stream)
-force_key_frames[:stream_specifier] Ausdruck:ausdr (Ausgabe pro Stream)
Erzwinge Keyframes zu den angegebenen Zeitstempeln, genauer gesagt bei den ersten Frames danach
zu jeder angegebenen Zeit.

Wenn dem Argument "expr:" vorangestellt ist, wird die Zeichenfolge ausdr wird interpretiert wie ein
Ausdruck und wird für jeden Frame ausgewertet. Ein Keyframe wird erzwungen, falls die
Bewertung ist nicht Null.

Wenn eine der Zeiten ""Kapitel" ist[Delta]", es wird in die Zeit der erweitert
Anfang aller Kapitel in der Datei, verschoben um Delta, ausgedrückt als Zeit in
Sekunden. Diese Option kann nützlich sein, um sicherzustellen, dass bei a . ein Suchpunkt vorhanden ist
Kapitelmarkierung oder an einer anderen bestimmten Stelle in der Ausgabedatei.

Um beispielsweise einen Keyframe nach 5 Minuten einzufügen, plus Keyframes 0.1 Sekunden vor dem
Anfang jedes Kapitels:

-force_key_frames 0:05:00,Kapitel-0.1

Der Ausdruck in ausdr kann folgende Konstanten enthalten:

n die Nummer des aktuell verarbeiteten Frames, beginnend bei 0

n_erzwungen
die Anzahl der erzwungenen Frames

prev_forced_n
die Nummer des vorherigen erzwungenen Frames, es ist "NAN", wenn kein Keyframe erzwungen wurde
noch

prev_forced_t
die Zeit des vorherigen erzwungenen Frames, es ist "NAN", wenn noch kein Keyframe erzwungen wurde

t die Zeit des aktuell verarbeiteten Frames

Um beispielsweise alle 5 Sekunden einen Keyframe zu erzwingen, können Sie Folgendes angeben:

-force_key_frames Ausdruck:gte(t,n_forced*5)

Erzwingen eines Keyframes 5 Sekunden nach dem Zeitpunkt des letzten erzwungenen, beginnend mit
zweite 13:

-force_key_frames Ausdruck:if(isnan(prev_forced_t),gte(t,13),gte(t,prev_forced_t+5))

Beachten Sie, dass das Erzwingen zu vieler Keyframes für die Lookahead-Algorithmen von . sehr schädlich ist
bestimmte Encoder: Die Verwendung von Fixed-GOP-Optionen oder ähnlichem wäre effizienter.

-copyinkf[:stream_specifier] (Ausgabe pro Stream)
Kopieren Sie beim Stream-Kopie auch Nicht-Key-Frames, die am Anfang gefunden wurden.

-hwaccel[:stream_specifier] hwaccel (Eingabe pro Stream)
Verwenden Sie die Hardwarebeschleunigung, um den/die übereinstimmenden Stream(s) zu decodieren. Die zulässigen Werte von
hwaccel sind:

keine
Verwenden Sie keine Hardwarebeschleunigung (Standard).

Auto
Wählen Sie automatisch die Hardwarebeschleunigungsmethode aus.

vda Verwenden Sie die Apple VDA-Hardwarebeschleunigung.

vdau
Verwenden Sie die Hardwarebeschleunigung VDPAU (Video Decode and Presentation API for Unix).

dxva2
Verwenden Sie die Hardwarebeschleunigung DXVA2 (DirectX Video Acceleration).

Diese Option hat keine Auswirkung, wenn das ausgewählte hwaccel nicht verfügbar ist oder nicht unterstützt wird von
den gewählten Decoder.

Beachten Sie, dass die meisten Beschleunigungsmethoden für die Wiedergabe gedacht sind und nicht schneller sind
als Software-Dekodierung auf modernen CPUs. Zusätzlich, ffmpeg muss normalerweise kopieren
die dekodierten Frames aus dem GPU-Speicher in den Systemspeicher, was zu weiteren
Leistungsverlust. Diese Option ist daher hauptsächlich zum Testen nützlich.

-hwaccel_device[:stream_specifier] hwaccel_device (Eingabe pro Stream)
Wählen Sie ein Gerät aus, das für die Hardwarebeschleunigung verwendet werden soll.

Diese Option ist nur sinnvoll, wenn die -hwaccel Option ist ebenfalls angegeben. Es ist genau
Bedeutung hängt von der gewählten Hardwarebeschleunigungsmethode ab.

vdau
Für VDPAU gibt diese Option die zu verwendende X11-Anzeige/-Bildschirm an. Wenn diese Option ist
nicht angegeben, der Wert der DISPLAY Umgebungsvariable wird verwendet

dxva2
Für DXVA2 sollte diese Option die Nummer des zu verwendenden Anzeigeadapters enthalten.
Wenn diese Option nicht angegeben ist, wird der Standardadapter verwendet.

-hwaccels
Listen Sie alle in diesem Build von ffmpeg unterstützten Hardwarebeschleunigungsmethoden auf.

Audio Optionen
-Rahmen Anzahl (Ausgabe)
Legen Sie die Anzahl der auszugebenden Audioframes fest. Dies ist ein Alias ​​für "-frames:a".

-ar[:stream_specifier] Frequenz (Eingabe/Ausgabe, pro Stream)
Stellen Sie die Audio-Abtastfrequenz ein. Für Ausgabestreams ist es standardmäßig auf den
Frequenz des entsprechenden Eingangsstroms. Für Eingabestreams macht diese Option nur
Sinn für Audio-Grabbing-Geräte und Raw-Demuxer und wird den entsprechenden
Demuxer-Optionen.

-aq q (Ausgabe)
Stellen Sie die Audioqualität ein (Codec-spezifisch, VBR). Dies ist ein Alias ​​für -q:a.

-ac[:stream_specifier] Kanäle (Eingabe/Ausgabe, pro Stream)
Stellen Sie die Anzahl der Audiokanäle ein. Für Ausgabestreams ist es standardmäßig auf den
Anzahl der Eingangsaudiokanäle. Für Eingabestreams ist diese Option nur sinnvoll für
Audio-Grabbing-Geräte und Raw-Demuxer und wird dem entsprechenden Demuxer zugeordnet
Optionen.

-an (Ausgabe)
Deaktivieren Sie die Audioaufnahme.

-codec Codec (Input-Output)
Stellen Sie den Audio-Codec ein. Dies ist ein Alias ​​für "-codec:a".

-sample_fmt[:stream_specifier] sample_fmt (Ausgabe pro Stream)
Legen Sie das Audio-Sample-Format fest. Verwenden Sie "-sample_fmts", um eine Liste der unterstützten Beispiele zu erhalten
Formate.

-N Filtergrafik (Ausgabe)
Erstellen Sie den durch . angegebenen Filtergraph Filtergrafik und verwenden Sie es, um den Stream zu filtern.

Dies ist ein Alias ​​für "-filter:a", siehe die -Filter zu erhalten.

Fortgeschrittener Audio Optionen
-eine Markierung vierccm/tag (Ausgabe)
Audio-Tag/Fourcc erzwingen. Dies ist ein Alias ​​für "-tag:a".

-absf bitstream_filter
Veraltet, siehe -bsf

-guess_layout_max Kanäle (Eingabe pro Stream)
Wenn ein Eingangskanal-Layout nicht bekannt ist, versuchen Sie nur zu erraten, ob es at . entspricht
meisten die angegebene Anzahl von Kanälen. Zum Beispiel sagt 2 zu ffmpeg erkennen 1
Kanal als Mono und 2 Kanäle als Stereo, aber nicht 6 Kanäle als 5.1. Die Standardeinstellung ist zu
versuche immer zu erraten. Verwenden Sie 0, um alle Vermutungen zu deaktivieren.

Untertitel Optionen
-scodec Codec (Input-Output)
Stellen Sie den Untertitel-Codec ein. Dies ist ein Alias ​​für "-codec:s".

-schn (Ausgabe)
Untertitelaufnahme deaktivieren.

-sbsf bitstream_filter
Veraltet, siehe -bsf

Fortgeschrittener Untertitel Optionen
-fix_sub_duration
Untertiteldauer korrigieren. Warte für jeden Untertitel auf das nächste Paket im selben
Stream und passen Sie die Dauer des ersten an, um Überschneidungen zu vermeiden. Dies ist notwendig mit
einige Untertitel-Codecs, insbesondere DVB-Untertitel, weil die Dauer im Original
Paket ist nur eine grobe Schätzung und das Ende wird tatsächlich durch einen leeren Untertitel markiert
Rahmen. Wenn Sie diese Option bei Bedarf nicht verwenden, kann dies zu einer überhöhten Dauer führen
oder Muxing-Fehler aufgrund nicht monotoner Zeitstempel.

Beachten Sie, dass diese Option die Ausgabe aller Daten bis zum nächsten Untertitelpaket verzögert
dekodiert: Es kann den Speicherverbrauch und die Latenz stark erhöhen.

-Leinwandgröße Größe
Legen Sie die Größe der Leinwand fest, die zum Rendern von Untertiteln verwendet wird.

Fortgeschrittener Optionen
-Karte [-]input_file_id[:stream_specifier][,sync_file_id[:stream_specifier]] | [Linklabel]
(Ausgabe)
Legen Sie einen oder mehrere Eingabestreams als Quelle für die Ausgabedatei fest. Jeder Eingabestrom
wird durch den Index der Eingabedatei identifiziert input_file_id und der Input-Stream-Index
input_stream_id innerhalb der Eingabedatei. Beide Indizes beginnen bei 0. Falls angegeben,
sync_file_id:stream_specifier legt fest, welcher Eingabestream als Präsentationssynchronisierung verwendet wird
Referenz.

Die erste Option "-map" in der Befehlszeile gibt die Quelle für Ausgabestream 0 an,
die zweite Option "-map" gibt die Quelle für Ausgabestrom 1 usw. an.

Ein "-"-Zeichen vor der Stream-ID erzeugt eine "negative" Zuordnung. Es
deaktiviert übereinstimmende Streams von bereits erstellten Mappings.

Eine Alternative [Linklabel] form wird Ausgaben von komplexen Filtergraphen zuordnen (siehe die
-filter_komplex Option) in die Ausgabedatei. Linklabel muss einem definierten . entsprechen
Ausgabe-Link-Label im Diagramm.

Um beispielsweise ALLE Streams aus der ersten Eingabedatei auf die Ausgabe zuzuordnen

ffmpeg -i INPUT -map 0 Ausgabe

Wenn Sie beispielsweise zwei Audiostreams in der ersten Eingabedatei haben, sind diese Streams
gekennzeichnet durch "0:0" und "0:1". Sie können "-map" verwenden, um auszuwählen, in welche Streams Sie platzieren möchten
eine Ausgabedatei. Zum Beispiel:

ffmpeg -i INPUT -map 0:1 aus.wav

wird den Eingabestrom in zuordnen SPEISUNG gekennzeichnet durch "0:1" zum (einzelnen) Ausgabestrom
in aus.wav.

Um beispielsweise den Stream mit Index 2 aus der Eingabedatei auszuwählen ein.mov (angegeben von der
Bezeichner "0:2") und Stream mit Index 6 von input b.mov (angegeben von der
Bezeichner "1:6") und in die Ausgabedatei kopieren aus.mov:

ffmpeg -i a.mov -i b.mov -c kopieren -map 0:2 -map 1:6 out.mov

So wählen Sie alle Videos und den dritten Audiostream aus einer Eingabedatei aus:

ffmpeg -i EINGANG -map 0:v -map 0:a:2 AUSGANG

Um alle Streams außer dem zweiten Audio zuzuordnen, verwenden Sie negative Zuordnungen

ffmpeg -i EINGANG -map 0 -map -0:a:1 AUSGANG

So wählen Sie den englischen Audiostream aus:

ffmpeg -i INPUT -map 0:m:Sprache:eng AUSGABE

Beachten Sie, dass die Verwendung dieser Option die Standardzuordnungen für diese Ausgabedatei deaktiviert.

-ignorieren_unbekannt
Ignorieren Sie Eingabestreams mit unbekanntem Typ, anstatt fehlzuschlagen, wenn das Kopieren solcher Streams
versucht.

-Kopie_unbekannt
Zulassen, dass Eingabestreams mit unbekanntem Typ kopiert werden, anstatt beim Kopieren fehlzuschlagen
Streams wird versucht.

-map_channel
[input_file_id.stream_specifier.Kanal ID|-1][:Ausgabe_Datei_ID.stream_specifier]
Ordnen Sie einen Audiokanal von einem bestimmten Eingang zu einem Ausgang zu. Wenn
Ausgabe_Datei_ID.stream_specifier nicht eingestellt ist, wird der Audiokanal auf allen abgebildet
die Audiostreams.

"-1" statt verwenden input_file_id.stream_specifier.Kanal ID wird eine stummgeschaltete Karte zuordnen
Kanal.

Angenommen zum Beispiel SPEISUNG eine Stereo-Audiodatei ist, können Sie die beiden Audio-
Kanäle mit folgendem Befehl:

ffmpeg -i INPUT -map_channel 0.0.1 -map_channel 0.0.0 AUSGABE

Wenn Sie den ersten Kanal stummschalten und den zweiten behalten möchten:

ffmpeg -i INPUT -map_channel -1 -map_channel 0.0.1 AUSGABE

Die Reihenfolge der Option "-map_channel" gibt die Reihenfolge der Kanäle im
Ausgabestrom. Das Ausgangskanallayout wird aus der Anzahl der zugeordneten Kanäle erraten
(Mono bei einem "-map_channel", Stereo bei zwei usw.). Verwendung von "-ac" in Kombination von
"-map_channel" bewirkt, dass die Kanalverstärkungspegel aktualisiert werden, wenn Eingangs- und Ausgangskanal
Layouts stimmen nicht überein (zum Beispiel zwei "-map_channel"-Optionen und "-ac 6").

Sie können auch jeden Kanal eines Eingangs zu bestimmten Ausgängen extrahieren; folgende
Befehl extrahiert zwei Kanäle des SPEISUNG Audiostream (Datei 0, Stream 0) zum
diejenigen AUSGANG_CH0 und AUSGANG_CH1 Ausgänge:

ffmpeg -i INPUT -map_channel 0.0.0 OUTPUT_CH0 -map_channel 0.0.1 OUTPUT_CH1

Das folgende Beispiel teilt die Kanäle eines Stereoeingangs in zwei separate Streams auf.
die in dieselbe Ausgabedatei geschrieben werden:

ffmpeg -i stereo.wav -map 0:0 -map 0:0 -map_channel 0.0.0:0.0 -map_channel 0.0.1:0.1 -y out.ogg

Beachten Sie, dass derzeit jeder Ausgabestream nur Kanäle von einem einzigen Eingang enthalten kann
Strom; Sie können beispielsweise nicht "-map_channel" verwenden, um mehrere Eingangsaudiokanäle auszuwählen
in verschiedenen Streams enthalten (aus denselben oder unterschiedlichen Dateien) und zusammenführen in
ein einzelner Ausgabestrom. Es ist daher z. B. derzeit nicht möglich, zu wenden
zwei separate Mono-Streams zu einem einzigen Stereo-Stream. Jedoch eine Stereoanlage aufteilen
Stream in zwei Einkanal-Monostreams ist möglich.

Wenn Sie diese Funktion benötigen, ist eine mögliche Problemumgehung die Verwendung der eine Zusammenführung Filter. Zum
Wenn Sie beispielsweise ein Medium zusammenführen müssen (hier input.mkv) mit 2 Mono-Audiostreams in
einen einzelnen Stereokanal-Audiostream (und den Videostream behalten), können Sie die
folgender Befehl:

ffmpeg -i input.mkv -filter_complex "[0:1] [0:2] amerge" -c:a pcm_s16le -c:v copy output.mkv

-map_metadata[:Metadaten_spec_out] im Ordner[:Metadaten_spec_in] (Ausgabe, pro Metadaten)
Metadateninformationen der nächsten Ausgabedatei festlegen von im Ordner. Beachten Sie, dass dies Dateien sind
Indizes (nullbasiert), keine Dateinamen. Optional Metadaten_spec_in/out Parameter
angeben, welche Metadaten kopiert werden sollen. Ein Metadatenspezifizierer kann die folgenden Formen haben:

g globale Metadaten, dh Metadaten, die für die gesamte Datei gelten

s[:stream_spez]
pro Stream-Metadaten. stream_spez ist ein Stream-Bezeichner, wie in der Beschreibung beschrieben Strom
Bezeichner Kapitel. In einem Eingabe-Metadaten-Bezeichner ist der erste übereinstimmende Stream
kopiert von. In einem Ausgabemetadatenbezeichner werden alle übereinstimmenden Streams kopiert.

c:Kapitel_index
Metadaten pro Kapitel. Kapitel_index ist der nullbasierte Kapitelindex.

p:Programmindex
Metadaten pro Programm. Programmindex ist der nullbasierte Programmindex.

Wenn der Metadatenbezeichner weggelassen wird, wird standardmäßig global verwendet.

Standardmäßig werden globale Metadaten aus der ersten Eingabedatei kopiert, pro Stream und pro
Kapitelmetadaten werden zusammen mit Streams/Kapiteln kopiert. Diese Standardzuordnungen sind
deaktiviert, indem Sie ein beliebiges Mapping des entsprechenden Typs erstellen. Ein negativer Dateiindex kann
Wird verwendet, um eine Dummy-Zuordnung zu erstellen, die nur das automatische Kopieren deaktiviert.

Zum Beispiel, um Metadaten aus dem ersten Stream der Eingabedatei nach global zu kopieren
Metadaten der Ausgabedatei:

ffmpeg -i in.ogg -map_metadata 0:s:0 aus.mp3

Um das Gegenteil zu tun, dh globale Metadaten in alle Audiostreams zu kopieren:

ffmpeg -i in.mkv -map_metadata:s:a 0:g aus.mkv

Beachten Sie, dass einfache 0 in diesem Beispiel auch funktionieren würde, da globale Metadaten
standardmäßig angenommen.

-map_chapters input_file_index (Ausgabe)
Kopieren Sie Kapitel aus der Eingabedatei mit Index input_file_index zur nächsten Ausgabedatei. Wenn
keine Kapitelzuordnung angegeben ist, werden Kapitel aus der ersten Eingabedatei kopiert
mit mindestens einem Kapitel. Verwenden Sie einen negativen Dateiindex, um das Kopieren von Kapiteln zu deaktivieren.

-Benchmark (globale )
Benchmarking-Informationen am Ende einer Codierung anzeigen. Zeigt die verbrauchte CPU-Zeit und
maximaler Speicherverbrauch. Der maximale Speicherverbrauch wird nicht auf allen unterstützt
Systemen wird es normalerweise als 0 angezeigt, wenn es nicht unterstützt wird.

-benchmark_all (globale )
Benchmarking-Informationen während der Codierung anzeigen. Zeigt die in verschiedenen Schritten verbrauchte CPU-Zeit an
(Audio/Video-Kodierung/Dekodierung).

-Zeitlimit Dauer (globale )
Beenden Sie, nachdem ffmpeg für gelaufen ist Dauer Sekunden.

-Dump (globale )
Dump jedes Eingabepaket nach stderr.

-verhexen (globale )
Beim Dumpen von Paketen sollten Sie auch die Nutzlast ausgeben.

-Re (Eingabe)
Eingabe mit nativer Bildrate lesen. Wird hauptsächlich verwendet, um ein Greifgerät zu simulieren. oder Live-Input
streamen (zB beim Lesen aus einer Datei). Sollte nicht mit tatsächlichen Greifgeräten verwendet werden oder
Live-Eingangsstreams (wo es zu Paketverlusten kommen kann). Standardmäßig ffmpeg versucht zu
Lesen Sie die Eingabe(n) so schnell wie möglich. Diese Option verlangsamt das Lesen der
Eingang(en) auf die native Bildrate des/der Eingang(s). Es ist nützlich für die Echtzeitausgabe
(zB Live-Streaming).

-loop_input
Schleife über den Eingabestream. Derzeit funktioniert es nur für Bildstreams. Diese Option ist
für automatische FFserver-Tests verwendet. Diese Option ist veraltet, verwenden Sie -loop 1.

-loop_output Anzahl
Wiederholen Sie die Ausgabe für Formate, die Schleifen unterstützen, wie z. B. animiertes GIF (0 wird
Endlosschleifen der Ausgabe). Diese Option ist veraltet, verwenden Sie -loop.

-vsync Parameter
Videosynchronisierungsmethode. Aus Kompatibilitätsgründen können alte Werte als Zahlen angegeben werden.
Neu hinzugefügte Werte müssen immer als Strings angegeben werden.

0, Durchgang
Jeder Frame wird mit seinem Zeitstempel vom Demuxer an den Muxer übergeben.

1, vgl
Frames werden dupliziert und verworfen, um genau die gewünschte Konstante zu erreichen
Bildrate.

2, sehen
Frames werden mit ihrem Zeitstempel durchgereicht oder verworfen, um 2
Frames mit dem gleichen Zeitstempel.

fallen lassen
Als Passthrough, aber zerstört alle Zeitstempel, wodurch der Muxer frisch generiert wird
Zeitstempel basierend auf der Framerate.

-1, Auto
Wählt zwischen 1 und 2 je nach Muxer-Fähigkeiten. Dies ist die Standardeinstellung
Methode.

Beachten Sie, dass die Zeitstempel danach vom Muxer weiter modifiziert werden können. Zum
Beispiel für den Fall, dass die Formatoption vermeiden_negative_ts aktiviert.

Mit -map können Sie auswählen, aus welchem ​​Stream die Zeitstempel genommen werden sollen. Du kannst
Lassen Sie entweder Video oder Audio unverändert und synchronisieren Sie den/die verbleibenden Stream(s) mit dem
unverändert ein.

-frame_drop_threshold Parameter
Frame-Drop-Schwellenwert, der angibt, wie viel hinter Video-Frames liegen können, bevor sie
fallengelassen werden. In Bildrateneinheiten ist 1.0 also ein Bild. Der Standardwert ist -1.1. Einer
möglicher Anwendungsfall ist, Framedrops bei verrauschten Zeitstempeln zu vermeiden oder zu erhöhen
Frame-Drop-Präzision bei exakten Zeitstempeln.

-asynchron Samples_per_Sekunde
Audiosynchronisierungsmethode. „Dehnt/drückt“ den Audiostream, damit er den Zeitstempeln entspricht, die
Parameter sind die maximalen Samples pro Sekunde, um die das Audio geändert wird. -asynchron 1
ist ein Sonderfall, bei dem nur der Anfang des Audiostreams ohne Korrektur korrigiert wird
spätere Korrektur.

Beachten Sie, dass die Zeitstempel danach vom Muxer weiter modifiziert werden können. Zum
Beispiel für den Fall, dass die Formatoption vermeiden_negative_ts aktiviert.

Diese Option ist veraltet. Verwenden Sie stattdessen den Audiofilter "aresample".

-Kopien
Verarbeiten Sie keine Eingabezeitstempel, sondern behalten Sie ihre Werte bei, ohne zu versuchen, sie zu bereinigen
Sie. Entfernen Sie insbesondere nicht den anfänglichen Startzeitversatzwert.

Beachten Sie, dass je nach vsync Option oder bei spezifischer Muxer-Verarbeitung (z. B. bei
die Formatoption vermeiden_negative_ts aktiviert ist) können die Ausgabezeitstempel nicht übereinstimmen
mit den eingegebenen Zeitstempeln, auch wenn diese Option ausgewählt ist.

-start_at_zero
Bei Verwendung mit Kopien, verschieben Sie die Eingabezeitstempel, sodass sie bei Null beginnen.

Dies bedeutet, dass die Verwendung von z. B. "-ss 50" dazu führt, dass die Ausgabezeitstempel bei 50 Sekunden beginnen,
unabhängig davon, mit welchem ​​Zeitstempel die Eingabedatei begann.

-copytb Modus
Geben Sie an, wie die Encoder-Zeitbasis beim Kopieren von Streams festgelegt wird. Modus ist eine ganze Zahl
numerischer Wert und kann einen der folgenden Werte annehmen:

1 Verwenden Sie die Demuxer-Zeitbasis.

Die Zeitbasis wird vom entsprechenden Eingang zum Ausgangs-Encoder kopiert
demuxer. Dies ist manchmal erforderlich, um nicht monoton ansteigend zu vermeiden
Zeitstempel beim Kopieren von Videostreams mit variabler Bildrate.

0 Verwenden Sie die Decoder-Zeitbasis.

Die Zeitbasis wird vom entsprechenden Eingang zum Ausgangs-Encoder kopiert
Decoder.

-1 Versuchen Sie, die Auswahl automatisch zu treffen, um eine vernünftige Ausgabe zu generieren.

Der Standardwert ist -1.

-kürzeste (Ausgabe)
Beenden Sie die Codierung, wenn der kürzeste Eingabestream endet.

-dts_delta_threshold
Zeitstempel-Diskontinuitäts-Delta-Schwellenwert.

-Muxverzögerung Sekunden (Eingabe)
Legen Sie die maximale Demux-Decodierungsverzögerung fest.

-muxpreload Sekunden (Eingabe)
Legen Sie die anfängliche Demux-Decodierungsverzögerung fest.

-streamid Output-Stream-Index:new-value (Ausgabe)
Weisen Sie einem Ausgabestream einen neuen Stream-ID-Wert zu. Diese Option sollte angegeben werden
vor dem Ausgabedateinamen, für den es gilt. Für die Situation, in der mehrere
Ausgabedateien vorhanden sind, kann einer streamid ein anderer Wert zugewiesen werden.

Um beispielsweise die PID von Stream 0 auf 33 und die PID von Stream 1 auf 36 für einen Ausgang zu setzen
MPEGts-Datei:

ffmpeg -i infile -streamid 0:33 -streamid 1:36 out.ts

-bsf[:stream_specifier] bitstream_filter (Ausgabe pro Stream)
Legen Sie Bitstream-Filter für übereinstimmende Streams fest. bitstream_filter ist durch Kommas getrennt
Liste der Bitstream-Filter. Verwenden Sie die Option "-bsfs", um die Liste der Bitstreams zu erhalten
Filter.

ffmpeg -i h264.mp4 -c:v kopieren -bsf:v h264_mp4toannexb -an out.h264

ffmpeg -i file.mov -an -vn -bsf:s mov2textsub -c:s kopieren -f rawvideo sub.txt

-Schild[:stream_specifier] Codec-Tag (Eingabe/Ausgabe, pro Stream)
Erzwinge ein Tag/Fourcc für übereinstimmende Streams.

-Zeitcode hh:mm:ssSeptemberff
Geben Sie den Timecode zum Schreiben an. September ist ':' für Non-Drop-Timecode und ';' (oder für
fallen zu lassen.

ffmpeg -i input.mpg -timecode 01:02:03.04 -r 30000/1001 -s ntsc output.mpg

-filter_komplex Filtergrafik (globale )
Definieren Sie einen komplexen Filtergraphen, dh einen mit beliebig vielen Ein- und/oder Ausgängen.
Für einfache Graphen – solche mit einem Eingang und einem Ausgang desselben Typs – siehe die
-Filter Optionen. Filtergrafik ist eine Beschreibung des Filtergraphen, wie im
``Filtergraph-Syntax'' im Handbuch zu ffmpeg-filters.

Eingabe-Link-Labels müssen sich auf Eingabe-Streams beziehen, indem die
"[file_index:stream_specifier]"-Syntax (dh die gleiche wie -Karte Verwendet). Wenn
stream_specifier stimmt mit mehreren Streams überein, wird der erste verwendet. Ein unbeschriftetes
input wird mit dem ersten ungenutzten Input-Stream des übereinstimmenden Typs verbunden.

Ausgabe-Link-Labels werden mit . bezeichnet -Karte. Nicht gekennzeichnete Ausgaben werden zum ersten hinzugefügt
Ausgabedatei.

Beachten Sie, dass es mit dieser Option möglich ist, nur Lavfi-Quellen ohne Normal zu verwenden
Eingabedateien.

Zum Beispiel, um ein Bild über ein Video zu legen

ffmpeg -i video.mkv -i image.png -filter_complex '[0:v][1:v]overlay[out]' -map
'[out]' out.mkv

Hier bezieht sich "[0:v]" auf den ersten Videostream in der ersten Eingabedatei, der verlinkt wird
an den ersten (Haupt-)Eingang des Overlay-Filters. Ebenso der erste Videostream in
der zweite Eingang ist mit dem zweiten (Overlay-)Eingang von Overlay verknüpft.

Angenommen, jede Eingabedatei enthält nur einen Videostream, können wir Eingabelabels weglassen.
das obige ist also äquivalent zu

ffmpeg -i video.mkv -i image.png -filter_complex 'overlay[out]' -map
'[out]' out.mkv

Außerdem können wir das Ausgabelabel und die einzelne Ausgabe des Filtergraphen weglassen
wird der Ausgabedatei automatisch hinzugefügt, sodass wir einfach schreiben können

ffmpeg -i video.mkv -i image.png -filter_complex 'overlay' out.mkv

So erzeugen Sie 5 Sekunden reines rotes Video mit der Quelle "Farbe" von lavfi:

ffmpeg -filter_complex 'color=c=red' -t 5 out.mkv

-lavfi Filtergrafik (globale )
Definieren Sie einen komplexen Filtergraphen, dh einen mit beliebig vielen Ein- und/oder Ausgängen.
Gleichwertig -filter_komplex.

-filter_complex_script Dateinamen (globale )
Diese Option ist ähnlich wie -filter_komplex, der einzige Unterschied besteht darin, dass das Argument
der Name der Datei, aus der eine komplexe Filtergraph-Beschreibung gelesen werden soll.

-accurate_seek (Eingabe)
Diese Option aktiviert oder deaktiviert die genaue Suche in Eingabedateien mit dem -ss .
Sie ist standardmäßig aktiviert, sodass die Suche beim Transkodieren genau ist. Verwenden
-noaccurate_seek um es zu deaktivieren, was zB beim Kopieren einiger Streams nützlich sein kann und
die anderen umcodieren.

-seek_timestamp (Eingabe)
Diese Option aktiviert oder deaktiviert die Suche nach Zeitstempel in Eingabedateien mit dem -ss
Möglichkeit. Es ist standardmäßig deaktiviert. Wenn aktiviert, wird das Argument zum -ss Option ist
wird als tatsächlicher Zeitstempel betrachtet und wird nicht durch die Startzeit der Datei versetzt. Dies
ist nur für Dateien von Bedeutung, die nicht bei Zeitstempel 0 beginnen, wie z. B. Transportströme.

-thread_queue_size Größe (Eingabe)
Diese Option legt die maximale Anzahl von Paketen in der Warteschlange beim Lesen aus der Datei fest oder
Gerät. Bei Livestreams mit niedriger Latenz / hoher Rate können Pakete verworfen werden, wenn sie
werden nicht rechtzeitig gelesen; eine Erhöhung dieses Wertes kann dies vermeiden.

-override_ffserver (globale )
Überschreibt die Eingabespezifikationen von ffserver. Mit dieser Option können Sie beliebige
Eingabestream zu ffserver und steuern Sie viele Aspekte der Codierung von ffmpeg. Ohne
diese Option ffmpeg wird übertragen an ffserver was wird verlangt von ffserver.

Die Option ist für Fälle gedacht, in denen Funktionen benötigt werden, die nicht angegeben werden können
ffserver aber kann sein ffmpeg.

-sdp_datei Datei (globale )
Drucken Sie sdp-Informationen für einen Ausgabestream an Datei. Dies ermöglicht das Dumping von sdp
Informationen, wenn mindestens eine Ausgabe kein RTP-Stream ist. (Erfordert mindestens einen von
die Ausgabeformate rtp sein).

-verwerfen (Eingabe)
Ermöglicht das Verwerfen bestimmter Streams oder Frames von Streams beim Demuxer. Nicht alle
Demuxer unterstützen dies.

keine
Kein Rahmen verwerfen.

Standard
Standard, der keine Frames verwirft.

noref
Verwerfen Sie alle Nicht-Referenz-Frames.

bidir
Alle bidirektionalen Frames verwerfen.

kein Schlüssel
Alle Frames außer Keyframes verwerfen.

alle Verwerfen Sie alle Frames.

-xFehler (globale )
Stoppen und beenden bei Fehler

Als besondere Ausnahme können Sie einen Bitmap-Untertitelstream als Eingabe verwenden: Es wird
in ein Video mit der gleichen Größe wie das größte Video in der Datei umgewandelt, oder 720 x 576, wenn
es ist kein Video vorhanden. Beachten Sie, dass dies eine experimentelle und vorübergehende Lösung ist. Es wird sein
entfernt, sobald libavfilter die richtige Unterstützung für Untertitel hat.

Um beispielsweise Untertitel auf einer im MPEG-TS-Format gespeicherten DVB-T-Aufnahme fest zu codieren,
Untertitel um 1 Sekunde verzögern:

ffmpeg -i input.ts -filter_complex \
'[#0x2ef] setpts=PTS+1/TB [sub] ; [#0x2d0] [sub] Overlay' \
-sn -map '#0x2dc' Ausgabe.mkv

(0x2d0, 0x2dc und 0x2ef sind die MPEG-TS PIDs von Video, Audio bzw
Untertitel-Streams; 0:0, 0:3 und 0:7 hätten auch funktioniert)

Preset Dateien
Eine Preset-Datei enthält eine Sequenz von zu erhalten=Wert Paare, eines für jede Zeile, mit Angabe von a
Reihenfolge von Optionen, deren Angabe in der Befehlszeile umständlich wäre. Linien beginnend
mit Raute ('#') werden ignoriert und für Kommentare verwendet. Überprüf den
Presets Verzeichnis im FFmpeg-Quellbaum für Beispiele.

Es gibt zwei Arten von Preset-Dateien: ffpreset- und avpreset-Dateien.

ffvoreinstellung Dateien

ffpreset-Dateien werden mit den Optionen "vpre", "apre", "spre" und "fpre" angegeben. Die
Die Option "fpre" nimmt den Dateinamen des Presets anstelle eines Presetnamens als Eingabe und kann
für jede Art von Codec verwendet werden. Für die Optionen "vpre", "apre" und "spre" sind die Optionen
die in einer voreingestellten Datei angegeben sind, werden auf den aktuell ausgewählten Codec des gleichen Typs angewendet wie
die voreingestellte Option.

Das an die Preset-Optionen "vpre", "apre" und "spre" übergebene Argument identifiziert das Preset
Datei nach folgenden Regeln zu verwenden:

Zuerst sucht ffmpeg nach einer Datei namens arg.ffpreset in den Verzeichnissen $FFMPEG_DATADIR (ob
eingestellt) und $HOME/.ffmpeg, und im Datenverzeichnis, das zur Konfigurationszeit definiert wurde (normalerweise
PRÄFIX/share/ffmpeg) oder in a ffVoreinstellungen Ordner entlang der ausführbaren Datei auf Win32, in dem
Auftrag. Wenn das Argument beispielsweise "libvpx-1080p" lautet, wird nach der Datei gesucht
libvpx-1080p.ffpreset.

Wenn keine solche Datei gefunden wird, sucht ffmpeg nach einer Datei namens Codec-Name-arg.ffvoreinstellung
in den oben genannten Verzeichnissen, wo Codec-Name ist der Name des Codecs, zu dem die
voreingestellte Dateioptionen werden angewendet. Wenn Sie beispielsweise den Videocodec mit . auswählen
"-vcodec libvpx" und verwenden Sie "-vpre 1080p", dann wird nach der Datei gesucht
libvpx-1080p.ffpreset.

Voreinstellung Dateien

avpreset-Dateien werden mit der Option "pre" angegeben. Sie funktionieren ähnlich wie ffpreset-Dateien,
Sie erlauben jedoch nur geberspezifische Optionen. Daher ein zu erhalten=Wert Paarangabe
ein Encoder kann nicht verwendet werden.

Wenn die Option "pre" angegeben ist, sucht ffmpeg nach Dateien mit der Endung .avpreset
in den Verzeichnissen $AVCONV_DATADIR (falls eingestellt) und $HOME/.avconv, und im Datenverzeichnis definiert
zur Konfigurationszeit (normalerweise PRÄFIX/share/ffmpeg), in dieser Reihenfolge.

Zuerst sucht ffmpeg nach einer Datei namens Codec-Name-arg.avpreset im oben genannten
Verzeichnisse, wo Codec-Name ist der Name des Codecs, für den die voreingestellten Dateioptionen
Wird angewendet werden. Wenn Sie beispielsweise den Videocodec mit "-vcodec libvpx" auswählen und verwenden
"-pre 1080p", dann wird nach der Datei gesucht libvpx-1080p.avpreset.

Wenn keine solche Datei gefunden wird, sucht ffmpeg nach einer Datei namens arg.avpreset im
gleiche Verzeichnisse.

Beispiele:


Video und Audio Grabbing
Wenn Sie das Eingabeformat und das Gerät angeben, kann ffmpeg Video und Audio direkt aufnehmen.

ffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg

Oder mit einer ALSA-Audioquelle (Mono-Eingang, Karten-ID 1) anstelle von OSS:

ffmpeg -f alsa -ac 1 -i hw:1 -f video4linux2 -i /dev/video0 /tmp/out.mpg

Beachten Sie, dass Sie die richtige Videoquelle und den richtigen Kanal aktivieren müssen, bevor Sie ffmpeg starten
mit jedem TV-Zuschauer wiehttp://linux.bytesex.org/xawtv/> von Gerd Knorr. Sie haben auch
um die Audioaufnahmepegel mit einem Standard-Mixer richtig einzustellen.

X11 Grabbing
Holen Sie sich das X11-Display mit ffmpeg über

ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0 /tmp/out.mpg

0.0 ist die display.screen-Nummer Ihres X11-Servers, genau wie die Umgebungsvariable DISPLAY.

ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0+10,20 /tmp/out.mpg

0.0 ist die display.screen-Nummer Ihres X11-Servers, genau wie die Umgebungsvariable DISPLAY.
10 ist der x-Offset und 20 der y-Offset für das Greifen.

Video und Audio Datei Format Umwandlung
Jedes unterstützte Dateiformat und Protokoll kann als Eingabe für ffmpeg dienen:

Beispiele:

· Sie können YUV-Dateien als Eingabe verwenden:

ffmpeg -i /tmp/test%dY /tmp/out.mpg

Es verwendet die Dateien:

/tmp/test0.Y, /tmp/test0.U, /tmp/test0.V,
/tmp/test1.Y, /tmp/test1.U, /tmp/test1.V usw...

Die Y-Dateien verwenden die doppelte Auflösung der U- und V-Dateien. Sie sind Rohdateien, ohne
Header. Sie können von allen anständigen Videodecodern erzeugt werden. Sie müssen die Größe angeben
des Bildes mit dem -s Option, wenn ffmpeg es nicht erraten kann.

· Sie können aus einer rohen YUV420P-Datei eingeben:

ffmpeg -i /tmp/test.yuv /tmp/out.avi

test.yuv ist eine Datei, die rohe YUV-Planardaten enthält. Jeder Frame besteht aus dem Y
Ebene gefolgt von der U- und V-Ebene mit halber vertikaler und horizontaler Auflösung.

· Sie können in eine rohe YUV420P-Datei ausgeben:

ffmpeg -i mydivx.avi riesigefile.yuv

· Sie können mehrere Eingabedateien und Ausgabedateien einstellen:

ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg

Konvertiert die Audiodatei a.wav und die rohe YUV-Videodatei a.yuv in eine MPEG-Datei a.mpg.

· Sie können auch gleichzeitig Audio- und Videokonvertierungen durchführen:

ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2

Konvertiert a.wav in MPEG-Audio mit einer Abtastrate von 22050 Hz.

· Sie können gleichzeitig in mehrere Formate codieren und ein Mapping von der Eingabe definieren
Stream zu Ausgabestreams:

ffmpeg -i /tmp/a.wav -map 0:a -b:a 64k /tmp/a.mp2 -map 0:a -b:a 128k /tmp/b.mp2

Konvertiert a.wav in a.mp2 mit 64 kbits und in b.mp2 mit 128 kbits. '-map-Datei:Index'
gibt an, welcher Eingabestrom für jeden Ausgabestrom verwendet wird, in der Reihenfolge der
Definition von Ausgabeströmen.

· Sie können entschlüsselte VOBs transkodieren:

ffmpeg -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.avi

Dies ist ein typisches Beispiel für das Rippen von DVDs; die Eingabe ist eine VOB-Datei, die Ausgabe eine AVI-Datei
mit MPEG-4-Video und MP3-Audio. Beachten Sie, dass wir in diesem Befehl B-Frames verwenden, damit die
MPEG-4-Stream ist DivX5-kompatibel und die GOP-Größe beträgt 300, was ein Intra-Frame bedeutet
alle 10 Sekunden für 29.97fps Eingangsvideo. Außerdem ist der Audiostream
MP3-codiert, daher müssen Sie die LAME-Unterstützung aktivieren, indem Sie "--enable-libmp3lame" an . übergeben
konfigurieren. Das Mapping ist besonders nützlich für die DVD-Transkodierung, um die gewünschte
Audiosprache.

HINWEIS: Um die unterstützten Eingabeformate anzuzeigen, verwenden Sie "ffmpeg -formats".

· Sie können Bilder aus einem Video extrahieren oder ein Video aus vielen Bildern erstellen:

So extrahieren Sie Bilder aus einem Video:

ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg

Dadurch wird ein Videobild pro Sekunde aus dem Video extrahiert und in ausgegeben
Dateien benannt foo-001.jpeg, foo-002.jpeg, usw. Bilder werden neu skaliert, um sie an das neue anzupassen
BxH-Werte.

Wenn Sie nur eine begrenzte Anzahl von Frames extrahieren möchten, können Sie den obigen Befehl verwenden
in Kombination mit der Option -vframes oder -t oder in Kombination mit -ss zum Starten
ab einem bestimmten Zeitpunkt herausziehen.

So erstellen Sie ein Video aus vielen Bildern:

ffmpeg -f image2 -framerate 12 -i foo-%03d.jpeg -s WxH foo.avi

Die Syntax "foo-%03d.jpeg" gibt an, eine aus drei Ziffern bestehende Dezimalzahl zu verwenden
mit Nullen aufgefüllt, um die Sequenznummer auszudrücken. Es ist die gleiche Syntax, die von unterstützt wird
die C printf-Funktion, aber nur Formate, die eine normale ganze Zahl akzeptieren, sind geeignet.

Beim Importieren einer Bildsequenz unterstützt -i auch das Erweitern von Shell-ähnlichen Platzhaltern
Muster (globbing) intern, durch Auswahl des image2-spezifischen "-pattern_type glob"
.

Zum Beispiel zum Erstellen eines Videos aus Dateinamen, die dem Glob-Muster entsprechen
"foo-*.jpeg":

ffmpeg -f image2 -pattern_type glob -framerate 12 -i 'foo-*.jpeg' -s WxH foo.avi

· Sie können viele Streams des gleichen Typs in die Ausgabe einfügen:

ffmpeg -i test1.avi -i test2.avi -map 1:1 -map 1:0 -map 0:1 -map 0:0 -c kopieren -y test12.nut

Die resultierende Ausgabedatei test12.nut enthält die ersten vier Streams aus dem
Eingabedateien in umgekehrter Reihenfolge.

· So erzwingen Sie die CBR-Videoausgabe:

ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k aus.m2v

· Die vier Optionen lmin, lmax, mblmin und mblmax verwenden 'Lambda'-Einheiten, aber Sie können die
QP2LAMBDA-Konstante zur einfachen Umrechnung von 'q'-Einheiten:

ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext

Verwenden Sie avconv online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

  • 1
    libusb
    libusb
    Bibliothek, um den Benutzerbereich zu aktivieren
    Anwendungsprogrammen, mit denen kommuniziert werden soll
    USB-Geräte. Zielgruppe: Entwickler, Ende
    Benutzer/Desktop. Programmiersprache: C.
    Kategorien...
    Laden Sie libusb herunter
  • 2
    SCHLUCK
    SCHLUCK
    SWIG ist ein Softwareentwicklungstool
    das verbindet in C geschriebene Programme und
    C++ mit einer Vielzahl von High-Level
    Programmiersprachen. SWIG wird mit verwendet
    anders...
    SWIG herunterladen
  • 3
    WooCommerce Nextjs Reaktionsthema
    WooCommerce Nextjs Reaktionsthema
    Reagieren Sie mit dem WooCommerce-Theme, das mit erstellt wurde
    Als nächstes JS, Webpack, Babel, Node und
    Express mit GraphQL und Apollo
    Klient. WooCommerce-Shop in React(
    enthält: Produkte...
    Laden Sie WooCommerce Nextjs React Theme herunter
  • 4
    archlabs_repo
    archlabs_repo
    Paket-Repo für ArchLabs Dies ist eine
    Anwendung, die auch abgerufen werden kann
    für
    https://sourceforge.net/projects/archlabs-repo/.
    Es wurde in OnWorks gehostet in...
    Laden Sie archlabs_repo herunter
  • 5
    Zephyr-Projekt
    Zephyr-Projekt
    Das Zephyr Project ist eine neue Generation
    Echtzeitbetriebssystem (RTOS), das
    unterstützt mehrere Hardware
    Architekturen. Es basiert auf einer
    Kernel mit kleinem Fußabdruck ...
    Laden Sie das Zephyr-Projekt herunter
  • 6
    SCons
    SCons
    SCons ist ein Software-Konstruktionstool
    das ist eine überlegene Alternative zum
    klassisches "Make"-Build-Tool, das
    wir alle kennen und lieben. SCons ist
    implementiert ein...
    Laden Sie SCons herunter
  • Mehr »

Linux-Befehle

Ad