Live-Stream / RTSP-Stream mit ffmpeg unter Linux aufzeichnen.
Mit ffmpeg kann man sehr einfach von der Linux Konsole aus, den RTSP-Stream einer IP-Kamera abrufen. Je nach verwendeten Optionen, kann so ein reines Streamcopy ohne Kodierung des Kamerastream, ein Streamrecord mit Kodierung oder auch nur ein Test der Verbindung zur IP-Kamera durchgeführt werden.
Mit diesem Befehl wird ein reines Streamcopy des Livestream für 15 Sekunden durchgeführt. Die RTSP-Adresse muss natürlich individuell angepasst werden.
# ffmpeg -hide_banner -loglevel info -rtsp_transport tcp -t 00:00:15 -i rtsp://USER:PASS@192.168.120.123:554/Streaming/101 -codec:v copy -codec:a copy stream.mp4 |
Die Aufzeichnung wird unverändert so gespeichert, wie sie von der IP-Kamera ausgegeben wird. Codecs,
Auflösung und Bitrate, entsprechen den Einstellungen in der IP-Kamera. Die Länge der Aufzeichnung ist hier
im Format HH:MM:SS angegeben. Alternativ können auch nur Sekunden angegeben werden. Ohne diese Angabe wird
die Aufzeichnung, bis zum manuellen Abbruch, kontinuierlich fortgesetzt.
Soll der Stream auch neu kodiert
werden, so muss für Video und Audio der gewünschte Codec, anstelle von copy angegeben
werden.
Werden die Optionen -codec:v copy und -codec:a copy nicht angegeben, führt ffmpeg
eine Kodierung des empfangenen RTSP-Stream, mit automatischer Auswahl der Codecs durch.
Soll nur ein Test der Verbindung und Geschwindigkeit zur IP-Kamera durchgeführt werden, ist das mit diesem Befehl möglich.
# ffmpeg -hide_banner -loglevel info -rtsp_transport tcp -t 00:00:15 -i rtsp://USER:PASS@192.168.120.123:554/Streaming/101 -f rawvideo -y /dev/null |
In beiden Fällen ist hier -rtsp_transport tcp angegeben, was zumeist die besten Ergebnisse liefern sollte. Unter Umständen kann es nötig sein, die Angabe -rtsp_transport udp zu machen.