您的位置:首页 > 其它

移植rtmp到rtsp摄像机的过程记录(sdk2rtmp软件)

2016-08-21 09:20 411 查看
srs是Simple Flash media Server的简写。我们用srs+nginx来搭建流服。实现点播、存储和回放功能。安装布署在云服务器上面。

rtmppush是运行在嵌入式ipc(hisi-hi3518E + ov9712)上面的。但也放在docker image中了,方便编译。

docker是linux上面的虚拟机,编译及安装环境都在docker image中。

加载docker image:

rtmpipc_centos7.tar是开发版本,包括srs和nginx及第三方lib的源代码。docker load <rtmpipc_centos7.tar就得到docker image.

建立container的方法(研发,compile)

docker run --name rtmpipc -p 10080:10080 -p 11935:11935 -p 8080:8080 -p 1935:1935 -v /home:/mnt -ti 8ebe5aff0b4b /bin/bash

编译srs:

cd /home/LiveSvr/trunk

./ build.x86.nginx

编译nginx:

cd /home/VodSvr/hlssvr

./build.sh

make

编译ffmpeg:

cd /home/VodSvr/third/ffmpeg-2.6.3

./build.x86.x264 

编译srs-librtmp和rtmppush:

cd cd /home/rtmpipc/

source set_hisi

cd /home/rtmpipc/rtmppush

make

布署的时候,建议换一个docer image,因为开发用的docker image比较大。

[root@2e50c4e4788f home]# cat livevod_run.sh 

#playback server

/home/VodSvr/bin/bin/hlssvr -p /home/VodSvr/bin/www/
//这个是回放的进程!

#liveview & recording server

cd /home/LiveSvr/bin
./srs -c srs.conf.vod //这个是启动直播和录像进程!

问题1:看不到流!!

解决办法:

首先,启动/home/livevod_run.sh  //这个脚本会启动两个进程:srs和hlssvr。

然后,模拟向server推流。

/home/LiveSvr/bin/push.sh /home/VodSvr/bin/media/44d1.mp4
//这是用文件流化来模拟推流到server(FMS),以诊断问题。

现在开始试看流:

web进入http://110.185.210.89:10080 //选中jwplayer播放器

播放hls: http://110.185.210.89:10080/live/main.m3u8
播放rtmp: rtmp://110.185.210.89:1935/live/main

NOTE:1. 观看时,推流不能中断。2.vi /home/LiveSvr/bin/push.sh看一下,修改其中的ip你的服务器ip。

问题2:FMS可以用了,但从IPC推流仍然有问题,如何办?

进入:/home/rtmpipc/rtmppush/srs-librtmp/这个下面,可以生成srs-push,这是一个将录好的demo file push到FMS的程序。

用法:./srs-push 720p.h264.raw rtmp://127.0.0.1:1935/live/main

观看方法同问题2。

如果这样可以看,就说明问题出在推流环节(采集+push)。server(FMS)没有问题。

问题3:FMS可以到采集并push过来的流了,但播放不正确!

仔细检查,发现一个问题:

dts=pts=stStream.pstPack[0].u64PTS/1000; //unit is ms, comments by freeman

因为海思平台u64PTS的单位是us。而我们的PTS单位是ms。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息