日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ffmpeg 截图太模糊了_通过ffmpeg实现视频流截图

發(fā)布時間:2024/8/1 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ffmpeg 截图太模糊了_通过ffmpeg实现视频流截图 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近忙于新產(chǎn)品技術(shù)點突破,針對架構(gòu)摸索暫時停住。目前需要解決的問題是如何從視頻流中截取一張圖。

概況

在安防領(lǐng)域有各種視頻監(jiān)控產(chǎn)品,它們遵循的通訊協(xié)議也不盡相同,歸納起來主要遵循GB/T 28181、ONVIF、PSIA等協(xié)議。

GB/T 28181協(xié)議

其通信協(xié)議如下所示

通信協(xié)議結(jié)構(gòu)圖.png

其視頻編碼格式主要有:MPEG-4、H.264、SVAC等,目前主流的視頻編碼格式是H.264。

其實時傳輸協(xié)議為RTP,在此傳輸協(xié)議基礎(chǔ)上對視音頻數(shù)據(jù)進行封裝,其又分為PS封裝和非PS封裝:

基于RTP的PS封裝,是將視音頻流封裝成PS包,再將PS包以負載的方式封裝成RTP包。

基于RTP的非PS封裝,是直接將視音頻流以負載的方式封裝成RTP包。

如果對RTP協(xié)議感興趣可以參考:

RTP協(xié)議分析

RTSP/RTP/RTCP詳解整理

RTP協(xié)議全解析(H264碼流和PS流)

RTP/RTSP/RTCP有什么區(qū)別?

Wireshark 抓包分析 RTSP/RTP/RTCP 基本工作過程

公司裝有一臺宇視的電警卡口抓拍機HC161智能交通600萬攝像單元,可以看出該電警搭載的網(wǎng)絡(luò)攝像頭支持ONVIF、GB/T28181等協(xié)議,同時查看其視頻配置

視頻配置.png

可以嘗試通過VLC連接RTSP視頻流

vlc.png

安裝ffmpeg

在CentOS7上安裝ffmpeg

yum -y install epel-release

rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm

yum search ffmpeg

yum -y install ffmpeg ffmpeg-devel

ffmpeg -version

version.png

ffmpeg -y -i rtsp://user:password@ip:port-ss 00:00:01 -vframes 1 -f image2 -vcodec png image.png

image.png

Java調(diào)用腳本

腳本正確調(diào)用,接下來就通過Java調(diào)用遠程服務(wù)器上腳本實現(xiàn)視頻流截圖,在此借助Ganymed SSH-2 for Java,實現(xiàn)SSH遠程執(zhí)行腳本。

package com.dhl.runshell;

import ch.ethz.ssh2.Connection;

import ch.ethz.ssh2.Session;

import ch.ethz.ssh2.StreamGobbler;

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

/**

* Created by daihl on 2017/10/10.

*/

public class CommandRunner {

public static Connection getOpenedConnection(String host, String username, String password) throws IOException {

Connection conn = new Connection(host);

conn.connect(); // make sure the connection is opened

boolean isAuthenticated = conn.authenticateWithPassword(username, password);

if (isAuthenticated == false)

throw new IOException("Authentication failed.");

return conn;

}

public static String execShellScript(String host, String username,

String password,

String cmd, int port) throws IOException {

Connection conn = null;

Session sess = null;

InputStream stdout = null;

BufferedReader br = null;

StringBuffer buffer = new StringBuffer("exec result:");

buffer.append(System.getProperty("line.separator"));// 換行

try {

conn = getOpenedConnection(host, username, password);

sess = conn.openSession();

sess.execCommand(cmd);

stdout = new StreamGobbler(sess.getStdout());

br = new BufferedReader(new InputStreamReader(stdout));

while (true) {

// attention: do not comment this block, or you will hit

// NullPointerException

// when you are trying to read exit status

String line = br.readLine();

if (line == null)

break;

buffer.append(line);

buffer.append(System.getProperty("line.separator"));// 換行

}

} finally {

sess.close();

conn.close();

}

return buffer.toString();

}

public static void main(String[] args) {

String cmd = "ffmpeg -y -i rtsp://user:password@ip:port -ss 00:00:01 -vframes 1 -f image2 -vcodec png image.png;echo end";

try {

String info = CommandRunner.execShellScript("ip", "user",

"password",cmd,22);

System.out.println("info is:"+info);

} catch (IOException e) {

e.printStackTrace();

}

}

}

后繼工作

通過SSH遠程執(zhí)行腳本有點簡單粗暴,何不將這截圖功能做成服務(wù),向外發(fā)布,更加靈活方便。故后期工作如下:

準(zhǔn)備一臺圖片服務(wù)器,其主要職責(zé)有

