FFmpeg4.2.2和和RTMP结合编译结合编译
一、一、编译编译librtmp
下载librtmp源码,在GitHub上下载:
可以用可以用git下载:下载:
git clone https://github.com/yixia/librtmp.git
编译编译librtmp脚本:脚本:
#!/bin/bash
NDK_ROOT=/root/ndk/android-ndk-r17c
CPU=arm-linux-androideabi
TOOLCHAIN=$NDK_ROOT/toolchains/$CPU-4.9/prebuilt/linux-x86_64
export XCFLAGS="-isysroot $NDK_ROOT/sysroot -isystem $NDK_ROOT/sysroot/usr/include/arm-linux-androideabi -
D__ANDROID_API__=17"
export XLDFLAGS="--sysroot=${NDK_ROOT}/platforms/android-17/arch-arm "
export CROSS_COMPILE=$TOOLCHAIN/bin/arm-linux-androideabi-
make install SYS=android prefix=`pwd`/result CRYPTO= SHARED= XDEF=-DNO_SSL
二、修改二、修改FFmpeg Configure::
最新版本的最新版本的ffmpeg默认使用默认使用clang编译,可以修改编译,可以修改configure文件来关闭:文件来关闭:
注释4210-4213行,关闭掉:
4209
4210 #set_default target_os
4211 #if test "$target_os" = android; then
4212 # cc_default="clang"
4213 #fi
4214
由于由于ffmpeg 默认开启默认开启librtmp需要需要pkgconfig,这里我们手动关闭,修改,这里我们手动关闭,修改ffmpeg的的configure文件:文件:
注释掉6256行:
6254 enabled libpulse && require_pkg_config libpulse libpulse pulse/pulseaudio.h pa_context_new
6255 enabled librsvg && require_pkg_config librsvg librsvg-2.0 librsvg-2.0/librsvg/rsvg.h rsvg_handle_render_cairo
6256 #enabled librtmp && require_pkg_config librtmp librtmp librtmp/rtmp.h RTMP_Socket
6257 enabled librubberband && require_pkg_config librubberband "rubberband >= 1.8.1" rubberband/rubberband-c.h rubberband_new -lstdc++ && app end
librubberband_extralibs "-lstdc++"
三、编译三、编译FFmpeg
FFmpeg的编译脚本:的编译脚本:
#!/bin/bash
NDK_ROOT=/root/ndk/android-ndk-r17c
CPU=arm-linux-androideabi
评论0