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

Java如何解碼H264格式視頻流中的圖片,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

十載的望奎網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整望奎建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“望奎網(wǎng)站設(shè)計(jì)”,“望奎網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

引入依賴

<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>

需要注意這兩個(gè)包之間的版本有一個(gè)對(duì)應(yīng)關(guān)系,如果版本不對(duì)應(yīng)可能會(huì)出問(wèn)題

解碼過(guò)程

實(shí)現(xiàn)的一個(gè)簡(jiǎn)單功能是:

從Socket獲取視頻輸入流(H264格式)獲取視頻流中的幀把每一幀轉(zhuǎn)換成 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; }}

看完上述內(nèi)容,你們掌握J(rèn)ava如何解碼H264格式視頻流中的圖片的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

新聞名稱:Java如何解碼H264格式視頻流中的圖片
文章起源:http://www.muchs.cn/article8/ijcjop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、品牌網(wǎng)站建設(shè)自適應(yīng)網(wǎng)站、建站公司、網(wǎng)站維護(hù)、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名