So legen Sie FPS mit ffmpeg fest

5774
John M.

Ich versuche, meinen CCTV-Stream mit einem FPS von 7 in 300-Sekunden-Segmenten zu speichern. Hier ist mein Befehl:

ffmpeg -r 7 -i rtsp://192.168.1.100/...stream=0.sdp -acodec aac -strict -2 -vcodec copy -f segment -segment_time 300 -segment_format mp4 "mon1-%03d.mp4" 

Die Ausgabedatei scheint den '-r 7'-Befehl nicht zu respektieren (für FPS = 7). Weiß jemand, wie man die FPS des Ausgangs einstellt?

0

1 Antwort auf die Frage

0
slhck

Wenn Sie ein Argument zuvor einfügen -i, wird es nur auf die folgende Eingabe angewendet.

Verschieben Sie das -rArgument irgendwo zwischen der Eingabe- und Ausgabedatei.

In Ihrem Fall wird die Bildrate nicht geändert, da Sie nur den Videobitstream kopieren. Wenn Sie die Framerate ändern, müssen Sie das Video erneut codieren, da das Löschen von Frames bedeutet, dass Vorhersagen zwischen Frames nicht mehr gültig sind.

Ich habe versucht, es vor den Dateinamen zu setzen, aber die Ausgabe-FPS ist immer noch 20. John M. vor 6 Jahren 0
@slhck - Bei Containern mit Zeitmarken ändert die Eingabe "r" die PTS-Intervalle im Kopiermodus nicht. Funktioniert mit rohen Bitströmen. Gyan vor 6 Jahren 0
@ Mulvya Die Kopie wurde in der OP-Frage nicht angezeigt. Natürlich haben Sie Recht. slhck vor 6 Jahren 0
@John Es scheint, dass Sie das Video neu codieren müssen, da Sie das FPS nicht beliebig ändern können. Entfernen Sie die Kopieroption und stellen Sie einige Qualitätsparameter für die Ausgabe ein (z. B. "-crf 23"). slhck vor 6 Jahren 0