• 【流媒體】live555—VS2008 下live555编译、使用及测试


    【流媒體】live555—VS22008 下live555编译、使用及测试



    Ⅰ live555简介

      Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+、DV、JPEG视频和多种音频编码。同时由于良好的设计,Live555非常容易扩展对其他格式的支持。目前,Live555已经被用于多款播放器的流媒体播放功能的实现,如VLC(VideoLan)、MPlayer。

      该项目的源代码包括四个基本的库,各种测试代码以及IVE555 Media Server。四个基本的库分别是UsageEnvironment&TaskScheduler,groupsock,liveMedia,BasicUsageEnvironment。


    Ⅱ 下载

    live555源码:http://www.live555.com/liveMedia/public/(官网)


    Ⅲ 编译步骤

    方法一(Winxp下命令方式)

    0  综述:利用genWindowsMakefiles.cmd生成VS可用的makefile

    1  修改win32config。打开livewin32config文件,修改如下

    TOOLS32 = c:Program FilesDevStudioVc

    TOOLS32 =  E:Program   FilesMicrosoft Visual Studio 10.0VC

    将TOOLS32修改为你的VS2010路径

    LINK_OPTS_0   =        $(linkdebug) msvcirt.lib

    LINK_OPTS_0   =   $(linkdebug)  msvcrt.lib

    编译器索要的LINK运行库不同,原本以为可以改为msvcrt100.lib,但没找着

    2  新增Makefile设定。打开livegroupsockMakefile.head,修改如下

    INCLUDES =   -Iinclude -I../UsageEnvironment/include

    INCLUDES =   -Iinclude -I../UsageEnvironment/include   -DNO_STRSTREAM

    3  建立makefile

      方法:运行livegenWindowsMakefiles.cmd,生成VS能够编译的*.mak文件

    4  建立build.bat命令

      新建livecomplie.bat,并添加内容如下:

    5  开始编译:(命令行下)执行complie.bat

    6 这时会报编译错误。需要在NetCommon.h中添加一行,typedef signed short int16_t;

    7  编译结果

    7-1  在对应的文件下,如下图

     生成与cpp文件对应的obj文件(Object File中间代码文件,源文件complie生成,在linux下为o文件)

     生成lib库: libBasicUsageEnvironment.lib、libgroupsock.lib、libUsageEnvironment.lib、libliveMedia.lib

    7-2 在对应的文件下,如下图:生成对应的obj文件和exe文件

    :若要用VS2008对代码进行调试跟踪,那么编译时需要做相应修改,修改方法如下:

      方法一:修改*.mak文件下的NODEBUG 。不带DEBUG,NODEBUG=1(默认);带DEBUG,DEBUG=1

      方法二:在win32config加入一行 "NODEBUG=1" (不推荐)

    方法二(Winxp+VS2008方式)

      如果需要自己调试修改源码,采用编译器的方式会更好些,这种方式也更利于源码分析,步骤如下:

    0  综述:分别为每个库单独编译生成lib

    1  新建解决方案和lib工程,分别如下:

    E:My DocumentVisual Studio 2010ProjectsmyLive555BasicUsageEnvironment
    E:My DocumentVisual Studio 2010ProjectsmyLive555liveMedia
    E:My DocumentVisual Studio 2010ProjectsmyLive555groupsock
    E:My DocumentVisual Studio 2010ProjectsmyLive555BasicUsageEnvironment

      完整解决方案的结构如下图

    2  添加头文件

      方法1:采用全局包含方式(绝对路径)。需要添加的include文件包括

    E:My DocumentVisual Studio 2010ProjectsmyLive555BasicUsageEnvironmentinclude
    E:My DocumentVisual Studio 2010ProjectsmyLive555liveMediainclude
    E:My DocumentVisual Studio 2010ProjectsmyLive555groupsockinclude
    E:My DocumentVisual Studio 2010ProjectsmyLive555BasicUsageEnvironmentinclude

      方法2:采用局部(当前工程)包含方式(相对路径)。推荐

      描述工程->属性->配置属性->C/C++->常规->附加包含目录

    ..BasicUsageEnvironmentinclude
    ..groupsockinclude
    ..liveMediainclude
    ..UsageEnvironmentinclude

    3  添加文件

        在上述lib工程中添加对应的所有的cpp文件。

    4 编译每个工程,这时会报编译错误。需要在NetCommon.h中添加一行,typedef signed short int16_t;

    5  再次编译每个工程,在debug目录下,就会生成下面的四个静态库了。

      在debug目录下生成 BasicUsageEnvironment.lib、groupsock.lib、UsageEnvironment.lib、liveMedia.lib


    测试live555服务器(不过目前不支持mp4,flv等格式的文件,测试是用h264后缀的文件测试的)

    方式一:(利用ffplay.exe播放)

    1 把媒体文件放到和live555MediaServer.exe同一目录

    2 运行live555MediaServer.exe,弹出的dos框里面有地址,如下图

    3 客户端,dos下进入到ffplay所在文件夹下,然后输入如下命令

        ffplay.exe rtsp://10.120.2.18/<媒体文件名>

      弹出视频播放画面,如下图

    方式二:(直接vlc中播放网络流)

    1 把媒体文件放到和live555MediaServer.exe同一目录

    2 打开vlc plaer,打开网络串流,输入rtsp,如下图

    3 点播放,开始播放,如下图


     

  • 相关阅读:
    mysql锁表与解锁
    问题汇总
    安装一台Centos7桌面版的跳板机
    Centos7二进制部署k8s-v1.20.2 ipvs版本(部署mysql、nacos)
    Centos7二进制部署k8s-v1.20.2 ipvs版本(Prometheus监控k8s)
    CV2 安装异常
    PostgreSQL VACUUM 没有效果(无法清理死元组)的原因
    SQL Server 进程运行状态解析
    mysql 几种启动和关闭mysql服务的方法和区别
    MySQL学习(九)小结(转载)
  • 原文地址:https://www.cnblogs.com/matthew-2013/p/3834102.html
Copyright © 2020-2023  润新知