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

从今天开始我们将一起学习live555源码,第一步就是学习编译live555源码。虽然网上有不少已经配置好的工程,但自己动手编译却有另外一番乐趣。

  Live555源代码包括四个基本的库,分别是UsageEnvironmentr、groupsock、liveMedia、BasicUsageEnvironment。Media Server(服务器程序)和各种测试代码。
  
本文使用vc2010编译环境。

一、获得live555源码
    1. live555官网http://www.live555.com/
    2. 从csdn下载获得http://download.csdn.net/detail/ithzhang/7654535

解压后的源码如下图所示:

包括上述四个库和mediaServer服务器程序,以及其他的测试代码。

二、创建工程

1. 打开vc2010,创建win32控制台应用程序,项目名称为BasicUsageEnvironment,指定新解决方案的位置,解决方案名称live555,如下图:

2.点击确定,在此后的下一步配置中,按下图配置:
             

3.添加新建项目,选择win32控制台项目,项目名称为UsageEnvironment。
  

4.点击确定和下一步后,按下图配置

5. 重复3的步骤,添加groupsock 、liveMedia项目。

6. 添加mediaServer工程,并按如下配置:

7. 五个工程均创建完毕,添加后的解决方案结构图如下:
                                       

三、将源文件加入工程

1. 打开源码目录,将BasicUsageEnvironment、UsageEnvironment、groupsock、mediaServer、liveMedia目录下的include目录和cpp文件拷贝到上述创建的对应的工程目录下。BasicUsageEnvironment拷贝后的效果如下图:


       2、接着就是将这些文件添加进对应项目,将每个工程下的cpp添加到源文件筛选器下,头文件则添加到头文件筛选器下。添加后工程结构图:
                                          

3.添加依赖头文件

方法一、把该项目需要的其他库的头文件拷贝到该工程的include目录下。
      方法二、在属性->C/C++->常规->附加包含目录填写需要包含的头文件路径(推荐)

  1. ..\BasicUsageEnvironment\include
  2. ..\groupsock\include
  3. ..\liveMedia\include
  4. ..\UsageEnvironment\include

BasicUsageEnvironment添加后效果如下图:

添加完毕后,即可编译生成对应lib。

4. 为MediaServer添加依赖库。
        MediaServer需要依赖上述工程生成的lib,所以需要将以上生成的lib拷贝到MediaServer工程目录下。有种方式:
       一、使用#pragma
         在MediaServer的ive555MediaServer.cpp添加如下代码:

  1. #pragma comment (lib, "Ws2_32.lib")
  2. #pragma comment (lib, "BasicUsageEnvironment.lib")
  3. #pragma comment (lib, "groupsock.lib")
  4. #pragma comment (lib, "liveMedia.lib")
  5. #pragma comment (lib, "UsageEnvironment.lib")

二、项目->属性->配置属性->连接器->输入->附加依赖项

  1. UsageEnvironment.lib;
  2. liveMedia.lib;
  3. groupsock.lib;
  4. BasicUsageEnvironment.lib;
  5. Ws2_32.lib

此后即可成功编译并生成MediaServer.exe。

运行后的效果如下图:

5. 使用VLC测试LIVE555服务器。
    此时RTSP服务器已经开始运行,等待来自客户端的请求。可以使用VLC作为客户端进行测试。
     一、准备一个录像文件, 如aa.264,放在MediaServer.exe同一目录。(没有录像文件,点此处)。

二、 打开网络串流,输入本机ip+录像文件名。如rtsp://192.168.0.106/aa.264

          
 

三、播放效果
       

