3
我一直在用gstreamer腳本來發送一個rtmp-stream到Facebook Live。我嘗試了很多東西。當我把它發送到我自己的RTMP服務器時,這個流就可以工作,但Facebook不會接受它。Gstreamer for Facebook Live
我正在使用Ubuntu 15.10。我注意到OBS也有奇怪的行爲。在MBP上它似乎工作,但在我的盒子上它不會。
下面的流適合Facebook Live中提到的視頻/音頻規格。我在這裏列出他們:
視頻格式:
- 我們接受不超過720p(720×1280)分辨率的視頻,每秒30幀。 (或每2秒1個關鍵幀)。檢查
- 您必須在整個流中至少每兩秒發送一次I幀(關鍵幀)。 CHECK
- 推薦的最大比特率是2500Kbps。檢查
- 標題必須少於255個字符,否則流將失敗CHECK
- 的直播API接受H264編碼的視頻和AAC音頻編碼只檢查
視頻長度:
90直播頻道的最大分鐘數。 CHECK(未指定,所以我認爲它應該沒問題)
預覽流的最大長度爲60分鐘(通過實時對話框或發佈者工具)。 60分鐘後,必須生成一個新的流密鑰 。 CHECK(未指定,所以我想它應該是罰款)
高級設置:
- 像素寬高比:廣場CHECK,GStreamer的
- 幀類型的默認行爲:逐行掃描未檢查,逐行掃描似乎是我的標準
- 音頻採樣率:44.1 KHz CHECK
- 音頻比特率:128 Kbps立體聲CHEC ķ
- 比特率編碼:CBR CHECK,GStreamer的
的Gstreamer命令:
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\"
沒有人得到的GStreamer爲Facebook的工作生活?
你觀察到了什麼奇怪的行爲?你有看到麻煩的公開直播視頻的鏈接嗎? – Brad
另外,請仔細檢查我們的關鍵幀間隔。您的參數名稱可能不同,但根據https://sites.google.com/site/linuxencoding/x264-ffmpeg-mapping,它是'keyint'。而且,10幀太小...你會想把它設置在60秒2秒。否則,你將只吃這些關鍵幀的所有帶寬。 – Brad
我嘗試了一個更高的關鍵幀,但沒有運氣。你鏈接到的文章也是針對ffmpeg的,我從gstreamer文檔中查找了關鍵幀參數,它應該以這種方式工作。 Facebook只是告訴我視頻不在線,這並沒有什麼幫助。 –