伺服器上如何對一段視頻截屏
① 求教,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
新建目錄文件夾,將截圖文件放入指定文件夾中