当前位置:首页 » 编程软件 » live555编译linux

live555编译linux

发布时间: 2022-10-04 10:10:42

‘壹’ live555的性能不给力,该怎么处理

我在开发板上移植了live555MediaServer,可以实现正常的传输。但似乎性能很不高,当进行16路D1的数据传输时,系统从硬盘上读取视频文件,CPU的idle时间几乎为0,以下是我用top命令看到的系统性能:
Live555MediaServer 进程占用CPU-- 50%
用户态时间: 17%
内核态时间: 23%
idle时间: 0%
io时间 : 50%
如此,还没运行其他应用,CPU就已经被全部占满了,显然无法工作。
各位帮帮忙,告诉我有没有改进的方法(代码最好),或者其他的替代live555的方案(除了gstreamer)
------解决方案--------------------------------------------------------
提高硬盘IO的效率,你不妨做个测试,只是硬盘读取38M数据看看占用多少cpu。
如果确认是IO的问题,不妨尝试采用dio来提高读取的效率。
可参考 基于linux的Socket网络编程的性能优化。 我以前就对live555的接收模块做了优化,CPU占用小30%。

‘贰’ 如何使用live555-CSDN论坛

1.尝试过Windows版本和Linux版本的MediaServer, 操作都极其简单,MediaServer启动前不需要任何设置,只要打开就行。
2.根据MediaServer的提示,不论L版还是W版,都是把码流文件(abc.264)放在与可执行程序相同的目录中。
3.在windows平台上尝试过Quicktime, 也尝试过vlc,都不能正常播放。

‘叁’ 在Linux环境下如何调试live555

(1)先下载live555的源码如:live.2011.06.14a.tar.gz(2)解压源码tar -zxvf live.2011.06.14a.tar.gz(3)cd live(4)./genMakefiles linux-gdb(5)make经过以上步骤生成的live555MediaServer可以用于gdb调试,如果要使源代码中的DEBUG宏有效,还需要修改live/config.linux-gdb文件,在COMPILE_OPTS一行中添加-DDEBUG即可。

‘肆’ 怎样编译live555 openrstp

1: 编译
(1): ./genMakefiles linux
(2): make

2: 服务器环境
服务器端是一个支持RTSP server的H.264的摄像头;

3: 运行 openRTSP
./openRTSP -d 20 -f 20 -w 640 -h 480 -b 400000 "rtsp://192.168.2.239/id=0"
或 ./openRTSP -f 20 -w 640 -h 480 -b 400000 "rtsp://192.168.2.239/id=0"
参数解释; -d 20 --->程序运行时间,如果没有程序持续从服务器获取视频;
-f 20 ----> 帧率
-w 640 -h 480 -----> 帧分辨率
-b 400000 ---->码率
4: 如果不修改playCommon.cpp的代码,openRTSP将获取的视频数据通过stdout直接打印到屏幕

5: 如果是自己取裸码流,则可以调用SPS相关的函数,将H264的帧信息告诉解码器,否则无法解码
unsigned int num=1;
SPropRecord * sps = parseSPropParameterSets(subsession->fmtp_spropparametersets(),num);
fileSink = H264VideoFileSink::createNew(*env, outFileName,
subsession->fmtp_spropparametersets(),
fileSinkBufferSize, oneFilePerFrame);
struct timeval tv={0,0};
unsigned char start_code[4] = {0x00, 0x00, 0x00, 0x01};
fileSink-> addData(start_code, 4, tv);
fileSink->addData(sps[0].sPropBytes,sps[0].sPropLength,tv);
delete[] sps;

6: 稍微修改代码让openRTSP只录视频,且保存到指定的文件
streamURL = argv[1];
// add by Andy_xi
createReceivers = True; // 保存视频
outputAVIFile = False; //因为是H264
videoOnly = True;
singleMedium = "video"; //只要视频
//<------end

7: 调试记录
启动openRTSP后,一定的看到SDP信息中的SPS信息,否则解码器可能不能解码
a=fmtp:106 profile-level-id=42001E;sprop-parameter-sets=Z0KAKNoB4AiXlQ==,aM48gA==;packetization-mode=0

只要有这个信息,用file 命令看生成h264文件显示如下:

new.h264: JVT NAL sequence, H.264 video, baseline @ L 40

‘伍’ 编译android-vlc支持rtsp,是不是需要添加live555

前几天用PC平台上的VLC播放RTSP流媒体时延迟时间较长,存在1s左右的延迟,效果不是很好,后来查了资料,发现这个延迟时间是可以修改的。找到工具->首选项,然后参数设置左下角选择“全部”,左边选择“输入编解码”->“网络缓存”选项,可以根据具体需要加以修改,具体见下图不过这个值不要太小,否则缓存太小,播放视频的过程中会很卡

