转自:http://blog.csdn.net/lawishere/article/details/8182952

Live555 是一个为跨平台的C++开源项目,它实现了RTP/RTCP、RTSP、SIP等的支持。并且相对于其他的流媒体服务器是完全开源并且免费的。

废话不多说,下面开始。

1、首先到它的主页下载一个源码包:

http://www.live555.com/liveMedia/public/

我下载的是latest的,具体什么版本还真不清楚

2、放到linux目录下解压:

[html] view plaincopyprint?
  1. root@kubuntu:/home/frank tar zxvf live555-latest.tar.gz
  2. root@kubuntu:/home/frank# cd live
  3. root@kubuntu:/home/frank/live#

3、首先尝试在PC的Linux上编译:
区别于传统的源码包,不是传统的配置方式,而是通过genMakefiles配对目录下的config.*文件生成Makefile

[html] view plaincopyprint?
  1. root@kubuntu:/home/frank/live# ./genMakefiles linux
  2. root@kubuntu:/home/frank/live# make

编译很顺利,然后上网找一个*.264文件(常见的就是那个test.264在新闻报道)放在当前目录下

执行mediaServer目录下的live555MediaServer服务器原型

[html] view plaincopyprint?
  1. root@kubuntu:/home/frank/live# ./mediaServer/live555MediaServer
  2. LIVE555 Media Server
  3. version 0.75 (LIVE555 Streaming Media library version 2012.11.08).
  4. Play streams from this server using the URL
  5. rtsp://192.168.1.41:8554/<filename>
  6. where <filename> is a file present in the current directory.
  7. Each file's type is inferred from its name suffix:
  8. ".264" => a H.264 Video Elementary Stream file
  9. ".aac" => an AAC Audio (ADTS format) file
  10. ".ac3" => an AC-3 Audio file
  11. ".amr" => an AMR Audio file
  12. ".dv" => a DV Video file
  13. ".m4e" => a MPEG-4 Video Elementary Stream file
  14. ".mkv" => a Matroska audio+video+(optional)subtitles file
  15. ".mp3" => a MPEG-1 or 2 Audio file
  16. ".mpg" => a MPEG-1 or 2 Program Stream (audio+video) file
  17. ".ts" => a MPEG Transport Stream file
  18. (a ".tsx" index file - if present - provides server 'trick play' support)
  19. ".wav" => a WAV Audio file
  20. ".webm" => a WebM audio(Vorbis)+video(VP8) file
  21. See http://www.live555.com/mediaServer/ for additional documentation.
  22. (We use port 8080 for optional RTSP-over-HTTP tunneling, or for HTTP live streaming (for indexed Transport Stream files only).)

通过VLC可以点播rtsp://192.168.1.41:8554/test.264视频,

(注意:test.264所在的目录要和live555MediaServer执行目录相一致,若test.264放在live目录下,则需要在live目录下执行./mediaServer/live555MediaServer)

4、交叉编译

编译器arm-hismall-linux-gcc/arm-hismall-linux-g++

同理如果通过genMakefiles生成交叉编译的Makefile,我们需要一个对应的config.*

因此我们创建一个config.hi3507,内容可以参考config.armlinux

[html] view plaincopyprint?
  1. root@kubuntu:/home/frank/live# cat config.hi3507
  2. CROSS_COMPILE?=         arm-hismall-linux-
  3. COMPILE_OPTS =          $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
  4. C =                     c
  5. C_COMPILER =            $(CROSS_COMPILE)gcc
  6. C_FLAGS =               $(COMPILE_OPTS)
  7. CPP =                   cpp
  8. CPLUSPLUS_COMPILER =    $(CROSS_COMPILE)g++
  9. CPLUSPLUS_FLAGS =       $(COMPILE_OPTS) -Wall -DBSD=1
  10. OBJ =                   o
  11. LINK =                  $(CROSS_COMPILE)g++ -o
  12. LINK_OPTS =
  13. CONSOLE_LINK_OPTS =     $(LINK_OPTS)
  14. LIBRARY_LINK =          $(CROSS_COMPILE)ar cr
  15. LIBRARY_LINK_OPTS =     $(LINK_OPTS)
  16. LIB_SUFFIX =                    a
  17. LIBS_FOR_CONSOLE_APPLICATION =
  18. LIBS_FOR_GUI_APPLICATION =
  19. EXE =

然后与在PC上编译一样,进行编译。

[html] view plaincopyprint?
  1. root@kubuntu:/home/frank/live# ./genMakefiles hi3507
  2. root@kubuntu:/home/frank/live# make clean;make

这里要记得先make clean,否则因为之前在PC上编译的目标文件没清楚会导致链接失败。

编译时会产生一个错误

[html] view plaincopyprint?
  1. In file included from MPEG4GenericRTPSink.cpp:22:
  2. include/Locale.hh:47:123: xlocale.h: No such file or directory
  3. In file included from MPEG4GenericRTPSink.cpp:22:
  4. include/Locale.hh:62: error: `locale_t' does not name a type
  5. make[1]: *** [MPEG4GenericRTPSink.o] Error 1
  6. make[1]: Leaving directory `/home/frank/live/liveMedia'
  7. make: *** [all] Error 2

这个是由于海思使用的是uClinux,并没有xlocale.h这个头文件,

而live555内部的一个locale模块调用了(见liveMeida/locale.hh),因此通过编译选项把他去掉。

修改config.hi3507,在编译选项上加入-DLOCALE_NOT_USED把此模块去掉。

