流媒体之RTMP——librtmp2.4编译

文章目录

  • 编译

作者:一步(Reser)
日期:2019.10.9

编译

版本依赖:

  • VS版本:VS2015和VS2017;
  • librtmp版本:librtmp2.4;

编译步骤:

  1. 新建VS静态库项目;
  2. 将librtmp的源码加入工程;
  3. 增预处理加宏定义来忽略一些废弃函数导致的错误报告:
    _CRT_SECURE_NO_WARNINGS;
    _WINSOCK_DEPRECATED_NO_WARNINGS;
  4. 去除rtmp.h文件中的加密设置(不使用OpenSSL):
    //#if !defined(NO_CRYPTO) && !defined(CRYPTO)
    //#define CRYPTO
    //#endif
  5. 修改rtmp_sys.h文件中的一些常用函数定义,这些函数由于VS版本问题名称有些不同,所以要做兼容修改:
    // 修改前:
    #ifdef _MSC_VER	/* MSVC */
    #define snprintf _snprintf
    #define strcasecmp stricmp
    #define strncasecmp strnicmp
    #define vsnprintf _vsnprintf
    #endif
    
    // 修改后:
    #ifdef _MSC_VER	/* MSVC */
    #include  // off_t
    #define strdup _strdup
    //#define snprintf _snprintf
    #define strcasecmp _stricmp
    #define strncasecmp _strnicmp
    //#define vsnprintf _vsnprintf
    #endif
  6. 去除 netstackdumpnetstackdump_read 字段相关代码,这些字段主要用于debug下的输出;要编译debug版本需要注释这些,否则报错。
  7. 增加ZLib库依赖,librtmp需要依赖Zlib和OpenSSL,由于之前注释了对OpenSSL的依赖,因此只要引入ZLib即可。ZLib的编译很简单,源码目录下有VS项目,直接打开编译即可。
  8. 编译生成librtmp静态库。





你可能感兴趣的:(Media,Stream)