无法打开https流 - 找不到协议(使用openssl的ffmpeg)

时间:2017-04-22 22:10:08

标签: android ffmpeg android-ndk openssl

我收到了来自编译的ffmpeg的openssl下一条消息:result['FirstName']。我正在通过https进行测试。

ffmpeg为Protocol not found,openssl为3.3个版本。

我有下一个配置脚本:

1.0.0a

在配置之前,我收到了./configure \ --target-os=linux \ --incdir=$BUILD_DIR/include/$ABI \ --libdir=$BUILD_DIR/lib/$ABI \ --prefix=$BUILD_DIR/lib/$ABI \ --enable-cross-compile \ --extra-libs="-lgcc" \ --arch=$ARCH \ --cc=$PREBUILT/bin/$HOST-gcc \ --cross-prefix=$PREBUILT/bin/$HOST- \ --nm=$PREBUILT/bin/$HOST-nm \ --sysroot=$PLATFORM \ --extra-cflags="$OPTIMIZE_CFLAGS -I${OPENSSL_INCLUDE_DIR}" \ --extra-cxxflags="I${OPENSSL_INCLUDE_DIR}" \ --extra-ldflags="-Wl,-rpath-link=${PLATFORM}usr/lib -L${PLATFORM}usr/lib -nostdlib -lc -lm -ldl -llog -lz -L${OPENSSL_BUILD_DIR}/${ABI} $openssl_addi_ldflags -lssl -lcrypto" \ --disable-static \ --disable-ffplay \ --disable-ffmpeg \ --disable-ffprobe \ --disable-ffserver \ --disable-doc \ --disable-symver \ --disable-postproc \ --disable-gpl \ --disable-encoders \ --disable-muxers \ --disable-bsfs \ --disable-protocols \ --disable-indevs \ --disable-outdevs \ --disable-devices \ --enable-shared \ --enable-small \ --enable-encoder=png \ --enable-openssl \ --enable-runtime-cpudetect \ --enable-protocol=file,ftp,http,https,httpproxy,hls,mmsh,mmst,pipe,rtmp,rtmps,rtmpt,rtmpts,rtp,sctp,srtp,tcp,udp \ --pkg-config=$(which pkg-config) \ $ADDITIONAL_CONFIGURE_FLAG || die "Couldn't configure ffmpeg!" 之类的错误。我解决了这个问题,但我尝试加载通过https工作的流,我收到openssl not found。此外,我认为这很奇怪,在启用的协议列表中错过了配置https。

Protocol not found

更新23.04.2017

我的openssl构建脚本:

Enabled protocols:
ffrtmphttp        hls               mmsh              rtmp          srtp
file              http              mmst              rtmpt         tcp
ftp               httpproxy         pipe              rtp           udp

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

OpenSSL需要--enable-nonfree才能进行编译。 GnuTLS为LGPL许可提供https支持。

答案 1 :(得分:0)

当我删除下一行

--disable-protocols \

它开始工作了。 这是奇怪的事情,因为在我的脚本中还有一行可以实现我的目的协议所需的所有内容:

--enable-protocol=file,ftp,http,https,httpproxy,hls,mmsh,mmst,pipe,rtmp,rtmps,rtmpt,rtmpts,rtp,sctp,srtp,tcp,udp \

另外,我已经将openssl lib版本更新为1.0.2j。 无论如何,对我来说这是解决方案。 感谢@Mulvya寻求帮助。