因客户需求,需要开机就能在浏览器中看到实时视频,而自己设计观看实时视频的方案是:使用ffmpeg直接解码rtsp流,将解码结果通过http发送到nodejs服务器,nodejs服务器使用Websocket发送给客户端,客户端使用canvas实时绘制图像。
因此,在能观看实时视频之前需要添加ffmpeg视频解码和nodejs服务器的开机启动。最简单的做法应该是将命令直接放到/etc/rc.local文件 exit 0命令之前,或者将命令放到/etc/profile文件里面,当然,我也确实这样做过,结果发现放在/etc/profile里面时,如果有这个命令一直在运行的话,每次打开一个终端都会弹出运行这条命令,并且该命令会一直阻塞进程而导致后续命令不会得到执行,并且这条命令也有可能运行失败,放在/etc/rc.local中时,会发现nodejs可以运行,而ffmpeg不能运行,并且运行结果与预期的相差甚远。没办法,只能把开机启动项做成服务了,做成服务可以使结果在预料之中,差别不是很大。
做开机服务的基本步骤:
1)创建并编辑一个服务文件,内容如下: