Linux(Ubuntu)环境运行EasyDarwin

时间:2022-06-20 05:54:59

Linux 编译安装EasyDarwin

一、安装环境监测

查看 Ubuntu 的版本号:sudo lsb_release -a

gcc 版本查看:gcc -v

ubuntu14.04 自带的是4.8版本,而最新的4.9.2对c++11的支持更好一些。可惜直接sudo apt-get install gcc-4.9不好用,所以可以这样安装更新: sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt-get install gcc-4.9 sudo apt-get install g++-4.9

装了ppa,各种版本就可以共存了。不过有一个问题,每次要用的时候,必须使用g++-4.9,,如果直接用g++会运行4.8版本的,非常麻烦。所以需要改一下/usr/bin/下的链接:

sudo su cd ../../usr/bin ln -s /usr/bin/g++-4.9 /usr/bin/g++ -f ln -s /usr/bin/gcc-4.9 /usr/bin/gcc -f

二、编译、安装

?  下载

https://github.com/EasyDarwin/EasyDarwin/archive/v7.0.5.zip

?  解压

unzip v7.0.5.zip

?  编译

cd EasyDarwin-7.0.5/EasyDarwin/ ls chmod +x ./Buildit ./Buildit (这里会出现86、64、debug三个版本) ./Buildit x64 (选择64位进行编译)

?  编译错误处理

/usr/lib/libstdc++.so.6: version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference

原因:由于gcc 版本太低,建议升级为4.9以上,经过测试5.3版本的库是最新的,但是兼容不了,所以推荐版本在大于4.9小于5.3版本。

./easydarwin: relocation error: ./easydarwin: symbol _ZTVNSt7__cxx1119basic_istringstreamIcSt11char_traitsIcESaIcEEE, version GLIBCXX_3.4.21 not defined in file libstdc++.so.6 with link time reference

?  查看C++已经安装的库文件

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

三、开启服务:

?  .修改配置文件

local_ip_address : 该地址为服务器公网IP地址

?  Linux调试运行

!!!注意:必须以Root用户启动:

否则提示错误:WARNING: You must be root to use the following RTSP port: 554 ./easydarwin -c ../WinNTSupport/easydarwin.xml -d

进程查看:

ps -aux | grep easydarwin (这里要小写的)

可以看到会有连个进程启动,没有报错。

?  Linux后台服务方式运行

./easydarwin -c /etc/streaming/easydarwin.xml &

四、FFMpeg推送摄像机视频到EasyDarwin

说明:FFmpeg推送,EasyDarwin转发,vlc播放,实现整个RTSP直播

测试RSTP推流地址:

ffmpeg -rtsp_transport tcp -i "rtsp://192.168.18.240:554/onvif/live/1" -vcodec copy -acodec copy -f rtsp "rtsp://服务器IP地址/test.sdp"

参数说明:

-rtsp_transport tcp 以TCP方式推流 rtsp://192.168.18.240:554/onvif/live/1 本地摄像头地址 rtsp://服务器IP地址/test.sdp EasyDarwin服务器地址。

推流结果:

  

VLC播放地址:

rtsp://服务器IP地址/test.sdp,

测试结果:

  

Debug命令行输出信息

   

流媒体服务器之————Linux(Ubuntu)环境运行EasyDarwin