更新版本
This commit is contained in:
parent
1e13507381
commit
37443ef64b
@ -16,7 +16,7 @@ rtsp、rtmp流地址转换成flv浏览器播放
|
||||
<dependency>
|
||||
<groupId>io.github.javpower</groupId>
|
||||
<artifactId>rtsp-converter-flv-spring-boot-starter</artifactId>
|
||||
<version>1.5.9</version>
|
||||
<version>1.5.9.1</version>
|
||||
</dependency>
|
||||
```
|
||||
### 第二步:实现interface
|
||||
|
2
pom.xml
2
pom.xml
@ -4,7 +4,7 @@
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>io.github.javpower</groupId>
|
||||
<artifactId>rtsp-converter-flv-spring-boot-starter</artifactId>
|
||||
<version>1.5.9</version>
|
||||
<version>1.5.9.1</version>
|
||||
<name>rtsp-converter-flv-spring-boot-starter</name>
|
||||
<description>a tool about easy rtsp-converter-flv</description>
|
||||
<url>https://github.com/javpower/easy-flv</url>
|
||||
|
73
src/main/java/com/gc/easy/flv/util/FlvUtil.java
Normal file
73
src/main/java/com/gc/easy/flv/util/FlvUtil.java
Normal file
@ -0,0 +1,73 @@
|
||||
package com.gc.easy.flv.util;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.bytedeco.javacv.FFmpegFrameGrabber;
|
||||
import org.bytedeco.javacv.Frame;
|
||||
import org.bytedeco.javacv.FrameGrabber;
|
||||
import org.bytedeco.javacv.Java2DFrameConverter;
|
||||
import org.springframework.core.io.ByteArrayResource;
|
||||
import org.springframework.util.LinkedMultiValueMap;
|
||||
import org.springframework.util.MultiValueMap;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import javax.imageio.ImageIO;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
public class FlvUtil {
|
||||
|
||||
private static BufferedImage getBufferedImageByFrame(String filePath) throws IOException {
|
||||
FFmpegFrameGrabber grabber = FFmpegFrameGrabber.createDefault(filePath);
|
||||
return getBufferedImageByFrame(grabber);
|
||||
}
|
||||
|
||||
private static BufferedImage getBufferedImageByFrame(FFmpegFrameGrabber grabber)
|
||||
throws FrameGrabber.Exception {
|
||||
grabber.start();
|
||||
Frame frame;
|
||||
frame = grabber.grabImage();
|
||||
Java2DFrameConverter converter = new Java2DFrameConverter();
|
||||
BufferedImage buffer = converter.getBufferedImage(frame);
|
||||
grabber.stop();
|
||||
return buffer;
|
||||
}
|
||||
|
||||
public static byte[] getFlvImg(String path) throws Exception {
|
||||
return bufferedImageToByteArray(getBufferedImageByFrame(path));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 将BufferedImage转换为byte[]
|
||||
*
|
||||
* @param image
|
||||
* @return
|
||||
*/
|
||||
public static byte[] bufferedImageToByteArray(BufferedImage image) throws IOException {
|
||||
ByteArrayOutputStream os = new ByteArrayOutputStream();
|
||||
ImageIO.write(image, "jpg", os);
|
||||
return os.toByteArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
*
|
||||
* @param data 文件数据
|
||||
* @param url 上传地址
|
||||
* @param fileName 文件名称
|
||||
* @return
|
||||
*/
|
||||
public static JSONObject postFile(byte[] data, String url, String fileName) {
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>();
|
||||
ByteArrayResource contentsAsResource = new ByteArrayResource(data) {
|
||||
@Override
|
||||
public String getFilename() {
|
||||
return fileName;
|
||||
}
|
||||
};
|
||||
paramMap.add("file", contentsAsResource);
|
||||
return restTemplate.postForObject(url, paramMap, JSONObject.class);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user