6

我使用以下ffmpeg命令将我的屏幕流共享到 Facebook。

在此处输入图像描述

ffmpeg -f avfoundation -r 10 -video_size 352x288 -i "0" -c:v h264 -f flv 
"rtmp://rtmp-api.facebook.com:80/rtmp/1269140699772419?ds=1&a=AaYsXcYcdHQrrrUF"

然后我可以看到视频预览场景 在此处输入图像描述

但是,一旦我按下“开始直播”按钮,然后转到我的 Facebook 页面,我会发现一条帖子说我现在直播。当我按下“播放按钮”时,只有持续 1~2 秒的黑色场景,视频结束。

在此处输入图像描述

还有一个奇怪的事情,当我结束直播时,视频可以播放。刷新页面时,我可以找到一个帖子说我是直播,这个帖子的视频可以播放成功。

任何人都知道为什么在预览和结束直播时可以观看视频而不是确切的直播时刻?

[更新]

在直播期间,如果我按下播放键,只有1~2秒的黑场,直播结束。 在此处输入图像描述

但是,如果我再次按下视频帧,则会弹出另一个模式,然后我可以看到直播。这是脸书的错误吗? 在此处输入图像描述

4

2 回答 2

3

当您以实时方式查看视频时,请在 Chrome 的检查面板中查看是否有任何内容。视频无法通过的原因可能是一些警告或错误。通过 wss 使用 WebRTC 时,我遇到了同样的问题。

ffmpeg 命令要尝试的另一件事是添加: -c:v libx264 -profile:v baseline -level 3.1 -pix_fmt yuv420p

成为: ffmpeg -f avfoundation -r 10 -i "0" -c:v libx264 -profile:v baseline -level 3.1 -pix_fmt yuv420p -f flv "rtmp://rtmp-api.facebook.com:80/rtmp/1269140699772419?ds=1&a=AaYsXcYcdHQrrrUF"

您可以在实时事件后看到视频,因为编码恰好保存了它,并且它可以在浏览器中查看和测试。对于实时流,只会发生复制,您可以使用 ffmpeg 参数使其在该页面上可见。

于 2016-09-26T16:57:13.553 回答
2

我也遇到了同样的问题。就我而言,我正在循环图像以制作视频并将其流式传输到 facebook,而无需发送任何音频流。

根据 facebook 的指导方针,直播视频流必须包含音频流,否则直播视频被视为结束。

确保您正在流式传输到 fb 的输入文件包含音频流。如果它没有任何音频流,您仍然可以使用任何其他音频流,然后您可以在按下直播按钮后看到您的视频直播。

ffmpeg -loop 1 -re -y -f image2 -i "image_path" -i "silent_audio_or_any_other_audio" -codec:a aac -ac 1 -ar 44100 -b:a 128k -pix_fmt yuv420p -profile:v high -s 1280x720 -vb 400k -maxrate 400k -minrate 400k -bufsize 600k -deinterlace -vcodec libx264 -preset veryfast -g 30 -r 30 -strict -2 -f flv "rtmp_link"

我仍在使用此代码,这对我来说非常有用:)

希望,这可以帮助某人。

于 2017-01-22T20:05:54.907 回答