当前位置:首页 » 操作系统 » linuxlive555

linuxlive555

发布时间: 2023-02-09 18:05:18

① 怎样编译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

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

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

③ 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%。

④ 在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即可。

⑤ 如何使用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

⑥ live555、jrtplib、ortp、gstreamer,用哪一个比较好呢解决方法

接收端想在WindowsPC机上观看。
本人正在读研,以前几乎没接触网络传输。看了很长时间的资料,看大家用的最多的就是live555和jrtplib了,但是这两个都是用C++写的,而我的采集和编码都是用C语言写的。至于ortp和gstreamer好像用的人不多。
------解决方案--------------------------------------------------------
服务器端使用live555、jrtplib,客户端建议如果是windows建议使用DITRECTSHOW,是LINUX建议使用GSTREAMER,至于解码使用ffmpeg就可以了

热点内容
linux监控tomcat 发布:2025-07-23 07:50:40 浏览:742
php文件上传后缀名 发布:2025-07-23 07:44:57 浏览:560
市场配置失灵如何弥补 发布:2025-07-23 07:42:54 浏览:923
mysql允许内网访问 发布:2025-07-23 07:42:51 浏览:688
电脑脚本信息错误 发布:2025-07-23 07:39:58 浏览:663
win还是linux 发布:2025-07-23 07:39:58 浏览:879
用气球做解压玩具小猪 发布:2025-07-23 07:39:10 浏览:895
微博自动访问 发布:2025-07-23 07:32:36 浏览:645
电脑上出现脚本怎么关闭 发布:2025-07-23 07:32:26 浏览:451
垃圾桶怎么配置 发布:2025-07-23 07:31:36 浏览:15