‘陆’ 开源的视频传输框架 linux下可调 像live555 ffmpeg 之类的 还有那些 具体是什么 最好有对比的文章资料

gstreamer
不是很懂流媒体,不过以前用过gstreamer 做rtsp服务器

‘柒’ 如何使用vim交叉编译live555

去live555 官网
下载live555-latest.tar.gz

解压后 运行 ./genMakefiles linux-64bit //这个时在pc上编译
如果想交叉编译 cp config.armlinux config.zxl
并修改CROSS_COMPILE?= arm-hisiv100-linux-uclibcgnueabi-

./genMakefile zxl (只写后缀名即可)
再make即可

测试是否好使
server端 运行 live555MediaServer

‘捌’ linux RHEL6.3 yum 安装mplayer出现以下问题~~求高手,

跟你同样的命令我这里执行的很正常。
你的系统是什么版本?
yum 用的是哪个源?

我的执行结果,如下
Installed:
smplayer.x86_64 0:0.6.9-1.el6.rf

Dependency Installed:
a52dec.x86_64 0:0.7.4-8.el6.rf aalib.x86_64 0:1.4.0-5.el6.rf arts.x86_64 8:1.5.10-10.el6
audiofile.x86_64 1:0.2.6-11.1.el6 cppunit.x86_64 0:1.12.1-3.1.el6 dirac.x86_64 0:1.0.2-1.el6.rf
enca.x86_64 0:1.10-1.el6.rf esound-libs.x86_64 1:0.2.41-3.1.el6 faac.x86_64 0:1.26-1.el6.rf
freeglut.x86_64 0:2.6.0-1.el6 fribidi.x86_64 0:0.10.9-1.el6.rf lame.x86_64 0:3.99.5-1.el6.rf
libcaca.x86_64 0:0.99-0.1.beta17.el6.rf libdca.x86_64 0:0.0.5-1.el6.rf libmad.x86_64 0:0.15.1b-4.el6.rf
librtmp.x86_64 0:2.3-1.el6.rf libvdpau.x86_64 0:0.4.1-1.el6.rf live555.x86_64 0:0-0.27.2012.02.04.el6.rf
lzo.x86_64 0:2.03-3.1.el6 mpg123.x86_64 0:1.15.1-1.el6.rf mplayer.x86_64 0:1.0-0.48.svn20100703.el6.rf
mplayer-common.x86_64 0:1.0-0.48.svn20100703.el6.rf mplayer-fonts.noarch 0:1.1-3.0.rf opencore-amr.x86_64 0:0.1.2-1.el6.rf
orc.x86_64 0:0.4.11-1.el6.rf schroedinger.x86_64 0:1.0.10-1.el6.rf svgalib.x86_64 0:1.9.25-1.el6.rf
x264.x86_64 0:0.0.0-0.4.20101111.el6.rf xvidcore.x86_64 0:1.2.2-1.el6.rf

Complete!

‘玖’ linux live555 流媒体怎么播放

通过Live555交叉编译后运行发现,上面实现的流媒体实时通过文件服务器的文件点播,没有相关的流媒体实现方式,
但在Linux下,可以通过某些技巧实现Live555服务器实时流媒体服务器,并且是傻瓜式的,简易程度不需要修改Live555下面一行代码。

首先,需要编译/交叉编译Live555服务器,这里可以参考一篇文章
http://blog.csdn.net/lawishere/article/details/8182952
源代码在这

一下讨论所有路径均在原生Live555源码包解压后的live目录下。
编译成功后,执行./mediaServer/live555MediaServer

你会看到一些点播信息,也就是说你可以在live目录增加列表中的文件实现对这些文件的点播,其中包括h264净荷数据格式.264。
利用“Linux下一切皆是文件”这个朴素而又华丽的特点。

我们通过mkfifo命令在当前目录下创建demo.264这个fifo管道(注:这里后缀需要列表中提供的内容,若实现h264流数据则是.264)。
然后,开启另外一个进程,通过fwrite接口把获得的h264净荷数据写入到demo.264下(简单测试可以cat test.264 >> demo.264)实现。
同时远程通过vlc点播路径rtsp://192.168.1.41:8554/demo.264

大功告成!!
一句Live555代码都不需要修改,简直是傻瓜式的。

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:336
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:378
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:612
java用什么软件写 发布:2025-05-18 03:56:19 浏览:32
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:107
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:944
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:741
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:803
网卡访问 发布:2025-05-18 03:35:04 浏览:511
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:372