美文网首页
Linux下搭建Nginx+nginx-rtmp-module流

Linux下搭建Nginx+nginx-rtmp-module流

作者: FlyerGo | 来源:发表于2020-03-24 13:12 被阅读0次

    要做一个手机直播采集项目,首先你要解决的是推流问题,而目前几乎所以的直播项目采用都是rtmp协议进行推流。

    今天我们就将rtmpdump这个开源库进行交叉编译,以便后续在采集到音视频推送到服务器时使用。

    环境准备

    今天我们使用的是编译系统是Mac系统。

    使用的NDK版本是r16,这是因为我们查看rtmpdump的Makefile文件发现默认是使用gcc进行编译的,而NDK在r18之后之后彻底移除了gcc(包含r18版本),
    所以我们使用r16进行交叉编译,当然你使用r17应该也是可以的。

    编译步骤

    首先到rtmpdump的官网下载rtmp的源码:http://rtmpdump.mplayerhq.hu/download/
    进入官网之后,我们发现居然有专门针对android平台和windows平台的源码下载,难道是他们已经帮我们编译好了吗?

    其实我们要下载的不是带有android字样的版本,而是应该下载后缀名为tgz的源码,因为带有android的仅仅是官方给我我们编译好的可执行文件,也就是rtmp的命令行工具而已,而我们实际开发中是需要调用的是rtmp的相关API进行推流,所以我们需要下载后缀名为tgz的源码进行交叉编译成静态库或者动态库。

    下载正确的rdmp源码

    下载解压好源码之后,进入解压后librtmp的源码目录:

    cd librtmp
    
    

    编写编译脚本``build_rtmp.sh`:

    #!/bin/bash
    # 将NDK的路径替换成你自己的NDK路径
    NDK_ROOT=/Users/liangchuanfei/Documents/Android/SDK/android-ndk-r16b
    
    # 设置工具链mac苹果电脑的是darwin-x86_64 而如果是linux的话则是linux-x86_64
    
    TOOLCHAIN=$NDK_ROOT/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
    
    CPU=arm-linux-androideabi
    
    export XCFLAGS="-isysroot $NDK_ROOT/sysroot -isystem $NDK_ROOT/sysroot/usr/include/arm-linux-androideabi -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -mthumb -Wa,--noexecstack -Wformat -Werror=format-security  -O0 -fPIC"
    export XLDFLAGS="--sysroot=${NDK_ROOT}/platforms/android-21/arch-arm "
    export CROSS_COMPILE=$TOOLCHAIN/bin/arm-linux-androideabi-
    
    # XDEF=-DNO_SSL 的意思是不实用SSL,因为rtmp内部使用了SSL,如果开启的话需要编译链接SSL的库
    make install SYS=android prefix=`pwd`/install CRYPTO= SHARED=  XDEF=-DNO_SSL
    
    

    然后增加执行权限:

    chmod +x build_rtmp.sh
    
    

    最后执行编译脚本./build_rtmp.sh即可成功编译出静态库。

    编译出静态库之后就可以把头文件以及点a文件拷贝到AS中引入到Android工程中使用了。如果你还不知道如何引用可以参考下这篇文章:《将ffmpeg引入到Android Studio工程中》,方法大同小异。

    相关文章

      网友评论

          本文标题:Linux下搭建Nginx+nginx-rtmp-module流

          本文链接:https://www.haomeiwen.com/subject/sdjoyhtx.html