[html] view plaincopyprint?
  1. CROSS_COMPILE?=         arm-hismall-linux-
  2. COMPILE_OPTS =          $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
  3. C =                     c
  4. C_COMPILER =            $(CROSS_COMPILE)gcc
  5. C_FLAGS =               $(COMPILE_OPTS)
  6. CPP =                   cpp
  7. CPLUSPLUS_COMPILER =    $(CROSS_COMPILE)g++
  8. CPLUSPLUS_FLAGS =       $(COMPILE_OPTS) -Wall -DBSD=1 -DLOCALE_NOT_USED
  9. OBJ =                   o
  10. LINK =                  $(CROSS_COMPILE)g++ -o
  11. LINK_OPTS =
  12. CONSOLE_LINK_OPTS =     $(LINK_OPTS)
  13. LIBRARY_LINK =          $(CROSS_COMPILE)ar cr
  14. LIBRARY_LINK_OPTS =     $(LINK_OPTS)
  15. LIB_SUFFIX =                    a
  16. LIBS_FOR_CONSOLE_APPLICATION =
  17. LIBS_FOR_GUI_APPLICATION =
  18. EXE =

再次生成Makefile并编译

[html] view plaincopyprint?
  1. root@kubuntu:/home/frank/live# ./genMakefiles hi3507
  2. root@kubuntu:/home/frank/live# make

编译成功!

再按照上述方法把程序放到hi3507上运行测试

live555 移植相关推荐

  1. live555移植ARM过程

    文章目录 前言 一.下载live555 二.构建过程 1.主要的步骤 2.碰到的问题 总结 前言 将live555移植到飞凌OKA40i-C开发板. 开发环境:虚拟机上安装Ubuntu,64位机器. ...

  2. 海思移植Live555

    海思移植Live555 移植Live555 移植openssl 移植Live555 下载live555 live下载地址 下载完毕后移植到虚拟机上解压 解压完毕后我们可以得到live这个文件夹 我们要 ...

  3. DM8168移植wis-streamer【8168定制】

    8168网传模块主要由wis-streamer进程进行,主要功能是实现高清视频和音频的网络传输,它能够实现以下几个方面的功能: (1)能够对来自客户端的视频点播请求做出响应,实现高清视频和音频码流的实 ...

  4. CMake 基础用法,掌握 CMake 诀窍

    CMake 是一个开源的.跨平台的工具系列,用于构建.测试和打包软件.CMake 用于使用简单的平台和编译器独立的配置文件(CMakeLists.txt)来控制软件编译过程,并生成可以在您选择的编译环 ...

  5. live555编译移植

    1.在官网www.live555.com下载最新的源码包 2.解压进入live drwxrwxrwx 1 root root 4096 Jul 12 13:02 BasicUsageEnvironme ...

  6. LIVE555再学习 -- live555实现RTSP直播服务器 分析

    上一篇文章 讲到了 live555实现RTSP直播服务器,但是篇幅有点长,没有来得及对源码进行分析. 这篇文章就好好看看,源码部分这次参看Linux版本下的 通过live555实现H264 RTSP直 ...

  7. LIVE555再学习 -- testRTSPClient 实例

    上一篇文章简单看了一遍 testRTSPClient  的源码,接下来举几个应用实例加深一下. 首先什么都不做修改,先执行一遍,看一下. 一.执行 testRTSPClient 特么,上面的东西我没看 ...

  8. LIVE555再学习 -- OpenRTSP 源码分析

    看了很多东西,感觉有点杂.源码分析部分也看了,讲的也就那样.现在有点不知道从哪讲起了. 参看:nkmnkm的专栏-流媒体 参看:smilestone322的专栏-live555 一.源码组成 包括上述 ...

  9. openssl 64位编译_海思hi3516dv300开发--live555交叉编译

    1.live555下载 官网: LIVE555 Streaming Media​www.live555.com 下载 .tar.gz后缀源码 解压: tar -zxvf live.2020.04.24 ...

最新文章

  1. python标准库学习4
  2. 李彦宏的百度 AI 落地战略,由王海峰来实现
  3. k8s 重要概念 - 每天5分钟玩转 Docker 容器技术(117)
  4. HDU 6156 Palindrome Function 数位DP
  5. spring cloud-zuul的Filter详解
  6. ssh-keys git
  7. [APIO2018]铁人两项——圆方树+树形DP
  8. Use Cases in an Agile Backlog
  9. 说说如何使用 Ant 把文件推送到 Linux
  10. 从壹开始前后端分离【 .NETCore2.1 +Vue 2 +AOP+DI】框架之一 || 前言
  11. 如何用matlaab把csv转为mat文件_如何编辑pdf文档?看大神们是如何操作的
  12. 线程范围内的线程共享(多线程)
  13. 解读戴尔,惠普和思科的“三角关系”
  14. Day 6 函数与模块
  15. 九大内置对象和servlet生命周期
  16. EM算法 --入门级详解
  17. 事后诸葛亮分析(小小大佬带飞队)
  18. Referring Image Segmentation 综述
  19. 银联云闪付开发联调步骤向导
  20. 磕磕绊绊的全景相机之路

热门文章

  1. 一. 200多万元得到的创业教训--产品篇
  2. 小米研发芯片受挫,雷军强调芯片研发在继续,但已没太大意义
  3. 梅州组织培养实验室之室内布局建设
  4. 给小狗喂骨头,小狗会汪汪叫;给小猫喂食,小猫会喵喵叫。本案例要求编写一个程序模拟饲养员喂食动物的过程
  5. 价值15000的大数据全套视频免费分享!!
  6. VIPLE 初学者日记(一)输出hello world
  7. 吴恩达机器学习笔记三
  8. 日期函数使用方法汇总
  9. 盘点那些想“娶”PPTV的IT大佬们
  10. 基础语言-第17天-正则表达式