1.圖片文件存儲

2.響應(yīng)終端的抓圖請求,并將圖片保存到指定文件夾目錄下

3.響應(yīng)終端的合圖請求,以上兩者做成服務(wù)的形式,終端通過分布式調(diào)用服務(wù),完成操作并返回結(jié)果狀態(tài)

4.接收終端上傳的圖片

硬件需求:

1.因圖片服務(wù)器上安裝ffmpeg工具,其需要對視頻流進行解碼,并按照png格式組織編碼,對計算性能要求高,所以CPU性能要好

2.作為圖片文件存儲服務(wù)器,存儲容量要大

3.接受多終端設(shè)備連接,網(wǎng)口帶寬要大

后記

因為要接收反饋結(jié)果,cmd命令可以這樣寫

rtsp://user:password@ip:port -ss 00:00:01 -vframes 1 -f image2 -vcodec png image.png && echo succeeded ||echo failed

當(dāng)ffmpeg執(zhí)行正確時,會輸出succeeded,當(dāng)ffmpeg不能正確執(zhí)行時,會輸出failed

新建目錄文件夾,將截圖文件放入指定文件夾中

if [ ! -d /home/daihl/$(date +%Y%m%d) ]; then mkdir -p /home/daihl/$(date +%Y%m%d)&&echo "mkdir"; fi

總結(jié)

以上是生活随笔為你收集整理的ffmpeg 截图太模糊了_通过ffmpeg实现视频流截图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产1区2区 | 日韩精品一区二区三区在线播放 | 午夜精品久久久久久久久 | 西西人体做爰大胆gogo直播 | 色综合天天网 | 黄色一级在线观看 | a天堂中文字幕 | 精品欧美黑人一区二区三区 | www日本高清 | 免费男女乱淫真视频免费播放 | 精品乱码一区二区三区四区 | 1024精品一区二区三区日韩 | 国产精品一区麻豆 | 91精品国产高清91久久久久久 | 黄色小说图片视频 | 日韩夜夜高潮夜夜爽无码 | 极品熟妇大蝴蝶20p 国产偷自拍视频 | 国产免费一区二区三区四区五区 | 一级片一区二区三区 | 成人福利视频导航 | 国产在线高潮 | 捆绑最紧bdsm视频 | 91在线中文字幕 | 久久精品视频日本 | 天天天色综合 | 一级片免费观看 | 污污视频网站 | 综合久久av| 亚洲一区二区三区激情 | 亚洲每日更新 | 天天艹日日干 | 北条麻妃二三区 | 精品一区二区三 | 爆操日本美女 | 欧美日韩国产精品 | 热久久久久久久 | 亚洲专区av | 日本理论视频 | 久久久久久久久综合 | xxxx黄色| 国产三级视频在线播放 | 黄色三级小说 | 国产a级精品 | 日韩二区在线观看 | 免费看一区二区三区 | 亚洲欧美一区二区视频 | 美女的奶胸大爽爽大片 | 久久久无码一区二区三区 | 亚州 | 久久五月婷 | 97视频一区二区 | 国产真实乱 | 日韩人妻精品一区二区三区视频 | 天天摸天天添 | 欧美人妻精品一区二区三区 | 欧美黄页网站 | 黄色一级片在线看 | 超级碰在线视频 | 亚洲成人av免费在线观看 | 亚洲精品www久久久久久 | 亚洲少妇xxx| 天天综合91| 看毛片看毛片 | 四虎在线免费 | 一边摸一边抽搐一进一出视频 | 一级片手机在线观看 | 久久的色偷偷 | 精品国产亚洲AV | 乱h伦h女h在线视频 99999视频 | 亚洲一区二区免费看 | 青青草原伊人网 | 99久精品视频 | 日本综合久久 | 99re热这里只有精品视频 | 黄网在线看 | 成人免费无码大片a毛片抽搐色欲 | 人人妻人人澡人人爽欧美一区双 | 日韩精品导航 | 日韩怡红院 | 亚洲三级精品 | 污视频网址在线观看 | 四虎免费在线观看 | 欧美一区二区黄片 | 日韩三级欧美 | 99久久婷婷国产综合精品电影 | 国产婷婷色综合av蜜臀av | 拍真实国产伦偷精品 | 亚洲一区二区精品视频 | 91亚色在线观看 | 久久免费视频99 | 欧美91看片特黄aaaa | 日本不卡视频一区二区三区 | 色哟哟在线视频 | 午夜精品久久久久久久四虎美女版 | 肉大榛一进一出免费视频 | 漂亮人妻被黑人久久精品 | jizz日本在线观看 | 亚洲激情欧美 | 国产精品资源网站 |