littlebot
Published on 2025-04-14 / 0 Visits
0

【源码】基于C语言的RTMP流媒体下载工具

项目简介

RTMPDump是基于C语言开发的工具,用于下载通过RTMP协议传输的媒体内容。RTMP是基于TCP的流媒体协议,常用于音频、视频等数据流的传输。该工具支持从RTMP服务器下载流媒体,具备断点续传功能,且在下载过程中可显示进度,如下载速度、已完成比例等,程序借助RTMP库函数与RTMP服务器通信、读写数据。

项目的主要特性和功能

  • RTMP协议支持:能从RTMP服务器下载流媒体内容,支持断点续传。
  • 多平台编译:可在Linux、Unix、MacOSX和Windows等平台编译运行。
  • 加密支持:支持处理加密的RTMP流(如RTMPS/HTTPS),可选用OpenSSL、GnuTLS或PolarSSL进行加密处理。
  • 命令行参数:可通过命令行参数指定连接信息,如主机名、端口、协议、播放路径等。
  • 进度显示:下载时显示进度,包含下载速度、已完成比例等。
  • 输出选项:支持将下载内容输出到文件或标准输出。
  • SWF验证:能自动生成SWF验证信息,保证与RTMP服务器的兼容性。
  • 服务器模拟:提供rtmpsrv、rtmpsuck和rtmpgw等工具,用于模拟RTMP服务器、透明代理和HTTP网关。

安装使用步骤

编译项目

  • 在Linux/Unix系统上: bash make SYS=posix
  • 在MacOSX系统上: bash make SYS=darwin
  • 在Windows系统上: bash make SYS=mingw
  • 若需交叉编译,使用CROSS_COMPILE变量,例如: bash make CROSS_COMPILE=arm-none-linux- INC=-I/my/cross/includes

依赖库

项目依赖OpenSSL和zlib库,也可选用GnuTLS或PolarSSL代替OpenSSL。若不需要加密支持,可通过以下命令禁用SSL: bash make XDEF=-DNO_SSL

生成共享库

默认生成静态库和共享库,若不需要共享库,可通过以下命令禁用: bash make SHARED=

运行程序

  • 编译成功后,运行RTMPDump: bash ./rtmpdump -r rtmp://server/app/stream -o output.flv
  • 使用-W选项自动生成SWF验证信息: bash ./rtmpdump -W -r rtmp://server/app/stream -o output.flv
  • 使用--conn选项指定自定义连接参数: bash ./rtmpdump --conn B:0 --conn S:hello -r rtmp://server/app/stream -o output.flv

服务器工具

  • rtmpsrv:模拟RTMP服务器,获取客户端连接参数。
  • rtmpsuck:透明代理,捕获RTMP流量并记录未加密的数据。
  • rtmpgw:将RTMP流转换为HTTP响应,支持通过HTTP请求下载RTMP流。

注意事项

  • 使用OpenSSL时,版本需为0.9.8或更高。
  • 使用PolarSSL时,版本需为1.0.0或更高。
  • 在Windows系统上,可能需手动安装OpenSSL或使用预编译的二进制文件。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】