没有合适的资源?快使用搜索试试~ 我知道了~
Java解码H264格式视频流中的图片
26 下载量 124 浏览量
2020-08-25
01:47:51
上传
评论
收藏 36KB PDF 举报
温馨提示
试读
2页
主要为大家详细介绍了Java解码H264格式视频流中的图片,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
资源推荐
资源详情
资源评论
Java解码解码H264格式视频流中的图片格式视频流中的图片
主要为大家详细介绍了Java解码H264格式视频流中的图片,文中示例代码介绍的非常详细,具有一定的参考价
值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了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("h264");
frameGrabber.setVideoBitrate(15);
frameGrabber.setVideoOption("preset", "ultrafast");
frameGrabber.setNumBuffers(25000000);
frameGrabber.start();
Frame frame = frameGrabber.grab();
资源评论
weixin_38657353
- 粉丝: 5
- 资源: 929
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功