美文网首页协议
librtmp编译环境搭建

librtmp编译环境搭建

作者: PuiKei | 来源:发表于2018-12-06 15:24 被阅读0次

    Librtmp 目前依赖的库有zlib-1.2.8 和polarssl-1.2.0-gpl
    1.编译 zlib-1.2.8, 官网:http://zlib.net
    2.下载librtmp源码trmpdump-2.3.tgz
    下载链接:http://rtmpdump.mplayerhq.hu/download/
    3.编译librtmp的依赖库zlib和openSSL
    本文主要想说明如何搭建环境编译librtmp,zlib和openSSL的编译过程略,网上有两者已经编译好的头文件和静态库,自己动手编译也可以。

    二.开始编译

    1.新建VS2013的其它项目类型->空白解决方案,用来管理后面多个项目,如下图所示


    image.png

    2.然后右键刚刚新建的解决方案,添加项目:


    image.png
    3.新建VS2013的Win32控制台应用程序,如下图所示
    image.png

    选择“静态库”,并取消“预编译头”,如下图所示。


    image.png
    2.解压trmpdump-2.3.tgz并将其中的librtmp文件夹拷贝到刚刚新建的\librtmpWindows目录下,然后将librtmp中的.h和.c文件添加到项目中。
    image.png
    image.png
    3.在librtmpWindows项目中新建include和lib文件夹,然后分别拷入zlib和openSSL的头文件和静态库文件,如下图所示。
    image.png
    image.png
    将头文件和库文件目录添加到项目中,最好使用相对路径,这样的话项目换到其他目录也不影响编译。需要注意的是,相对路径是相对于项目文件.vcxproj的
    image.png
    image.png
    image.png

    4.编译遇到一些错误,大多数是vs的一些函数跟标准C函数有点区别,改成vs的函数基本即可。

    再次编译,错误消失,在librtmpWindows\Release(先将工程设置为release)目录下可以看到生成的静态库librtmpWindows.lib。

    三:建立测试工程推流;

    1. 在新建的解决方案上再新建一个新的项目,参考上面步骤,但是这次不是生成静态库,是普通的win32控制台。


      image.png
      image.png

      编译虽然无错了,但是新建测试工程simplest_librtmp_send_flv(Win32控制台应用程序),调用librtmpWindows.lib库时却会再次出现错误,错误提示如下图所示。


      image.png
      第一条错误与librtmpWindows库无关,需在测试工程中加入winmm.lib,ws2_32.lib库(winsock相关)。

    其余三条错误需返回librtmpWindows工程,打开rtmp_sys.h文件,做如下修改。


    image.png

    编译测试工程(release版本),正常推流

    image.png

    四:注意点:

    以下copy自网上,自己还没遇到,后续有时间再参考测试:


    注意如果此时将librtmpWindows工程设置为debug,编译不会出错,但是用测试工程调用时,会出现如下图所示错误。


    image.png

    这两条错误需返回librtmpWindows工程,打开rtmp.c文件,将如下三个地方注释掉


    image.png
    image.png
    image.png

    重新编译librtmpWindows工程。
    重新编译simplest_librtmp_send_flv工程,错误消失。


    目前遇到的就是如果把librtmpWindows工程打开为DEBUG模式,这样编译出来的库,测试工程不能用,连接不上服务器,具体原因还没时间排查,目前是用release版本。

    相关文章

      网友评论

        本文标题:librtmp编译环境搭建

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