NEWS
[GELÖST] - FFMPEG: MP4 und JPG aus RTSP-Stream
-
Tag!
Ich habe mehrere Kameras, die einen RTSP-Stream zur Verfügung stellen. Ich möchte nun ein Bild und ein Video aus den jeweiligen Streams erstellen und per Telegram verschicken. Letzteres ist kein Problem. Mein Problem ist, dass ich nicht so richtig mit FFMPEG klarkomme... Leider ergab die Suche hier im Forum nichts Verwertbares.
Derzeit erstelle ich mit folgendem Befehl ein 3 sekündiges mp4-Video, das ich dann anschliessend auf dem Rasp speicher und dann per Telegram verschicke. Der Befehl war der einzige, den ich im Netz gefunden habe und auch funktioniert.
ffmpeg -y -i rtsp://xxx.xxx.xxx.xxx/stream1 -t 3 -f mp4 -vcodec libx264 -pix_fmt yuv420p -an -vf scale=w=640:h=360:force_original_aspect_ratio=decrease -r 15 /SPEICHERORT_RASPBERRY/Video.mp4
Das Problem ist, dass die Videos qualitativ echt mies sind. Manchmal sieht das Video gut aus, aber meistens so:
Warum ist das so bzw. wie erstelle ich ein sauberes kurzes Video aus dem RTSP-Stream?
Wie lautet der Befehl für ein Bild?Das Problem tritt bei allen Kameras auf. An der WLAN-Verbindungsqualität kann es nicht liegen.
Gruss
Puls -
@puls200 sagte in FFMPEG: MP4 und JPG aus RTSP-Stream:
Leider ergab die Suche hier im Forum nichts Verwertbares.
-
@glasfaser Naja, wie schon gesagt... dieser Thread bringt mich auch nicht weiter. Ist ja nicht so, dass ich noch nicht gesucht hätte. Der Befehl ist identisch zu meinem, jedoch habe ich diese genannten qualitativen Probleme. Ausserdem holt sich der Befehl aus dem Thread ein Bild direkt von der Kamera (--> CGI). Das kann meine Kamera nicht. Ich habe nur einen RTSP-Stream, aus dem ich nun mit Hilfe von FFMPEG ein JPG (oder sonstiges Bild) und ein MP4 (oder sonstiges Video) generieren möchte, aber ohne die genannten Bildfehler.
Ich habe diese zwei Fragen (JPG aus RTSP und fehlerhaftes Video aus RTSP) nochmal explizit im ersten Thread formuliert.
-
Hier meine inzwischen gefundene Lösung:
Video aus RTSP (3 Sekunden-Video):
ffmpeg -y -i rtsp://IP-ADRESSE_PORT554_EVTL_MIT_ZUGANGSDATEN -t 3 -f mp4 -vcodec libx264 -pix_fmt yuv420p -an -vf scale=w=320:h=180:force_original_aspect_ratio=decrease -r 15 /ORDNER/VIDEO.MP4ffmpeg -i IP-ADRESSE_PORT554_EVTL_MIT_ZUGANGSDATEN -f image2 -vframes 1 -pix_fmt yuvj420p /ORDNER/BILD.JPG
-
@puls200 hast Du schonmal von ffserver gehört?
War in alten ffmpeg Versionen dabei, in den neuen leider nicht mehr. Damit wird von jeder Kamera der stream abgegriffen und in ffmpeg weiter verarbeitet. Lässt sich auch in neuen Versionen einbinden.
Nachteil: braucht sehr viel Rechenleistung. Raspi 4 oder NUC ist Voraussetzung.
Bei mir läuft das Ding auf einem NUC in eigenem Container. Verarbeitet derzeit 4 Kameras gleichzeitig in verschiedene Formate. Bei Interesse such ich Dir mal die Einzelheiten dazu raus und zeig Dir auch meine config als Beispiel. -
Zur Info: hiermit extrahiere ich nun erfolgreich ein Bild aus einem RTSP-Stream:
ffmpeg -y -rtsp_transport tcp -i rtsp://<IP-Adresse_der_Cam>:554/user=XXX_password=XXX_channel=0_stream=0.sdp?real_stream -vframes 1