我一直在摆弄gstreamer脚本,将rtmp-stream发送到Facebook Live。我尝试了很多东西。当我将它发送到我自己的RTMP服务器时,流工作,但Facebook不会接受它。
我正在研究Ubuntu 15.10。我注意到OBS也有奇怪的行为。在MBP上似乎有效,但在我的盒子上它不会。
以下信息流符合Facebook Live中提到的视频/音频规格。我在这里列出了它们:
视频格式:
- 我们接受最大720p(720 x 1280)分辨率的视频,每秒30帧。 (或每2秒1个关键帧)。 CHECK
- 您必须在整个流中每两秒至少发送一次I帧(关键帧)。 CHECK
- 建议的最大比特率为2500Kbps。 CHECK
- 标题必须少于255个字符,否则流将失败CHECK
- Live API仅接受H264编码视频和AAC编码音频检查
视频长度:
直播最长90分钟。检查(未指定,所以我认为应该没问题)
预览流的最大长度为60分钟(通过实时对话框或发布者工具)。 60分钟后,必须有一个新的流密钥 产生。检查(未指定,所以我认为应该没问题)
高级设置:
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 Live工作?
答案 0 :(得分:0)
变化:
video/x-h264,profile=high
为:
video/x-h264,profile=baseline
它有效。我尝试过:
gst-launch-1.0 flvmux name=mux streamable=true ! rtmpsink location="<rtmp_url_for_fblive>" videotestsrc is-live=true ! "video/x-raw,width=1280,height=720,framerate=30/1" ! identity sync=true ! x264enc bitrate=2500 key-int-max=60 ! video/x-h264,profile=high ! h264parse ! queue ! mux. audiotestsrc is-live=true ! audio/x-raw,rate=44100,channels=2 ! identity sync=true ! voaacenc bitrate=128000 ! queue ! mux.