ffmpegvideo-streamingrtmps

Streaming to facebook rtmps gives TLS connection error


I am trying to stream to Facebook with ffmpeg. As of late 2019 the connection requirement is rtmps. Using the stock Debian Buster ffmpeg the TLS connection fails.

FFMPEG Version

ffmpeg version 4.1.6-1~deb10u1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 8 (Debian 8.3.0-6)
  configuration: --prefix=/usr --extra-version='1~deb10u1' --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-avresample --disable-filter=resample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librsvg --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opengl --enable-sdl2 --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared

Stream command

$ ffmpeg -i "rtmp://127.0.0.1/restream/STREAMKEY" -threads 1 -vcodec copy -acodec copy -f flv "rtmps://live-api-s.facebook.com:443/rtmp/FSTREAMKEY"

Error

[rtmps @ 0x55d9e0e3ea40] Cannot open connection tls://live-api-s.facebook.com:443
rtmps://live-api-s.facebook.com:443/rtmp/FSTREAMKEY: Resource temporarily unavailable

Am I missing something?


Solution

  • I had to compile ffmpeg to get it working. I updated to ffmpeg 4.4 and made sure I was using gnutls and built in rtmp (not librtmp). Those configs are the same from my original test so it appears it is updating to ffmpeg 4.4 that fixed it.

    Here's the compile setup that worked for me.

    ./configure --arch=amd64 --enable-gnutls --enable-libx264 --enable-gpl