Ich versuche, eine von einer DVD kopierte VOB-Datei in Ubuntu 13.10 in ein AVI zu konvertieren. Ich habe es versucht dvdrip
, was aufgrund eines Frame-Count-Fehlers oder so etwas fehlgeschlagen ist. Ich habe auch Acidrip ausprobiert, aber es wurde immer eine Audiospur ausgewählt, die ich nicht verwenden wollte. Ich würde es vorziehen, eine Befehlszeilenlösung zu haben, um ein AVI mit den folgenden Funktionen zu erstellen:
- verwendbar mit mplayer (dh mit den step-funktionen)
- mit dem erforderlichen Untertitel (oder überhaupt niemandem)
- mit der richtigen Audiospur
- mit synchronem Video und Audio
Ich habe versucht , einige ffmpeg
und avconv
Befehle und verwaltet ein avi zu schaffen, aber die Video- und Audio waren komplett aus dem Takt. Welche Optionen sollte ich verwenden, um die VOB-Datei in eine AVI-Datei zu konvertieren?
Ich würde mich über einige Erklärungen zu den vorgeschlagenen Optionen freuen!
Zusätzliche Information:
Der
ffmpeg
Befehl gibt die folgende Ausgabe für die Eingabedatei ausInput #0, mpeg, from 'Videos/Test/VIDEO_TS/VTS_01_1.VOB': Duration: 00:04:53.32, start: 0.045500, bitrate: 29284 kb/s Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 8:9 DAR 4:3], 7500 kb/s, 27.68 fps, 59.94 tbr, 90k tbn, 59.94 tbc Stream #0.1[0x82]: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s Stream #0.2[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s Stream #0.3[0x81]: Audio: ac3, 0 channels [buffer @ 0x15ca6e0] w:720 h:480 pixfmt:yuv420p
Der folgende Befehl
ffmpeg -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -ss 589 -t 274 -sameq -acodec copy -ab 320k output.avi
führte zum Beispiel zu einem Absturz meiner Ubuntu-Sitzung.
Der folgende Befehl
avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy output.avi
führte beispielsweise zu folgendem Fehler:
Application provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374 av_interleaved_write_frame(): Invalid argument
Der folgende Befehl
avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k output.avi
führte beispielsweise zu folgendem Fehler:
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
Der folgende Befehl
avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a ac3 -b:a 128k output.avi
zum Beispiel schien für einige Frames zu funktionieren. Aber sehr bald stieß ich auf viele Fehler des Formulars
[ac3 @ 0x120d480] frame sync error Error while decoding stream #0:1 frame CRC mismatch
Der folgende Befehl
mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -oac copy -ovc x264 -x264encopts bitrate=2500 -o output.avi
hat einige Konvertierungen durchgeführt, verwendet aber (i) Untertitel, obwohl ich sie nicht verwenden wollte (ii) habe das Audio falsch verstanden (Audio und Video sind furchtbar verlegt) und (iii) scheint langsamer zu sein, als der Film tatsächlich läuft (möglicherweise dauert) 2 Stunden für einen 90-minütigen Film).
Ich habe versucht, Befehl gegeben hier (dritter Beitrag von Xeratul), aber knapp mit dem Fehler
FATAL: Cannot initialize video driver.
Ich habe den folgenden Vorschlag ausprobiert, um auf die Mencoder-Seite zu schauen . Diese Seite schlägt vor, zwei Durchgänge zu verwenden:
Der erste liest Informationen über den Film, der zweite verwendet diese Informationen zum Codieren.
Es wird jedoch weder erklärt, welche Informationen extrahiert werden sollen, noch wie sie im zweiten Durchgang verwendet werden sollen. Also habe ich den folgenden Befehl verwendet:
mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -nosound -ovc x264 \ -x264encopts direct=auto:pass=2:bitrate=900:frameref=5:bframes=1:\ me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \ -vf scale=-1:-10,harddup -o video.avi
das hat das Video konvertiert, aber mit einem unerwünschten Untertitel. Es ist überhaupt nicht klar, wie ich die Verwendung eines Untertitels vermeiden kann.
quelle
ffmpeg
ist seit langem veraltet, soll man seinen eigenen nachfolger verwenden :avconv
.avconv
dann, um VOB-Dateien in avi zu konvertieren. Der Befehlavconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy test.avi
gab einen FehlerApplication provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374 av_interleaved_write_frame(): Invalid argument
...avconv -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.avi
versuchen Sie diesError while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
mencoder yourvob -oac copy -ovc x264 -x264encopts pass=1:preset=veryslow:fast_pskip=0:tune=film:frameref=15:bitrate=3000:threads=auto -nosub -o /dev/null
dannmencoder yourvob -oac copy -ovc x264 -x264encopts pass=2:preset=veryslow:fast_pskip=0:tune=film:frameref=15:bitrate=3000:threads=auto -nosub -o video.avi
- teilweise aus dem Arch doc @ dg99 verlinkt.Antworten:
Um die Untertitel loszuwerden, können Sie den
-nosub
Schalter direkt nach dem Namen der .VOB-Datei hinzufügen .Beispiel
Einzelheiten
Diese Beschwörungsformeln sind oft sehr dicht, um diese ein wenig aufzubrechen
Videos/Test/VIDEO_TS/VTS_01_1.VOB
-o video.avi
-nosub
-nosound
-ovc x264
Liste anderer Codecs
x264encopts
direct=auto
pass=2
bitrate=900
frameref=5
bframes=1
Vollpixel-Bewegungsschätzung alg.:
me=umh
HINWEIS : umh - ungleichmäßige Suche mit mehreren Sechsecken (langsam)
Aktivieren Sie alle Makroblock-Typen:
partitions=all
optimale Quantisierung der Ratenverzerrung:
trellis=1
HINWEIS: 2 - aktiviert bei allen Modusentscheidungen (langsam, erfordert subq> = 6)
Quantisierer-Inkrement / Dekerement-Wert:
qp_step=4
HINWEIS: Maximalwert, um den der Quantisierer zwischen Frames inkrementiert / dekrementiert werden kann (Standard: 4)
Quantisiererkomprimierung (Standard: 0,6):
qcomp=0.7
direct_pred=auto
maximales Intervall zwischen Keyframes in Frames:
keyint=300
Optionen danach sind Videofilter:
-vf
HINWEIS: Für die Videofilterschalter ist es wichtig, dass Sie
harddup
als letzten Filter verwenden: Dadurch wird MEncoder gezwungen, jeden Frame (auch doppelte) in die Ausgabe zu schreiben. Außerdem ist es notwendig , zu verwenden ,scale=$WIDTH,-10
mit$WIDTH
als-1
die ursprünglichen Breite zu behalten oder eine neue, in der Regel kleine, Breite: es ist notwendig , da die H.264 - Codecs quadratische Pixel und DVD verwenden stattdessen rechteckige Pixel verwendet werden .scale=-1
-10
harddup
quelle
-noaudio
und mit verwende,-oac copy
erhalte ich das Audio, das nicht mit dem Video synchronisiert ist. Es wird entweder mit einer anderen Geschwindigkeit oder mit beiden verschoben. Irgendwelche Vorschläge, wie ich auch das Audio richtig machen kann? Und was ist mit mehreren VOB-Dateien? Wie packe ich den Inhalt in eine einzelne.avi
Datei (oder ein anderes Format)?-oac copy
mit 2 Durchgängen machen können , da Sie das Video neu codieren, müssen Sie das Audio zusammen mit ihm neu codieren. Um sie zu "packen", sollten die VOB-Dateien wie folgt zusammengeführt werden :cat *.vob all.vob
. Dannall.vob
im Mencoder cmd verwenden. Es gibt auch andere Möglichkeiten, dies zu tun.Wenn Sie verwenden möchten
mplayer
, sollten Sie es versuchenmencoder
( http://www.mplayerhq.hu ). Eine der besten Eigenschaften ist, dass sich die Wiedergabeoptionen, die Sie kennenmplayer
, beim Codieren ziemlich ähnlich verhalten. Außerdem gibt es viele Dokumentationen und E-Mail-Threads, die genau das abdecken, was Sie fragen:quelle
mencoder
Seiten durch. Es gibt mehrere Piratengruppen, die nurmencoder
für ihre gesamte Arbeit verwenden. So einfach und leistungsstark und automatisierbar kann es sein.Ich weiß, dass dies ein alter Beitrag ist, aber bei der Suche nach diesem Problem im Internet wird die obige Frage angezeigt, und einige andere Einträge sind noch älter.
Ich habe verschiedene Tools ausprobiert, bin aber am Ende mit diesem Befehl am zufriedensten:
Es ist eine leichte Modifikation von der, die ich hier gefunden habe .
Ich habe gerade den Audio-Codec ersetzt (
libflac
war auf meinem System nicht vorhanden, daher habe ich ihn durchlibmp3lame
( Quelle ) und den-crf
Wert zur Qualitätssteigerung ersetzt. Es können auch andere Formate verwendet werden, zmp4
.In meinem Test (mit einem eher mittelmäßigen Prozessor) wurde eine 2,6-GB-VOB-Datei (bereits aus drei anderen Dateien verkettet) in etwa 50 Minuten in ein 960-MB-AVI-Video von vergleichbarer Qualität konvertiert.
20 ist die mittlere akzeptable Qualität (in Handbremshilfeartikeln, die ich gesehen habe). Größere Zahlen reduzieren die Größe auf Kosten der Qualität. Über 20 Qualitätsverlust ist klar.
Es ist besser, diesen Befehl in einem Terminal zu verwenden, um den Fortschritt zu sehen, ihn leichter zu beenden usw.
Was mir an diesem Befehl gefällt, ist, dass er ein ausgewogenes Verhältnis zwischen Qualität, Zeit und Größe bietet und einfach über das Kontextmenü des Dateimanagers verwendet werden kann.
Wie das geht, hängt vom Dateimanager ab. Der Befehl kann Thunar und Nautilus einfach als 'benutzerdefinierte Aktion' hinzugefügt werden. Ich habe es Dolphin mit einer
~/.kde/share/kde4/services/ServiceMenus/convert_vob_to_avi.desktop
Datei wie dieser hinzugefügt :quelle