Verketten von Ogg-Videodateien über die Befehlszeile

18

Okay. Ich habe ein paar Ogg-Dateien, die ich mit einem Desktop-Aufnahme-Tool erstellt habe . Ich habe sie ffmpegeinmal transkodiert (hauptsächlich, um die Anfänge und die Enden auszuschneiden).

Jetzt habe ich 3 solcher Dateien, die ich zu einer einzigen .ogvDatei verketten möchte . Ich habe versucht oggCat, es zu verwenden , es ist mit einer Art Fehler abgestürzt (ich habe versucht, eine Datei mit zu sich selbst zu verketten oggCat, was mich zu der Annahme verleitet, dass meine Distribution eine kaputte Version des Pakets liefert). Einfach catdie Dateien zu speichern funktioniert, aber ich kann nicht suchen, was nicht cool ist. mencoderlaufe so mencoder -ovc lavc -oac lavc file1.ogv file2.ogv file3.ogv -o complete.ogv. Es transkodiert die Dateien in eine aviund schneidet ein wenig von den 3 Videos ab.

Wie mache ich das?

Update 1: Meine aktuelle Problemumgehung ist die 3 - Dateien in umcodieren .mpgmit ffmpeg, dann cating sie zusammen und dann Umcodieren sie in zurück ogv.

Update 2: PiTiVi funktioniert für diese Art von Dingen, aber ich benötige etwas von der Befehlszeile, das ich automatisieren und skripten kann.

Noufal Ibrahim
quelle
@gry, Was fehlt in der aktuellen Antwort?
Soandos
@gry, aber du willst genau die gleichen Funktionen, aber einen anderen Namen? Oder gibt es einen Funktionsunterschied, den Sie suchen? Ich stimme nicht zu, dass das vom OP gefordert wurde. Er wollte, dass seine Dateien verkettet wurden, und oggCat funktionierte nicht. Jetzt ist es so, also verfolge ich nicht, was fehlt.
Soandos
@soandos: Die ursprüngliche Frage war "oggCat funktioniert bei mir nicht, gibt es eine Alternative?" und obwohl der Fragesteller es zum Laufen brachte, könnte es nützlich sein, mögliche Alternativen zu finden, wie ursprünglich erwartet.
@gry, es ist 1) jetzt behoben (siehe letzten Kommentar zu meiner Antwort) und 2) Ich kann den Kommentar, den Sie zitieren, nicht finden.
Soandos
1
Meine Hauptabsicht war es, die Videos zu verketten. Als die Antworten kamen, entfernte ich mich von ogv und kümmerte mich nicht wirklich um die Frage. Ich erwähnte ausdrücklich, dass ich oggCat nicht verwenden wollte, weil es bei mir nicht funktionierte, als ich die Frage stellte.
Noufal Ibrahim

Antworten:

9

Ogg Video Tools scheint das zu tun, wonach Sie suchen.

Kurze Beschreibung:

Manchmal wäre es schön, zwei oder mehr Videodateien zu verketten (zusammenzufügen). Dazu können Sie oggCat verwenden, das aus den angegebenen Dateien eine fortlaufende Ogg-Videodatei erstellt.

# oggCat newFile.ogv file1.ogv file2.ogv [ file3.ogv [...] ]

Hinweis: Die Videodateien müssen in Framerate, Keyframe-Lücke, Framesize usw. übereinstimmen.

Sehen Sie mehr hier und hier .

soandos
quelle
2
Ich habe meine Erfahrungen mit oggCat in meiner Frage erwähnt. Funktionierte auch nicht, als ich versuchte, die Datei für sich selbst zu verketten.
Noufal Ibrahim
Haben Sie versucht, das Paket direkt herunterzuladen? Und was war der Fehler?
Soandos
1
Ich habe versucht, es aus dem Quellcode zu kompilieren. Ich habe einen sehr großen Hexdump und dann einen Segfault.
Noufal Ibrahim
diese Datei? Möglicherweise möchten Sie eine frühere Version ausprobieren, wenn das Kompilieren fehlschlägt.
Soandos
1
Ich bin mir nicht sicher, ob dies für Sie von Nutzen ist, aber die heruntergeladene Binärversion funktioniert.
Soandos
5

Ich würde dafür den Concat-Demuxer von ffmpeg verwenden (benötigt eine aktuelle Version von ffmpeg).

