1

我在试图找出适用于 ffmpeg 的 facebook rtmps Go Live 配置时遇到问题,但没有成功!

rtmpUrls = `[f=flv]rtmp://a.rtmp.youtube.com/live2/xxxxxxx|[f=flv]rtmps://live-api-s.facebook.com:443/rtmp/xxxxxxxx`;
    });

        this.ffmpeg = child_process.spawn('ffmpeg', [

          // FFmpeg reads the input from STDIN write
          '-i', '-',
           '-flags', '+global_header',
          '-vcodec', 'copy',

          // AAC audio is required for Facebook Live.
          '-acodec', 'libfdk_aac',
          //'-ab', '32k', 
          //'-ar', '44100',
          '-bsf:a', 'aac_adtstoasc',

          '-framerate', '60',
          '-g', '30',

          '-f', 'tee', 
          '-map', '0:v',
          '-map', '0:a',
          // The output RTMPs.
          rtmpUrls
        ]);

我从 facebook 事件日志中收到了这个

Facebook 已经有一段时间没有收到来自视频源的视频信号了。检查视频源和 Facebook 之间的连接是否足以满足源分辨率和比特率。检查您的视频编码器日志以获取详细信息。如果问题仍然存在,请考虑提高连接质量或降低视频源的比特率。

当我将帧率从 60 更改为 30 时,它会闪烁一个黑色的空白屏幕,试图接收信号,然后立即返回默认页面。虽然 youtube 完美无缺!

这是 ffmpeg 的日志,但只有 youtube rtmp 时也会出现日志。 日志

4

1 回答 1

0

问题出在 ffmpeg 上,默认情况下它不包括 yum 构建包中的 openssl enable。所以,我卸载了 ffmpeg 包并使用下面的命令行从源代码安装它,然后到处都可以正常工作。

PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib -ldl" --bindir="$HOME/bin" --pkg-config-flags="--static"  --enable-gpl --enable-nonfree --enable-libfdk_aac --enable-pthreads --enable-libass --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --enable-filters --enable-openssl --enable-runtime-cpudetect --extra-version=ffmpeg --disable-shared --enable-static
于 2019-10-07T14:21:10.087 回答