Ich möchte eine Videodatei (.mp4) mit einer anderen Startzeit streamen.
FürBeispielIch möchte test.mkv
eine Datei ab Minute streamen, wie 00:02:30
ein test.mkv
Video. Wenn ich sie also auf einen RTMP-Server streame, wird das Video ab 00:02:30
Film gestartet, nicht gestartet.
Notiz: Ich möchte nicht so lange warten. Ich möchte ab dem Moment beginnen, in dem ich auf ffmpeg
Befehl die Eingabetaste gedrückt habe. Daher sind Antworten wie „Verwenden“ cronjob
nicht hilfreich.
Hier ist der ffmpeg
Befehl, den ich verwende:
ffmpeg -i test.mkv -pix_fmt yuv420p -vsync 1 -threads 0 -vcodec libx264 -r 30 -g 60 -sc_threshold 0 -b:v 512k -bufsize 640k -maxrate 640k -preset veryfast -profile:v baseline -tune film -acodec aac -b:a 128k -ac 2 -ar 48000 -af "aresample=async=1:min_hard_comp=0.100000:first_pts=0" -bsf:v h264_mp4toannexb -f flv rtmp://test.server.com
Notiz:
Wenn Sie Vorschläge zur Verbesserung ffmpeg
des Kommandos haben, bin ich Ihnen ebenfalls dankbar.
Antwort1
Es sieht so aus, als ob die Flagge da ist -ss
, aber es gibt einen kleinen Tipp, damit es funktioniert. Sie muss vor jedem -i
Argument platziert werden, damit es funktioniert. So einfach ist es, wenn man z. B. hinzufügt: -ss 150
Es startet 150 Sekunden nach dem Start des Videos. Der obige Befehl sieht also so aus:
ffmpeg -ss 150 -i test.mkv -pix_fmt yuv420p -vsync 1 -threads 0 -vcodec libx264 -r 30 -g 60 -sc_threshold 0 -b:v 512k -bufsize 640k -maxrate 640k -preset veryfast -profile:v baseline -tune film -acodec aac -b:a 128k -ac 2 -ar 48000 -af "aresample=async=1:min_hard_comp=0.100000:first_pts=0" -bsf:v h264_mp4toannexb -f flv rtmp://test.server.com
Notiz:
Platzieren Sie es -ss
vor jedem -i
Argument.