服务器上如何对一段视频截屏
① 求教,Linux下如何对视频进行截图
Linux下命令行中可以用Scrot截屏,方法如下(以Ubuntu为例):1.在Ubuntu系统上安装自带截图工具Scrot[root@localhost tools]#sudo apt-get install scrot2.截取整个桌面直接运行该命令[root@localhost tools]#scrot3.指定保存目标文件夹和截图文件名[root@localhost tools]#scrot ~/Pictures/my_desktop.png4.选择一个特定的窗口或定义一个矩形区域来截图[root@localhost tools]#scrot -s#运行这个命令后,继续鼠标单击任意窗口或画出一个矩形,它能够触发对选定窗口/区域的屏幕截取。
② 通过ffmpeg实现视频流截图
最近忙于新产品技术点突破,针对架构摸索暂时停住。目前需要解决的问题是如何从视频流中截取一张图。
在安防领域有各种视频监控产品,它们遵循的通讯协议也不尽相同,归纳起来主要遵循GB/T 28181、ONVIF、PSIA等协议。
其通信协议如下所示
在CentOS7上安装ffmpeg
脚本正确调用,接下来就通过Java调用远程服务器上脚本实现视频流截图,在此借助 Ganymed SSH-2 for Java ,实现SSH远程执行脚本。
通过SSH远程执行脚本有点简单粗暴,何不将这截图功能做成服务,向外发布,更加灵活方便。故后期工作如下:
准备一台图片服务器,其主要职责有
1.图片文件存储
2.响应终端的抓图请求,并将图片保存到指定文件夹目录下
3.响应终端的合图请求,以上两者做成服务的形式,终端通过分布式调用服务,完成操作并返回结果状态
4.接收终端上传的图片
硬件需求:
1.因图片服务器上安装ffmpeg工具,其需要对视频流进行解码,并按照png格式组织编码,对计算性能要求高,所以CPU性能要好
2.作为图片文件存储服务器,存储容量要大
3.接受多终端设备连接,网口带宽要大
因为要接收反馈结果,cmd命令可以这样写
当ffmpeg执行正确时,会输出succeeded,当ffmpeg不能正确执行时,会输出failed
新建目录文件夹,将截图文件放入指定文件夹中