4

我一直在努力为启用 librtmp 的 Android 编译 FFMPEG。我已经在这里使用Guardian Project成功构建了 FFMPEG ,但它没有 librtmp 支持。我发现这个问题的唯一答案是关于以前的 Stack Overflow 问题 ( HERE ),但它不想为我工作。

目前,我librtmp.so.0在 android-ffmpeg 文件夹中的 rtmpdump/librtmp 文件夹中拥有来自官方 rtmpdump android 构建的交叉编译文件。我的 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。我很肯定我将它指向正确的目录......有人有什么想法吗?

问候

4

1 回答 1

2

担,

这有点老了,也许没有太大帮助,因为它不是一个完整的答案,但我几个月来一直在努力解决这个问题。我的努力记录在 ffmpeg 论坛之一(此处:http://ffmpeg.zeranoe.com/forum/viewtopic.php? f=29&t=1383 )上,我也没有取得任何成功。

最终,在构建 librtmp 并告诉构建脚本在哪里找到它(并在 ffmpeg conf 文件中禁用 librtmp 的 pkg-config)之后,我总是有一个错误列表,例如

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

我只是想把它放在这里以帮助您或其他仍在尝试使用 librtmp for Android 构建 ffmpeg 的人。

布拉德福德

于 2013-12-20T05:37:57.547 回答