最近接了一个项目,其中一个需要是需要远程设备的视频要实时回传到客户端,只能通过TCP传输,经过一番讨论后,决定采取FFmpeg + Nginx +Nginx-HTTP-FLV +FLV.JS实现视频实时回传。
接口开发语言选择
在测试了远程设备的实际系统环境后,决定采用Python开发接口控制设备,通过Nginx反向代理后对外提供服务。
实际上我个人更加倾向与使用GO作为开发语言,但是甲方爸爸要求开放源代码,所以决定干脆就采用Python吧,这样他们后续在维护几二次开发上会更加方便。
视频回传方式
由于视频回传被限制在TCP范围内,同时需要支持网页播放,经过一番考量之后,选择HTTP-FLV方式做视频回传,及满足了实时性,又满足了网页播放(实测目前只能在谷歌浏览器上使用)
流媒体服务器配置
甲方希望流媒体服务器能部署在远程设备上,这样这个设备可以不依赖服务器就可以独立工作,选来选去,最终决定采用NGINX + NGINX-HTTP-FLV模块来实现。
最终实现
最终实现通过一个WEB页面查看实时视频,并控制远程设备执行一些操作;