Raspberry Pi Livestream YouTube?
Ich würde gerne mit einem Raspberry Pi einen Live-Stream zu YouTube aufbauen. Hierzu habe ich an den Raspberry Pi 4 eine USB Webcam angeschlossen (wird erkannt und ich kann Bilder aufnehmen).
Wenn ich nun folgenden Befehl ausführe, wird mir im Terminal angezeigt das Frames nach YouTube übertragen werden, jedoch kommt bei YouTube kein Videosignal an.
Befehl:
ffmpeg -f v4l2 -i /dev/video0 -vcodec libx264 -preset ultrafast -b:v 1500k -maxrate 1500k -bufsize 3000k -pix_fmt yuv420p -g 60 -r 30 -f flv "rtmp://a.rtmp.youtube.com/live2/xxxx-xxxx-xxxx-xxxx“
Weiß jemand woran es liegen könnte?
1 Antwort
Je nach Webcam kann es sein, dass der Videostream der Kamera bereits in h264 ist dann brauchst du den Encoder nicht mehr sondern nur copy.
Versuch mal mit ffplay den Stream zu öffnen.
Ich habe allerdings bei den meisten Webcams am Pi ein großes Problem, weil die meistens extrem langsam (1-2FPS) sind.
Sofern ich weiß verwendet libx264 auch Software Encoding und ist noch langsamer.
Zeigt dir ffplay das Format des streams an?
Ich verwende ffmpeg selten sonder habe hier gstreamer verwendet mit rtsp dort wars dann eben h264parse ! rtph264pay
Wie gesagt was genau die commandline ist hängt vom Ursprungsencoding des Camerastreams ab der da rein kommt.
Was ich aber eigentlich mit ffplay meinte war, dass du mit ffmpeg das Kamerabild auf den lokalen Host streams statt an YT und dann diesen Stream mit ffplay empfängst.
Wenn ffplay dann diesen Netzwerkstream öffnen kann dann versuchst du den an YT weiterzuleiten. Einige Einstellungen können nämlich verhindern dass die Gegenstelle den Stream dekodieren kann.
In der Vergangenheit hat sich bei solchen Dingen auch ChatGPT bei mir bewährt.
Hallo, vielen Dank für die Antwort.
Ich habe es nun mit:
ffmpeg -f v4l2 -input_format h264 -i /dev/video0 -vcodec copy -an -f flv "rtmp://a.rtmp.youtube.com/live2/xxxx-xxxx-xxxx-xxxx"
versucht und bekomme nun im Terminal die Fehlermeldung „Cannot find a proper Format for Codec h264.
Ein Live Bild lokal bekomme ich mit:
ffplay -f v4l2 -framerate 30 -i /dev/video0