MP4-Datei mit ffmpeg von einem bestimmten Zeitpunkt des Videos streamen

MP4-Datei mit ffmpeg von einem bestimmten Zeitpunkt des Videos streamen

Ich möchte eine Videodatei (.mp4) mit einer anderen Startzeit streamen.

FürBeispielIch möchte test.mkveine Datei ab Minute streamen, wie 00:02:30ein test.mkvVideo. Wenn ich sie also auf einen RTMP-Server streame, wird das Video ab 00:02:30Film gestartet, nicht gestartet. Notiz: Ich möchte nicht so lange warten. Ich möchte ab dem Moment beginnen, in dem ich auf ffmpegBefehl die Eingabetaste gedrückt habe. Daher sind Antworten wie „Verwenden“ cronjobnicht hilfreich.

Hier ist der ffmpegBefehl, 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 ffmpegdes 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 -iArgument platziert werden, damit es funktioniert. So einfach ist es, wenn man z. B. hinzufügt: -ss 150Es 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 -ssvor jedem -iArgument.

verwandte Informationen