live555 交叉编译移植到海思开发板
本文章参考了。http://blog.csdn.net/lawishere/article/details/8182952,写了hi3518的配置说明。特此感谢
https://blog.csdn.net/sunxiaopengsun/article/details/79175408
1、首先到它的主页下载一个源码包:
http://www.live555.com/liveMedia/public/
我下载的是latest的,具体什么版本还真不清楚
2、放到linux目录下解压:
- root@kubuntu:/home/frank tar zxvf live555-latest.tar.gz
- root@kubuntu:/home/frank# cd live
- root@kubuntu:/home/frank/live#
3、首先尝试在PC的Linux上编译:
区别于传统的源码包,不是传统的配置方式,而是通过genMakefiles配对目录下的config.*文件生成Makefile
- root@kubuntu:/home/frank/live# ./genMakefiles linux
- root@kubuntu:/home/frank/live# make
编译很顺利,然后上网找一个*.264文件放在当前目录下
执行mediaServer目录下的live555MediaServer服务器原型
- LIVE555 Media Server
- version 0.75 (LIVE555 Streaming Media library version 2012.11.08).
- Play streams from this server using the URL
- rtsp://192.168.1.41:8554/<filename>
- where <filename> is a file present in the current directory.
- Each file's type is inferred from its name suffix:
- ".264" => a H.264 Video Elementary Stream file
- ".aac" => an AAC Audio (ADTS format) file
- ".ac3" => an AC-3 Audio file
- ".amr" => an AMR Audio file
- ".dv" => a DV Video file
- ".m4e" => a MPEG-4 Video Elementary Stream file
- ".mkv" => a Matroska audio+video+(optional)subtitles file
- ".mp3" => a MPEG-1 or 2 Audio file
- ".mpg" => a MPEG-1 or 2 Program Stream (audio+video) file
- ".ts" => a MPEG Transport Stream file
- (a ".tsx" index file - if present - provides server 'trick play' support)
- ".wav" => a WAV Audio file
- ".webm" => a WebM audio(Vorbis)+video(VP8) file
- See http://www.live555.com/mediaServer/ for additional documentation.
- (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-hisiv100nptl-linux-g++
同理如果通过genMakefiles生成交叉编译的Makefile,我们需要一个对应的config.*
因此我们复制一个config.hi3518,命令:cp config.armlinux config.hi3518
- CROSS_COMPILE?= arm-hisiv100nptl-linux-
- COMPILE_OPTS = $(INCLUDES) -I. -O2 -DSOCKLEN_T=socklen_t -DNO_SSTREAM=1 -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64
- C = c
- C_COMPILER = $(CROSS_COMPILE)gcc
- C_FLAGS = $(COMPILE_OPTS)
- CPP = cpp
- CPLUSPLUS_COMPILER = $(CROSS_COMPILE)g++
- CPLUSPLUS_FLAGS = $(COMPILE_OPTS) -Wall -DBSD=1 -DLOCALE_NOT_USED
- OBJ = o
- LINK = $(CROSS_COMPILE)g++ -o
- LINK_OPTS =
- CONSOLE_LINK_OPTS = $(LINK_OPTS)
- LIBRARY_LINK = $(CROSS_COMPILE)ar cr
- LIBRARY_LINK_OPTS = $(LINK_OPTS)
- LIB_SUFFIX = a
- LIBS_FOR_CONSOLE_APPLICATION =
- LIBS_FOR_GUI_APPLICATION =
- EXE =
然后与在PC上编译一样,进行编译。
- root@kubuntu:/home/frank/live# ./genMakefiles hi3518
- root@kubuntu:/home/frank/live# make clean;make
这里要记得先make clean,否则因为之前在PC上编译的目标文件没清楚会导致链接失败。
编译时会产生一个错误
- In file included from MPEG4GenericRTPSink.cpp:22:
- include/Locale.hh:47:123: xlocale.h: No such file or directory
- In file included from MPEG4GenericRTPSink.cpp:22:
- include/Locale.hh:62: error: `locale_t' does not name a type
- make[1]: *** [MPEG4GenericRTPSink.o] Error 1
- make[1]: Leaving directory `/home/frank/live/liveMedia'
- make: *** [all] Error 2
这个是由于海思使用的是uClinux,并没有xlocale.h这个头文件,
而live555内部的一个locale模块调用了(见liveMeida/locale.hh),因此通过编译选项把他去掉。
修改config.hi3507,在编译选项上加入-DLOCALE_NOT_USED把此模块去掉。上面那段是已经去掉的
再次生成Makefile并编译
- root@kubuntu:/home/frank/live# ./genMakefiles hi3518
- root@kubuntu:/home/frank/live# make
编译成功!
5 移植到海思开发板上
将mediaServer的live555MediaServer(你可以试一下,在linux系统中打开这个是出错误的),通过nfs挂载到开发板上执行。运行后会出现
- LIVE555 Media Server-Test frank
- version 0.84 (LIVE555 Streaming Media library version 2014.10.07).
- Play streams from this server using the URL
- rtsp://0.0.0.0/<filename>
- where <filename> is a file present in the current directory.
- Each file's type is inferred from its name suffix:
- ".264" => a H.264 Video Elementary Stream file
- ".265" => a H.265 Video Elementary Stream file
- ".aac" => an AAC Audio (ADTS format) file
- ".ac3" => an AC-3 Audio file
- ".amr" => an AMR Audio file
- ".dv" => a DV Video file
- ".m4e" => a MPEG-4 Video Elementary Stream file
- ".mkv" => a Matroska audio+video+(optional)subtitles file
- ".mp3" => a MPEG-1 or 2 Audio file
- ".mpg" => a MPEG-1 or 2 Program Stream (audio+video) file
- ".ogg" or ".ogv" or ".opus" => an Ogg audio and/or video file
- ".ts" => a MPEG Transport Stream file
- (a ".tsx" index file - if present - provides server 'trick play)
- ".vob" => a VOB (MPEG-2 video with AC-3 audio) file
- ".wav" => a WAV Audio file
- ".webm" => a WebM audio(Vorbis)+video(VP8) file
- See http://www.live555.com/mediaServer/ for additional documentation.
- (We use port 80 for optional RTSP-over-HTTP tunneling, or for HT
测试的时候会发现RTSP的地址是0.0.0.0;
在nfs挂载的时候,已经用ifconfig eth0 192.168.0.166 将板子的IP地址设为了192.168.0.166 ,为什么还是0 呢
需要用到route add default gw 192.168.0.1,这个192.168.0.1是网关的IP地址,也就是你的路由器的IP地址,命令意思的是添加一条默认网关命令,将所有的数据包都转发到192.168.0.1;注意开发板上是运行./live555MediaServer,发现时没有端口号的,直接rtsp://192.168.0.166 就可以看到想要的结果,预祝成功。
如何在hisi编译好的live555版本基础上修改成g++编译?
将 所有工程中的CROSS_COMPILE变量设置为空即可。
live555 交叉编译移植到海思开发板的更多相关文章
- OpenCV开发笔记(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉编译移植到海思平台Hi35xx平台
前言 移植opencv到海思平台,opencv支持对视频进行解码,需要对应的ffmpeg支持. Ffmpeg的移植 Ffmpeg的移植请参考之前的文章:<FFmpeg开发笔记(十): ...
- FFmpeg开发笔记(十):ffmpeg在ubuntu上的交叉编译移植到海思HI35xx平台
FFmpeg和SDL开发专栏(点击传送门) 上一篇:<FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放>下一篇:敬请期待 前言 将ffmpeg移植到海思H ...
- 移植Mplayer到OK6410开发板
移植Mplayer到OK6410开发板 作者:vasage 项目需要,需要将Mplayer移植到开发板上,所以今天花了一下下午成功移植,其中参考很多文档,后发现许多文档陈旧,些许文档有少量错误,所以这 ...
- 物联网操作系统HelloX已成功移植到MinnowBoard MAX开发板上
在HelloX开发团队的努力下,以及Winzent Tech公司(总部在瑞典斯德哥尔摩)的支持下,HelloX最新版本V1.78已成功移植到MinnowBoard MAX开发板上.相关源代码已经发布到 ...
- 移植BOA服务器到开发板
移植BOA 服务器到GEC210 开发板 开发平台主机:VMWare--Ubuntu 10.04 LTS开发板:GEC210 / linux-2.6.35.7编译器:arm-linux-gcc-4.5 ...
- Linux移植到自己的开发板(二)UBOOT和Linux
@ 目录 一.uboot跳转到Linux 二. Linux内核启动之解压阶段 三. Linux内核启动之汇编阶段 插曲:关于Kconfig和Makefile 四. Linux内核启动之C语言阶段 五. ...
- ubuntu10.04 搭建海思开发环境
(1)Ubuntu 10.04.4 LTS (Lucid Lynx) 下载地址:http://old-releases.ubuntu.com/releases/lucid/ (2)passwd roo ...
- Linux移植到自己的开发板(三)根文件系统
@ 目录 1 Linux内核配置 2 ramdisk制作 3 busybox配置 4 genext2fs生成镜像 为了快速调试,采用ramdisk进行根文件系统测试.要使内核能挂载ramdisk根文件 ...
- (原创)AP6212移植到AM335X自主开发板上
转载请指明出处. 参考<关于AM335X移植SDIO WIFI的简易教程> http://www.deyisupport.com/question_answer/dsp_arm/sitar ...
随机推荐
- 使用java命令运行class文件提示“错误:找不到或无法加载主类“的问题分析
有时候我们需要直接用jdk提供的java命令来执行class文件让软件运行起来,特别是很多初学者,但经常会发现如下提示: 用eclipse或用ant则没有问题. 其实原因很简单,我们忽略了2个细节. ...
- 深入探访支付宝双11十年路,技术凿穿焦虑与想象极限 | CYZONE特写
小蚂蚁说: 双11十年间,交易规模的指数级增长不断挑战人们的想象力,而对蚂蚁技术团队来说,这不仅是一场消费盛宴,而是无数次濒临压力和焦虑极限的体验,更是技术的练兵场.如今双11对蚂蚁金服而言,已经绝不 ...
- WordPress上传到互联网搭建
1.建站流程: 1.购买域名 2.购买空间 3.解析绑定 4.上传安装 2.购买域名 域名的购买可以到相关域名出售的服务商那儿买,如阿里云,主机庙.这里就不做详细解释了 3.购买空间 域名的购买可以到 ...
- 最接近的三数之和(java实现)
题目: 给定一个包括 n 个整数的数组 nums 和 一个目标值 target.找出 nums 中的三个整数,使得它们的和与 target 最接近.返回这三个数的和.假定每组输入只存在唯一答案. 例如 ...
- spoj1433 KPSUM
题意:略: 首先知道10,20,......100,200,1000的前面的符号都是负号. 举具体例子:221时,计算过程为 000-009, 010-019, 020-029...... ...
- python学习(三)
- 树状DP HDU1520 Anniversary party
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1520 题意:职员之间有上下级关系,每个职员有自己的happy值,越高在派对上就越能炒热气氛.但是必须是 ...
- 在 .NET项目中使用 Redis(2018.10.16)
1. 打开NuGet管理器搜索redis,安装:“StackExchange.Redis” 2. 配置 Web.config 文件 <connectionStrings> <add ...
- Quartz的基本使用之入门(2.3.0版本)
一.Quartz可以用来做什么 Quartz是一个强大任务调度框架,我工作时候会在这些情况下使用到quartz框架,当然还有很多的应用场景,在这里只列举2个实际用到的 餐厅系统会在每周四晚上的22点自 ...
- Weka中数据挖掘与机器学习系列之Weka系统安装(四)
能来看我这篇博客的朋友,想必大家都知道,Weka采用Java编写的,因此,具有Java“一次编译,到处运行”的特性.支持的操作系统有Windows x86.Windows x64.Mac OS X.L ...