The Makefile has been broken with the latest release 3.2.2_1,1, resulting in: ====> You cannot select multiple options from the RTMP radio Config is invalid. Re-edit? [Y/n] n The change in question: https://svnweb.freebsd.org/ports/head/multimedia/ffmpeg/Makefile?r1=428588&r2=428587&pathrev=428588 The config screen looks like this: xqqqqqqqqqqqqqqqqqqqqqqqq RTMP(T)E protocol support qqqqqqqqqqqqqqqqqqqqqqqx x ( )GCRYPT Use GNU crypt library instead of OpenSSL x x (*) GMP GMP (multiple precision arithmetic) support x x ( )LIBRTMP RTMP(T)E protocol support via librtmp x x ( ) OPENSSL SSL/TLS support via OpenSSL x x x xqqqqqqqqqqqqqqqqqqqqqqqqqqq SSL protocol support qqqqqqqqqqqqqqqqqqqqqqqqqx x ( ) GNUTLS SSL/TLS support via GnuTLS x x (*) OPENSSL SSL/TLS support via OpenSSL x x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq On my system OpenSSL is selected and GMP is also selected, which it doesn't like. Maybe it was tested by someone using GNUTLS or with GMP turned off? In any case, this group which includes GCrypt, GMP librtmp and OpenSSL is obviously not at all right: OPTIONS_RADIO_RTMP= GCRYPT GMP LIBRTMP OPENSSL I don't know if that is "right", but to get it to compile, I: * put GMP back in OPTIONS_DEFINE * added LIBRTMP to OPTIONS_DEFINE * removed RTMP from OPTIONS_RADIO * commented out OPTIONS_RADIO_RTMP entirely
Putting all into _DEFINE basket would make FFmpeg actually build only librmtp support. $ ./configure --help | fgrep rtmp --enable-gcrypt enable gcrypt, needed for rtmp(t)e support if openssl, librtmp or gmp is not used [no] --enable-gmp enable gmp, needed for rtmp(t)e support if openssl or librtmp is not used [no] --enable-librtmp enable RTMP[E] support via librtmp [no] $ cat ./configure [...] ffrtmpcrypt_protocol_deps="!librtmp_protocol" ffrtmpcrypt_protocol_deps_any="gcrypt gmp openssl" ffrtmpcrypt_protocol_select="tcp_protocol" ffrtmphttp_protocol_deps="!librtmp_protocol" ffrtmphttp_protocol_select="http_protocol" [...] librtmp_protocol_deps="librtmp" librtmpe_protocol_deps="librtmp" librtmps_protocol_deps="librtmp" librtmpt_protocol_deps="librtmp" librtmpte_protocol_deps="librtmp" [...] rtmp_protocol_deps="!librtmp_protocol" rtmp_protocol_select="tcp_protocol" rtmpe_protocol_select="ffrtmpcrypt_protocol" rtmps_protocol_deps="!librtmp_protocol" rtmps_protocol_select="tls_protocol" rtmpt_protocol_select="ffrtmphttp_protocol" rtmpte_protocol_select="ffrtmpcrypt_protocol ffrtmphttp_protocol" rtmpts_protocol_select="ffrtmphttp_protocol https_protocol"
A commit references this bug: Author: jbeich Date: Wed Dec 14 23:17:36 UTC 2016 New revision: 428598 URL: https://svnweb.freebsd.org/changeset/ports/428598 Log: multimedia/ffmpeg: limit OPENSSL to one _RADIO group Worse is better. To fix properly one would have to replace OPENSSL in RTMP with a synthetic option that _IMPLIES=OPENSSL. PR: 215306 Reported by: Laurence 'GreenReaper' Parry Changes: head/multimedia/ffmpeg/Makefile
As you're using OPENSSL disabling GMP may save you an extra dependency but otherwise shouldn't hurt. The defaults are adjusted for GNUTLS case. Alas, _IMPLIES and _PREVENTS cannot express option suggestions.