Ich habe an einem gstreamer-Skript gegriffen, um einen rtmp-Stream an Facebook Live zu senden. Ich habe viele Dinge ausprobiert. Der Stream funktioniert, wenn ich ihn an meinen eigenen RTMP-Server sende, aber Facebook akzeptiert ihn einfach nicht.Gstreamer für Facebook Live
Ich arbeite an einem Ubuntu 15.10. Ich habe bemerkt, dass OBS auch merkwürdiges Verhalten hat. Auf einem MBP scheint es zu funktionieren, aber auf meiner Box wird es nicht funktionieren.
Der folgende Stream entspricht den in Facebook Live angegebenen Video-/Audio-Spezifikationen. Ich habe sie hier aufgelistet:
Videoformat:
- Wir Video in maximal 720p (720 x 1280) Auflösung akzeptieren, bei 30 Bildern pro Sekunde. (oder 1 Schlüsselbild alle 2 Sekunden). CHECK
- Sie müssen mindestens einmal alle zwei Sekunden einen I-Frame (Keyframe) im gesamten Stream senden. ÜBERPRÜFEN
- Empfohlene maximale Bitrate ist 2500 Kbps. PRÜFEN
- Titel muss weniger als 255 Zeichen sein sonst wird der Strom Check scheitern
- Die Live-API akzeptiert H264 kodierte Video und codierte AAC-Audio nur
Videolänge CHECK:
90 Minuten maximale Länge für Livestream. CHECK (nicht angegeben, also ich nehme an, es sollte in Ordnung sein)
60 Minuten maximale Länge für Vorschau-Streams (entweder über Live-Dialog oder Publisher-Tools). Nach 60 Minuten muss ein neuer Stream-Schlüssel generiert werden. CHECK (nicht angegeben, so dass ich davon ausgehen, sollte es in Ordnung sein)
Erweiterte Einstellungen:
- Pixel-Seitenverhältnis: Quadrat CHECK, Standardverhalten von gstreamer
- Rahmentypen: Progressive Scan UNCHECKED, Progressive Scan scheint der Standard zu sein
- Audio Abtastrate: 44,1 kHz CHECK
- Audio Bitrate: 128 Kbps Stereo CHEC K
- Bitrate Encoding: CBR CHECK, Standardverhalten von gstreamer
GStreamer Befehl:
gst-launch-1.0 v4l2src ! "video/x-raw,width=1280,height=720,framerate=30/1" ! x264enc bitrate=2500 key-int-max=10 ! video/x-h264,profile=high ! h264parse ! queue ! flvmux name=mux alsasrc device=hw:1 ! audioresample ! audio/x-raw,rate=44100 ! queue ! voaacenc bitrate=128000 ! queue ! mux. mux. ! rtmpsink location=\"rtmp://rtmp-api.facebook.com:80/rtmp/xxxxxxxxxxxxxxx?ds=1\&a=xxxxxxxxxxxxxxx\"
Hat jemand gstreamer bekommen für Facebook arbeiten leben?
Was seltsames Verhalten beobachten Sie? Hast du einen Link zu einem öffentlichen Live-Video, in dem du die Probleme siehst? – Brad
Überprüfen Sie auch unser Keyframe-Intervall. Ihr Parametername ist möglicherweise anders, aber laut https://sites.google.com/site/linuxencoding/x264-ffmpeg-mapping lautet er "keyint". Und, 10 Bilder sind zu klein ... Sie wollen es für 2 Sekunden auf 60 einstellen. Andernfalls werden Sie Ihre gesamte Bandbreite nur für diese Keyframes verbrauchen. – Brad
Ich habe es mit einem höheren Schlüsselrahmen versucht, aber kein Glück. Auch der Artikel, den du verlinkt hast, ist für ffmpeg, ich habe das Schlüsselbild-Argument aus der gstreamer-Dokumentation nachgeschlagen, es sollte so funktionieren. Facebook sagt mir nur, dass das Video offline ist, was nicht wirklich hilfreich ist. –