RTMPDump
1.1、RTMPDump简介
是什么 ?:a tool for downloading RTMP streaming media.
开发语言:C
官方主页:http://rtmpdump.mplayerhq.hu
1.2、通过包管理器安装RTMPDump
操作系统包管理器安装命令
Windowsscoopchoco install -y rtmpdump
WindowsChocolateychoco install -y RTMPDump
macOSHomeBrewbrew install rtmpdump
GNU/LinuxLinuxBrewbrew install rtmpdump
aptsudo apt-get install -y rtmpdump
CentOSyumsudo yum install -y rtmpdump
dnfsudo dnf install -y rtmpdump
openSUSEzyppersudo zypper install -y rtmpdump
Alpine Linuxapksudo apk add rtmpdump

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm rtmpdump
Gentoo LinuxPortagesudo emerge rtmpdump
1.3、通过编译源码安装RTMPDump

step1、安装依赖

下载时cURL
解压时targzip
编译时GNU makeGCC ( gcc )   | LLVM / Clang
运行时
  • glibc ( libc.sold-linux-x86-64.so )
  • OpenSSL ( libssl.so )
  • step2、使用curl命令下载RTMPDump源码包 (

    curl -LO https://mirrors.tuna.tsinghua.edu.cn/debian/pool/main/r/rtmpdump/rtmpdump_2.4+20151223.gitfa8646d.1.orig.tar.gz

    step3、使用tar解压RTMPDump源码包

    tar vxf rtmpdump_2.4+20151223.gitfa8646d.1.orig.tar.gz

    step4、进入rtmpdump-20151223目录

    cd rtmpdump-20151223

    step5、查看rtmpdump-20151223目录中的内容

    step6、使用curl命令下载RTMPDump源码包针对OpenSSL 1.1的补丁

    curl -LO https://raw.githubusercontent.com/Homebrew/formula-patches/85fa66a9/rtmpdump/openssl-1.1.diff

    RTMPDump源码使用的是OpenSSL 1.0,现在基本上都使用OpenSSL 1.1,两个版本之间的API有变化,所以,我们需要打个补丁。

    step7、应用补丁

    patch -p0 < openssl-1.1.diff

    step8、修改librtmp/Makefile文件

    如果您当前的操作系统是macOS,请执行如下的命令,否则跳过该步:

    sed -i".bak" "s@soname@install_name@g" librtmp/Makefile

    这个意思是把librtmp/Makefile文件中的soname字符串替换为install_name, 这么做的原因是:-sonameGNU ld的参数, 而macOS系统不使用GNU ld, 它自己的ld没有-soname参数,与他相同意思的参数是-install_name

    step9、使用GNU make进行编译

    make [option]... [VAR=VALUE]... [TARGET]...
    VARVALUE示例说明
    CCgcc |  clang指定C编译器
    CFLAGS-O2 -v指定C编译器的参数。覆盖MakefileCFLAGS的定义
    XCFLAGS-O2 -v指定C编译器的参数。扩展MakefileCFLAGS的定义
    LDld指定C链接器
    LDFLAGS-L<libDIR>指定C链接器的参数。覆盖MakefileLDFLAGS的定义
    XLDFLAGS-L<libDIR>指定C链接器的参数。扩展MakefileLDFLAGS的定义
    LIBS-l<libName>指定C链接器要链接的库的名称
    CROSS_COMPILEaarch64-linux-android-指定交叉编译工具的前缀

    示例:

    make CFLAGS="-O2 -v"

    step10、安装

    sudo make install prefix=/usr
    1.4、RTMPDump中包含的命令
    1.5、RTMPDump中包含的头文件
    1.6、RTMPDump中包含的库文件
    • librtmp.{a | so | dylib}