通过librtmp构建Android FFMPEG

4
我一直在努力编译启用librtmp的Android FFMPEG,但却束手无策。我已经成功使用Guardian Project构建了FFMPEG,但它不支持librtmp。我发现此问题的唯一答案在以前的Stack Overflow问题中(HERE),但它对我不起作用。
目前,我将官方rtmpdump android版本中交叉编译的librtmp.so.0文件放在android-ffmpeg文件夹下的rtmpdump / librtmp文件夹中。我的configure_ffmpeg.sh文件中摘录如下:
./configure \
$DEBUG_FLAG \
--arch=arm \
--cpu=cortex-a8 \
--target-os=linux \
--enable-runtime-cpudetect \
--prefix=$prefix \
--enable-pic \
--disable-shared \
--enable-static \
--cross-prefix=$NDK_TOOLCHAIN_BASE/bin/$NDK_ABI-linux-androideabi- \
--sysroot="$NDK_SYSROOT" \
--extra-cflags="-I../x264 -mfloat-abi=softfp -mfpu=neon" \
--extra-ldflags="-L../x264" \
--extra-cflags="-I/home/dan/android-ffmpeg/rtmpdump" \
--extra-ldflags="-L/home/dan/android-ffmpeg/rtmpdump -lrtmp"
\

--enable-version3 \
--enable-gpl \
\
--disable-doc \
--enable-yasm \
\
--enable-decoders \
--enable-encoders \
--enable-muxers \
--enable-demuxers \
--enable-parsers \
--enable-protocols \
--enable-filters \
--enable-avresample \
--enable-libfreetype \
\
--disable-indevs \
--enable-indev=lavfi \
--disable-outdevs \
\
--enable-hwaccels \
\
--enable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--enable-ffserver \
--enable-network \
\
--enable-libx264 \
--enable-zlib \
--enable-librtmp \

当我尝试编译时,最终会显示一个错误,并且我的FFMPEG config.log文件告诉我找不到-lrtmp。 我确定我将其定向到正确的目录... 有人有任何想法吗?
问候,
1个回答

2

丹,

这篇文章有些旧了,可能并没有太大帮助,因为它并不是一个完整的答案,但我已经苦苦挣扎了几个月。我的努力在ffmpeg论坛上有记录(在这里:http://ffmpeg.zeranoe.com/forum/viewtopic.php?f=29&t=1383),但我也没有成功。

最终,在构建librtmp并告诉构建脚本在哪里找到它之后(并在ffmpeg配置文件中禁用了librtmp的pkg-config),我总是会得到一堆错误信息,例如:

libavformat/librtmp.o: in function rtmp_read:libavformat/librtmp.c:153: error: undefined reference to 'RTMP_Read'
  • 所有列出的RTMP功能都声称未定义,但头文件与其余所需文件一起存在。

我只是想在这里分享一下,以帮助那些仍在尝试使用librtmp为Android构建ffmpeg的人。

Bradford


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接