大疆无人机机场二次开发过程,需要实现一种直播方式在web平台上,播放无人机推流视频,并将视频上传oss,以便回放。流程方案:无人机rtmp推流到srs服务器(rtmp转webrtc),然后web平台播放。srs服务器录制直播视频文件,通过python脚本上传阿里云oss。
本来采用ngx-rtmp,由于需求要求用webrtc播放,所有换成开源流媒体服务器框架srs,方法:由于window系统,下载一个windows版本的srs地址:https://foruda.gitee.com/attach_file/1718448141191699886/srs-windows-x86_64-5.0-r3-setup.exe?token=a15cf871c272827caf91c1607c18568d&ts=1769051229&attname=SRS-Windows-x86_64-5.0-r3-setup.exe。 在本地部署一套直播中转服务器,配置修改rtmp2rtc.conf添加 录制功能```dvr {
enabled on
dvr_path ./dvr/[app]/[stream]/%Y-%m-%d/%H-%M-%S.flv
dvr_plan segment
dvr_duration 1800
dvr_wait_keyframe on
dvr_time_jitter full
dvr_apply all
dvr_repeat off
}
启动方式:
```
cd /d D:\srs
.\objs\srs -c conf\rtmp2rtc.conf
```由于用rtmp 转webRTC用于web页面播放直播。还有一种ZLMediaKit 功能也很强大,由于主要采用部署简单,功能强大的原则,所以就没有使用。
需要本地存视频需要在在SRS的配置文件中添加DVR(数字视频录制)功能,将直播流录制为flv或mp4文件存到本地,然后上传到阿里云oss上,采用python语言写了一个脚本,定时扫描本地指定目录,发现有新的视频文件开启上传模式,上传到阿里云oss上,把链接存到数据库。首先初始化OSS客户端和数据库连接。