Erstellen Sie zunächst eine Datei mit dem Namen inputs.txt (oder einen beliebigen Namen), die folgende Zeilen enthält:

file '/path/to/input1.ogv'
file '/path/to/input2.ogv'
file '/path/to/input3.ogv'

Beachten Sie, dass dies ein relativer oder ein absoluter Dateipfad sein kann. Wenn sich Ihre Dateien alle im selben Verzeichnis befinden und in einem ähnlichen Muster wie input1.ogv, input2.ogv ... benannt sind , können Sie eine for-Schleife verwenden, um inputs.txt zu generieren:

rm inputs.txt; for f in input*.ogv; do echo "$f" >> inputs.txt; done

Sobald Sie Ihre Datei erstellt haben, können Sie die ogv-Dateien wie folgt verlustfrei verketten:

ffmpeg -f concat -i inputs.txt -c copy output.ogv
Übelsuppe
quelle
Heh, habe diese Antwort gleich gefunden, nachdem ich es selbst herausgefunden habe. Die oggCat-Lösung hat aufgrund einiger seltsamer Fehler bei mir nicht funktioniert. Dies funktionierte gut ..
Jindra Helcl
1

Haben Sie PiTiVi ausprobiert ? Platzieren Sie die drei Clips nacheinander auf der Timeline und speichern Sie das Ergebnis als eine Datei.

Shane Wealti
quelle
Ja, aber es ist keine Befehlszeile. Ich kann dies nicht mithilfe eines Skripts automatisieren, wenn ich PiTiVi verwende.
Noufal Ibrahim
1
Ich habe den Punkt in meiner Frage jetzt erwähnt.
Noufal Ibrahim
1

http://www.xiph.org/oggz/ hat eine Funktion,

  • merge Ogg-Dateien zusammenführen und Seiten in der Reihenfolge der Präsentationszeit verschachteln.

Bearbeiten: Dies macht nicht das, was Sie wollen, da Sie ein Video nach dem anderen abspielen möchten.


http://sox.sourceforge.net könnte auch funktionieren, die Syntax ( http://sox.sourceforge.net/sox.html ):

 sox infile1 infile2 outfile

Bearbeiten: Dies behandelt nur Audio.


Sie könnten versuchen , die oggvideotools zu kompilieren und zu prüfen, ob oggCat dann funktioniert.

Edit: das hat bei dir geklappt ...


Sie können http://sourceforge.net/projects/oggvideotools/support aufrufen , um die Probleme mit Ihrer Distribution zu beheben, einschließlich des Textes der Fehlermeldungen, die Sie erhalten, wenn Sie 1) die Binärdatei ausführen, die Sie aus Ihren Distributions-Repositorys erhalten. 2) kompilieren 3) Führen Sie die kompilierte Version aus.

Bearbeiten: Sie suchen nach alternativen Programmen für die Verkettung.


Versuchen Sie, mit mkvtoolnix ogg-Dateien in einzelne mkv zu verketten, und extrahieren Sie dann ogg mit demselben Tool


quelle
1
Das Zusammenführen unterscheidet sich von der Verkettung und macht nicht das, was ich will. SoX ist nur Audio und kann keine Videos verarbeiten.
Noufal Ibrahim
1
Es " verschachtelt Seiten in der Reihenfolge der Präsentationszeit". Ich möchte verketten. Man sollte spielen, nachdem der andere vorbei ist.
Noufal Ibrahim
1
Da dies die einzige Antwort ist, schätze ich, dass Stack Exchange ihm das Kopfgeld zuschreibt, obwohl es die Frage überhaupt nicht beantwortet.
Noufal Ibrahim
1
Ich kann jedes dieser Tools "reparieren" lassen, indem ich in den jeweiligen Mailinglisten nachfrage, ob ich Probleme habe. Ich suche nach Alternativen zu denen, die ich angegeben habe.
Noufal Ibrahim
1
Ich werde es mit mkvtoolnix versuchen, obwohl ich etwas vorziehen würde, oggCatdas tatsächlich funktioniert. Ich habe zwar auf ogg aufgegeben. Viele Leute scheinen es nicht spielen zu können. Ich habe auf webm und einen flv fallback umgestellt.
Noufal Ibrahim