Handbremse - Stop-at-Parameter funktioniert nicht wie vorgesehen

7

Ich führe Folgendes über die Befehlszeile aus:

handbrakeCLI.exe -i SourceFile.mkv -o OutputFile.mkv --stop-at 120

Laut CLIGuide können Sie den Wert --stop-at als Sekunden angeben (was ich möchte, beenden Sie die Codierung von 120 Sekunden in die Datei).

Mein Ziel ist es, schnell einen Videoclip von sehr hoher Qualität aus einem vollständigen Film zu erstellen, um andere Codierungsprozesse zu testen.

Wenn ich jedoch meine Ausgabedatei ansehe, ist dies der gesamte Film. Irgendwelche Ideen?

karlgrz
quelle

Antworten:

9

Die Antwort finden Sie in der Hilfe von Handbrake:

handbrakeCLI.exe --help

Die korrekte Syntax lautet wie folgt:

--stop-at     <unit:#>  Stop encoding at a given frame, duration (in seconds),
                        or pts (on a 90kHz clock)

Beispiel:

handbrakeCLI.exe -i SourceFile.mkv -o OutputFile.mkv --stop-at duration:120

Dadurch erhalten Sie die ersten 120 Sekunden des Videos

Stefan Schmidt
quelle
1
Hast du das tatsächlich versucht? Dieser Befehl sieht so aus, wie Sie es möchten, aber in meinen Experimenten hat er das GESAMTE Video-Asset verarbeitet, als ich nur die ersten zwei Minuten wollte. Scheitern.
Karlgrz
Ja, ich habe den Befehl erfolgreich verwendet. Es ist wichtig, das Schlüsselwort dauer und einen Doppelpunkt vor der Dauer anzugeben, da dies sonst nicht funktioniert.
Stefan Schmidt
Toller Punkt! Vielen Dank für das Follow-up! Ich gehe immer noch mit FFmpeg, da ich mich damit besser auskenne und es oft benutze.
Karlgrz
1
Früher funktionierte das für mich, aber jetzt codierte ich eine Datei, in der der --stop-atParameter ignoriert wurde (dh unabhängig davon, auf was ich ihn eingestellt habe, HandBrakeCLIcodierte immer die gesamte verbleibende Datei), während der --start-atParameter eingehalten wurde. Irgendwelche Hinweise?
Kynan
Beachten Sie, dass dies --stop-at duration:120bedeutet, 120 Sekunden zu codieren und in Kombination mit und einer Dauer> 0 nicht bei 120 Sekunden im Video anzuhalten --start-at. Dies ist ein wenig kontraintuitiv und hat mich dort verwirrt.
Kynan
4

Ok, also habe ich beschlossen, mein Problem mit ffmpeg als solchem zu lösen :

ffmpeg -i SourceFile.mkv -ss 00:00:05 -t 00:02:30 -ac 2 -sn OutputFile.mkv

Erläuterung:

  • ss: Start starten oder "Beginne meine Codierung zu diesem Zeitpunkt" (hh: mm: ss)
  • t: Dauer (hh: mm: ss)
  • ac: Audiokanäle, da dieser bestimmte Film ein Problem mit der Verbreitung der Audiospuren während der Codierung hatte
  • sn: Untertitel unterdrücken, da sich ffmpeg über die Untertitelspur beschwerte

Dies funktionierte perfekt für das, was ich suchte.

karlgrz
quelle
1

Ab April 2015 habe ich Folgendes gefunden, und ich frage mich, ob sich dies in Zukunft ändern wird:

--start-at duration:120 --stop-at duration:60

Die start-atDauer ist wirklich irgendwann "beginnen" . Die stop-atDauer ist wirklich eine Länge (eine wahre Dauer). Das Wort durationbedeutet also verschiedene Dinge. Die obige Zeile bedeutet: Beginnen Sie um 00:02:00 Uhr und für 60 Sekunden. Ein schneller Weg, sich daran zu erinnern, ist: start-atist an einem Punkt und stop-atist für eine Länge.

Unpolarität
quelle