Ich habe diese Linux-Befehlszeilen-App namens avcon . Es wird zum Konvertieren von Dateien verwendet. Wenn ich zum Beispiel eine Datei namens video.mp4 habe, kann ich sie ausführen avconv -i video.mp4 video.ogg
und sie wird video.mp4
in video.ogg
.
Also mein Problem (Frage): Immer wenn eine Datei konvertiert wird, ist die Qualität der Ausgabedatei im Vergleich zum Originalvideo (dem Eingabevideo) super schlecht. Wie kann ich damit umgehen? Ich meine, wie kann ich die Datei konvertieren und trotzdem die gleiche Qualität erhalten?
Wenn dies mit dieser App nicht möglich ist. Kann jemand etwas anderes zum Konvertieren von Videodateien über die Befehlszeile vorschlagen?
ffmpeg
Laden Sie einen aktuellen Build von ffmpeg
. Binärdateien für Windows, Linux und OS X sind auf der FFmpeg-Downloadseite verfügbar . Die Entwicklung ist sehr aktiv und es besteht keine Notwendigkeit, Buggy zu verwenden avconv
(beachten Sie, dass diese Antwort für geschrieben wurde ffmpeg
, daher bin ich mir nicht sicher, ob Beispiele mit funktionieren avconv
).
Theora ist alt und wurde in vielen Fällen durch VP8/VP9-Video in WebM ersetzt (siehe Beispiel unten), daher gibt es nur wenige Gründe, Theora in OGG/OGV zu verwenden.
ffmpeg -i input -c:v libtheora -q:v 5 -c:a libvorbis -q:a 5 output.ogv
-q:v
- Videoqualität. Der Bereich liegt zwischen 0 und 10, wobei 10 die höchste Qualität ist. 5-7 ist ein guter Bereich zum Ausprobieren. Wenn Sie es weglassen , -q:v
wird ffmpeg
der Standardwert verwendet, der -b:v 200k
höchstwahrscheinlich eine Ausgabe in schlechter Qualität liefert, und libtheora kann Frames auslassen/überspringen, wenn die Bitrate zu niedrig ist.
-q:a
- Audio Qualität. Der Bereich liegt zwischen 0 und 10, wobei 10 die höchste Qualität ist. 3-6 ist ein guter Bereich zum Ausprobieren. Standard ist -q:a 3
.
Adaptiert von FFmpeg Wiki: A Brief Theora and Vorbis Encoding Guide .
ffmpeg -i input -c:v libvpx -qmin 0 -qmax 50 -crf 5 -b:v 1M -c:a libvorbis -q:a 5 output.webm
Siehe FFmpeg Wiki: VP8 Encoding Guide und VP8 Encode Parameter Guide , um Ihren Befehl zu optimieren.
Wenn Sie VP9-Video codieren möchten, verwenden Sie -c:v libvpx-vp9
. Es ist derzeit ein langsamer Encoder.
Verwenden:
$ avconv -i video.mp4 -vcodec copy video.ogg
dies sollte funktionieren, die -vcodec copy
Option kopiert die Videospur aus dem mp4-Container in den ogg-Container.
Wenn es nicht funktioniert, siehe:
$ avconv -codecs
die -codecs
Option zu sehen, welche von Ihrem Programm unterstützt werden. Das hängt von den Bibliotheken ab, die nach dem Kompilieren der Quelle eingebunden wurden.
Siehe Handbuch:
$ man avconv
für weitere Informationen zu Optionen wie -r
(Option Video-Bitrate).
Mit dieser Option können Sie eine bessere Bitrate für das Video auswählen, eine ähnliche Bitrate wie das Quellvideo kann eine gute Wahl sein, wenn es nicht gut funktioniert, versuchen Sie es mit einer höheren Rate.
Obwohl avconv
es sich um eine Entwicklung handelt, die von einer Verzweigung von FFmpeg abgeleitet ist, können ihr immer noch Funktionen und Fehlerbehebungen fehlen, die in ffmpeg
.
stib