3

我正在尝试使用 ffmpeg 将网页流式传输到 Facebook Live 视频。我知道我可以使用 OBS,但我正在尝试从服务器上进行操作,所以我不能使用 OBS。当我预览时它工作正常,但是当我按下“开始直播”时,起初它似乎正在开始,但当它带我进入实时视图时,它只是说视频已经结束。我什至使用 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 的低帧速率),因此也满足了这一要求。

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

4

1 回答 1

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'
于 2016-11-17T17:53:31.223 回答