只能在流式传输我的 Mac 屏幕时预览 Facebook 直播视频

Facebook live video can only be previewed while streaming my Mac screen

我使用以下 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"

然后我就可以看到视频预览场景了

但是,一旦我按下 'Go Live' 按钮并转到我的 facebook 页面,我会发现 post 说我正在直播。当我按下'play button'时,只有1~2秒的黑色画面,视频结束。

还有一个很奇怪的事情,我结束直播后视频还能播放。刷新页面的时候发现一个post说我在直播,这个post的视频可以播放成功。

谁知道为什么在预览和结束直播时可以看到视频,但不能看到确切的直播时刻?

[更新]

在直播期间,如果我按下播放键,只有1~2秒的黑幕,直播就结束了。

但是,如果我再次按下视频框,会弹出另一个模态,然后我就可以看到直播了。这是Facebook的错误吗?

当您以实时方式查看视频时,请在检查面板中查看 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 参数进行播放以使其在该页面上可见。

我也遇到了同样的问题。就我而言,我正在循环播放图像以制作视频并将其流式传输到 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"

我仍在使用这段代码,它非常适合我:)

希望这对某人有所帮助。