Speichern Sie das Video, das in mpv --ytdl abgespielt wird, während der Wiedergabe in einer Datei

4051
PawkyPenguin

Ich möchte ein Video mit mpv --ytdl abspielen und speichern können. Wie komme ich dazu? Besonders wichtig ist, dass auch der Puffer gespeichert wird.

Grundsätzlich möchte ich ein Video von youtube abspielen, dann mpv beenden und trotzdem das Video bis zu dem Zeitpunkt, zu dem es geladen wurde, ansehen. Daher brauche ich auch die Puffer, um sie in einer Datei speichern zu können.

Ich habe bereits versucht, mit youtube-dl -o - das Video nach stdout zu streamen und dann mit mpv zu piping, dh

youtube-dl -o - | mpv - 

(mit der idee, dass ich tee dazu verwenden könnte, den stream zu teilen und ihn einfach in eine datei zu schreiben) - dies hat jedoch das problem, dass ich mpv nicht verwenden kann, um durch das video zu navigieren - es ist nur ein fester stream, der von stdin nachher kommt alles. Eine andere Idee war, die Option -o von mpv zu verwenden, um eine Ausgabedatei anzugeben. Das spart jedoch nicht den internen Puffer.

1

3 Antworten auf die Frage

2
Martijn

Eine weitere Option, die noch sehr experimentell ist, ist die Verwendung von mpv --record-file:

mpv --record-file=video.mkv https://www.youtube.com/watch?v=… 

Ich hatte wenig Erfolg damit. Da die Quelldateien von youtube-dl gepackt werden müssen, müssen sie mit der Dateierweiterung übereinstimmen, die Sie für die Aufnahmedatei angeben. Dies scheint jedoch am nächsten zu dem, was in der Frage beschrieben wird.

Aus dem (aktuellen stabilen) Handbuch :

--record-file=<file>

Zeichne den aktuellen Stream in die angegebene Zieldatei auf. Die Zieldatei wird immer ohne Rückfrage überschrieben.

Dadurch wird der Quell-Stream ohne erneute Codierung remuxt. Dies macht ihn zu einem sehr fragilen und experimentellen Feature. Es ist durchaus möglich, dass Dateien geschrieben werden, die defekt sind, nicht den Standards entsprechen, nicht mit allen Playern (einschließlich mpv) oder nicht vollständig abspielbar sind.

Das Zieldateiformat wird durch die Dateierweiterung des Zieldateinamens bestimmt. Es wird empfohlen, wenn möglich den gleichen Zielcontainer als Quellcontainer zu verwenden und Matroska als Fallback zu bevorzugen.

Durchsuchen während der Stream-Aufnahme oder Aktivieren / Deaktivieren der Stream-Aufnahme während der Wiedergabe kann Daten abschneiden oder "Löcher" in der Ausgabedatei erzeugen. Dies sind technische Einschränkungen. Insbesondere Videodaten oder Untertitel, die im Voraus gelesen wurden, können zu solchen Löchern führen, was zu Wiedergabeproblemen bei verschiedenen Playern (einschließlich mpv) führen kann.

Das Verhalten dieser Option kann sich in der Zukunft ändern, z. B. durch Ändern in eine Vorlage (ähnlich --screenshot-template), Umbenennen, Entfernen oder irgendetwas anderes, bis sie als halbstabil erklärt wird.

1
Ipor Sircer
youtube-dl -o - | tee video.mp4 | mpv - 
1
laceration

youtube-dl url --exec mpv

Dieser Stream wird nicht abgespielt, er wird jedoch nach dem Herunterladen wiedergegeben. Sie kennen den Unterschied jedoch nur, wenn Sie über ein Einwahlkonto verfügen.