Ich möchte, dass mplayer und VLC zur exakt gleichen Zeit mit der Wiedergabe beginnen. Der Player sollte:
- Videodatei laden, puffern, alles vorbereiten;
- Warten Sie, bis die UNIX-Zeit N Sekunden und M Millisekunden beträgt
- Starten Sie das Spiel entsprechend der Framerate (ohne langfristige Abweichungen).
Wie lässt sich dies besser erreichen?
Antwort1
Sie könnten in MPlayer einen FIFO als Eingabe verwenden und die Wiedergabe zum angegebenen Zeitpunkt starten.
Ich habe einige minimale Codebeispiele kopiert und eingefügt, die ich vor Jahren in einem Skript verwendet habe und die aus Skriptgründen zum Überspringen von Videos verwendet wurden.
Erstellen Sie ein FIFO:
[ ! -p /tmp/mplayer-fifo ] && mkfifo /tmp/mplayer-fifo
Starten Sie MPlayer mit zB
mplayer myfile.avi -input /tmp/mplayer-fifo
Senden Sie den Skip-Befehl aus einem anderen Skript mit
echo "seek 10" > /tmp/mplayer-fifo
Sie können stattdessen das FIFO verwenden, um das Video zu starten und anzuhalten. Verwenden Sie es, at
um den Wiedergabebefehl zu einem bestimmten Zeitpunkt auszuführen.
Wenn das Video gestartet und dann sofort pausiert wird und dann nur noch auf die "play"
Anweisung gewartet wird, sollte jegliches Puffern vermieden werden.