91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java如何解碼H264格式視頻流中的圖片

發布時間:2021-10-18 10:18:45 來源:億速云 閱讀:294 作者:柒染 欄目:編程語言

Java如何解碼H264格式視頻流中的圖片,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

引入依賴

<dependency>  <groupId>org.bytedeco</groupId>  <artifactId>javacv</artifactId>  <version>1.4.3</version> </dependency> <dependency>  <groupId>org.bytedeco.javacpp-presets</groupId>  <artifactId>ffmpeg-platform</artifactId>  <version>4.0.2-1.4.3</version></dependency>

需要注意這兩個包之間的版本有一個對應關系,如果版本不對應可能會出問題

解碼過程

實現的一個簡單功能是:

從Socket獲取視頻輸入流(H264格式)獲取視頻流中的幀把每一幀轉換成 BufferedImage

package com.amwalle.walle.raspi.camera;import org.bytedeco.javacv.FFmpegFrameGrabber;import org.bytedeco.javacv.Frame;import org.bytedeco.javacv.Java2DFrameConverter;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.awt.image.BufferedImage;import java.io.IOException;import java.io.InputStream;import java.net.Socket;public class CameraHandler implements Runnable { private static final Logger logger = LoggerFactory.getLogger(CameraHandler.class); private final String LOCK = "LOCK"; private Socket cameraSocket; private static BufferedImage bufferedImage; CameraHandler(Socket socket) throws IOException { this.cameraSocket = socket; } String getLock() { return LOCK; } @Override public void run() { try {  InputStream cameraStream = cameraSocket.getInputStream();  FFmpegFrameGrabber frameGrabber = new FFmpegFrameGrabber(cameraStream);  frameGrabber.setFrameRate(30);  frameGrabber.setFormat("h364");  frameGrabber.setVideoBitrate(15);  frameGrabber.setVideoOption("preset", "ultrafast");  frameGrabber.setNumBuffers(25000000);  frameGrabber.start();  Frame frame = frameGrabber.grab();  Java2DFrameConverter converter = new Java2DFrameConverter();  while (frame != null) {  BufferedImage bufferedImage = converter.convert(frame);  setBufferedImage(bufferedImage);  synchronized (LOCK) {   LOCK.notifyAll();  }  frame = frameGrabber.grab();  } } catch (IOException e) {  logger.info("Video handle error, exit ...");  logger.info(e.getMessage()); } } private void setBufferedImage(BufferedImage image) { bufferedImage = image; } BufferedImage getBufferedImage() { return bufferedImage; }}

看完上述內容,你們掌握Java如何解碼H264格式視頻流中的圖片的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

通河县| 灵璧县| 华宁县| 清水河县| 得荣县| 嘉禾县| 无为县| 保德县| 孟村| 宝丰县| 安西县| 陆河县| 祁门县| 岑巩县| 香河县| 江都市| 封开县| 蒙自县| 马关县| 墨脱县| 皮山县| 文水县| 历史| 介休市| 房山区| 称多县| 抚宁县| 淳化县| 张家界市| 仙游县| 开鲁县| 洛隆县| 临武县| 平山县| 平邑县| 乌拉特中旗| 应用必备| 聂拉木县| 逊克县| 庄浪县| 新竹市|