失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > MPlayer上支持RTSP流媒体(live555作为流媒体播放器)

MPlayer上支持RTSP流媒体(live555作为流媒体播放器)

时间:2022-08-27 14:28:31

相关推荐

MPlayer上支持RTSP流媒体(live555作为流媒体播放器)

条件: 在中天CK810的CPU上运行linux12.04操作系统以tft传输方式加载uImage;

考虑到针对性,一开始mplayer的编译选项并不是mplayer官网上下载下来的configure,很多条件都是disable的,链接文件和链接库也是有自己的指定位置 -Ixx -Lxx

(1)查找player播放RTSP流的命令 mplayer rtsp://192.168.1.2:/video.264 板子和电脑之间使用网线进行连接;

(2)在同一台电脑上使用live555播放,mplayer可以接收到;但是在板子上运行之后就会出现Server returned 404:Not found;用wireshark进行抓包的时候根本就没有相关RTP或者RTSP的数据包出现只有TCP和NFS的数据包,最后发现原因在于配置文件时--disable-networking;

(3)之后再次配置编译运行的时候终端出现了Server returned 405:Method Not Allowed;跟踪源码发现程序在执行过程中跳到了HTTP相关的函数中去,405代码时HTTP 标准的状态码,大概花了一天的时间和电脑上的配置文件进行比较发现了是因为 --disable-live了;

(4)在enable-live配置选项打开之后,编译就出现了错误:fatal error:liveMedia.hh:No Such file or directory;原来编译的时候还要将live555的头文件和库文件的位置写到配置脚本文件build-mp4g.sh中去。

(5)上述步骤完成之后,编译还是有问题,连operator new()这个标准C++方法都是undefined;最后在有经验的同事的帮助下找到了原因,Mplayer是用C语言编写的,在Makefile文件中无论.c文件还是.cpp文件最后都是通过CC也就是中天的交叉编译器csky-abiv2-linux-gcc来实现的,同样最后的链接也是它,所有就在Makefile中将gcc改为了g++。

(6)终于编译成功了,还以为一切都OK了,但是板子上出现了这样一个错误:Can't loading stdc++.so.6;将交叉编译好的标准的C++库cp到../rootfs/usr/lib下面后,终于可以运行MPlayer,但是在程序的最后出现了:MPlayer interrupted by signal 11 in module:decode_video;最后在有经验的同事在板子上使用gdbserver,在PC端使用gdb进行了调试,最后将错误定位live555源文件中的传参数的时候传了一个空指针,导致出现了段错误。

(7)经过这一系列的错误发现和改正之后,终于在板子上MPlayer可以播放RTSP流了,前前后后差不多花了一个礼拜的时间,这一个礼拜心里真的是很煎熬,这也算是我在士兰实习的第一个要自己去完成的任务,也想证明一下我自己吧,结果现实还是太残忍,真的有太多的不会,现在大四的我也发现了企业工作和大学学习有很多很多的不同,而经过这次的实践其实大学里学习成绩好并不能证明很多东西,对于技术这种工作还是自学能力要比较强的,对于开源软件的阅读也是程序猿的必修课,虽然这一个礼拜我的心里压力很大,但是我对自己还是很有信心的,士兰的氛围也是蛮不错的,我想我的选择也是没有错的,我也希望能够在这家公司呆上至少三年,慢慢成长。

如果觉得《MPlayer上支持RTSP流媒体(live555作为流媒体播放器)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。