使用ffmpeg流式传输到Facebook Live Video:可以预览,但不能上线

时间:2016-11-17 00:07:28

标签: facebook ffmpeg live-streaming facebook-live-api

我正在尝试使用ffmpeg将网页流式传输到Facebook Live视频。我知道我可以使用OBS,但我试图从服务器上做,所以我不能使用OBS。它在我预览时工作正常,但是一旦我按下“Go live”,起初它似乎就开始了,但是当它带我进入实时视图时它只是说视频已经结束了。我甚至使用Graph API检查了视频日志的错误,没有。我正在使用PhantomJS将屏幕截图封装到ffmpeg:

phantomjs phantom.js | ffmpeg -y -c:v mjpeg \
-f image2pipe \
-r 5 -i \
- -c:v libx264 \
-x264-params keyint=5 \
-b:v 1000k -minrate 1000k -maxrate 1000k -bufsize 500k \
-f flv 'rtmp://rtmp-api.facebook.com:80/rtmp/xxxxxxxxxxxxxxxx'

正如我所说,它在Facebook上的直播预览中运行良好,但在我上线时立即结束。我添加了比特率选项以尝试按照Facebook(https://developers.facebook.com/docs/videos/live-video/production-broadcasts)的要求保持恒定的比特率,并且我每5帧有一个关键帧(相当低的帧速率为5fps),因此也满足了要求。

我没有发送任何音频,是否会导致问题?

1 个答案:

答案 0 :(得分:1)

Facebook Live需要30 FPS的帧速率。你发送它5,所以你需要转换。您还需要最多2秒的关键帧间隔。尝试添加输出帧速率:

phantomjs phantom.js | ffmpeg -y -c:v mjpeg \
-f image2pipe \
-framerate 5 \
-i - \
-r 30 \
-c:v libx264 \
-x264-params keyint=60 \
-b:v 1000k -minrate 1000k -maxrate 1000k -bufsize 500k \
-f flv 'rtmp://rtmp-api.facebook.com:80/rtmp/xxxxxxxxxxxxxxxx'