MultipartFile 获取视频时长
时间: 2023-10-25 13:32:14 浏览: 206
获取视频播放时长
要获取视频的时长,您可以使用 FFmpeg 库来处理 MultipartFile。以下是一个示例代码,演示如何获取视频的时长:
```java
import org.springframework.web.multipart.MultipartFile;
import org.springframework.util.StringUtils;
import java.io.File;
public class VideoUtils {
public static long getVideoDuration(MultipartFile file) {
if (file.isEmpty() || StringUtils.isEmpty(file.getOriginalFilename())) {
return 0;
}
File tempFile = null;
try {
tempFile = File.createTempFile("temp", null);
file.transferTo(tempFile);
ProcessBuilder processBuilder = new ProcessBuilder("ffprobe", "-v", "error", "-show_entries",
"format=duration", "-of", "default=noprint_wrappers=1:nokey=1", tempFile.getAbsolutePath());
Process process = processBuilder.start();
String output = IOUtils.toString(process.getInputStream(), StandardCharsets.UTF_8);
return (long) Float.parseFloat(output);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (tempFile != null) {
tempFile.delete();
}
}
return 0;
}
}
```
请确保您的项目中已添加 FFmpeg 库的依赖。这个示例使用了 Spring 的 MultipartFile 类来处理上传的文件,并通过调用 FFmpeg 的命令行工具 ffprobe 来获取视频的时长。
阅读全文