Live555研究之一 源代码编译的更多相关文章

  1. Live555研究之中的一个 源码编译

                                                Live555研究之中的一个 源代码编译 Live555 是一个为流媒体提供解决方式的跨平台的C++开源项目,它 ...

  2. Win7+VS2010:mysql 源代码编译与调试

    win7+vs2010源代码编译mysql 近期因为在实习,工作重点在于一些数据库的开发,为了更好的理解数据库的实现机制.眼下萌生了要研究一下mysql数据库源代码的想法.那么好吧,说干就干.首先我们 ...

  3. Windows下从源代码编译Skia

    在PPAPI里面画图,能够结合第三方的图形库.比方Cairo.Skia. Google Chrome.Chromium和Android都使用Skia作为画图引擎.我也来试试Skia,先过编译关. fo ...

  4. 源代码编译安装Python3.5.2

    由于没有找到Python3.5的rpm安装包,因此进行源代码编译安装 1.下载Python3.5.2 [root@seastar ~]# cd /usr/local/src [root@seastar ...

  5. Android 6.0 源代码编译实践

    http://www.judymax.com/archives/1087 Android 6.0 源代码编译实践 https://mirrors.tuna.tsinghua.edu.cn/help/A ...

  6. Nginx+Php-fpm+MySQL+Redis源代码编译安装指南

    说明:本教程主要包括以下三个部分: 1. 源代码编译安装Nginx 2. 源代码编译安装php以及mysql.redis扩展模块 3. 配置虚拟主机 文中所涉及安装包程序均提供下载链接,欢迎使用 运行 ...

  7. 3DSlicer源代码编译过程vs2008+windows xp [转]

    一 下载QT源代码编译 1.  简述   在 Windows2000/xp/vista 下,安装 VS2008, QT 4.7.2 :并在 VS2008上建立 QT 的集成开发环境,利用 VS2008 ...

  8. 官方发布的新版本Qt已经不支持XP了,要自己从源代码编译

    官方发布的新版本Qt已经不支持XP了,要自己从源代码编译,编译选项里有个-target项,用来提供XP支持的,编译时加上-target xp就可以了 http://www.qtcn.org/bbs/r ...

  9. Ubuntu通过源代码编译安装Octave 4.0

    本教程/笔记,意在指导在Ubuntu及其它Linux系统上怎样通过源代码安装Octave. Octave简单介绍 Octave是GNU旗下取代matlab的数学工具软件,语法与matlab高度兼容.而 ...

随机推荐

  1. js中数值各进制之间的转换

    十进制转换为二进制 toString()方法可把一个 Number 对象转换为一个字符串,并返回结果.语法如下: NumberObject.toString(radix); 其中,radix为可选.规 ...

  2. Codeforces1303D. Fill The Bag

    1e18对应2进制有58位,可以直接暴力模拟,因为读入的数都是2次幂,__builtin_ctz这个内置gcc函数可以算出二进制下末尾有几个0,读入时统计,然后从n的最低位开始判断,注意每次升位的时候 ...

  3. SpringBoot 集成FreeMarker

    SpringBoot官方不推荐使用jsp,因为jsp不好发挥SpringBoot的特性.官方推荐使用模板引擎代替jsp,现在很多公司都使用FreeMarker来作为SpringBoot的视图. Spr ...

  4. [Write-up]-pwnlab_init

    关于 下载地址点我 Flag: /root/flag.txt 放假的第一天 哔哩哔哩视频 信息收集 nmap -sn 192.168.7.1/24 Starting Nmap 7.01 ( https ...

  5. 对简易网页版注册系统的制作(连接MySQL数据库)

    一.基本需求 二.设计思路: 1.首先创建一个与数据库数据属性对应的类User,并添加get和set方法. 2.之后建立另一个类UserDao用于生成一条完整的数据对象. 3.再建立一个类DButil ...

  6. PLSQL设置显示的字符集及设置

    一.关于PLSQL无法正确显示中文 刚才下载安装了PLSQL Developer 9.0.0.1601 汉化绿色版,执行SQL查询语句,发现显示的数据中只要有中文都会以?表示.经过网上查询得知这是客户 ...

  7. 【转载】如何快速转载CSDN中的博客

    前言   对于喜欢逛CSDN的人来说,看别人的博客确实能够对自己有不小的提高,有时候看到特别好的博客想转载下载,但是不能一个字一个字的敲了,这时候我们就想快速转载别人的博客,把别人的博客移到自己的空间 ...

  8. Js 获取当前日期时间及其它操作(转)

    Js获取当前日期时间及其它操作 var myDate = new Date();myDate.getYear();        //获取当前年份(2位)myDate.getFullYear();   ...

  9. 十三、web应用中路径总结

    1.路径的编写形式:1)<a href="/项目名/资源路径"></a>    <!--超链接--> <form action=" ...

  10. nth-of-type()的用法

    同样的标签选择其中一个,就用nth-of-type() <img src="http://cms-bucket.nosdn.127.net/2018/10/16/ad8698e497e ...