guoyu/FFmpegStatusController.java

65 lines
2.1 KiB
Java
Raw Normal View History

2025-12-06 20:11:36 +08:00
package com.ddnai.web.controller.system;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ddnai.common.core.controller.BaseController;
import com.ddnai.common.core.domain.AjaxResult;
import com.ddnai.common.utils.file.VideoDurationUtils;
import java.util.HashMap;
import java.util.Map;
/**
* FFmpeg状态检查控制器
* 用于诊断视频时长提取功能
*
* @author ddnai
*/
@RestController
@RequestMapping("/system/ffmpeg")
public class FFmpegStatusController extends BaseController
{
/**
* 检查FFmpeg是否可用
*/
@GetMapping("/status")
public AjaxResult checkFFmpegStatus()
{
Map<String, Object> result = new HashMap<>();
try
{
// 检查FFmpeg是否可用
boolean isAvailable = VideoDurationUtils.isFFmpegAvailable();
result.put("available", isAvailable);
if (isAvailable)
{
result.put("message", "✓ FFmpeg已安装且可用");
result.put("status", "success");
}
else
{
result.put("message", "✗ FFmpeg不可用或未安装");
result.put("status", "error");
result.put("solution", new String[]{
"1. 下载FFmpeg: https://ffmpeg.org/download.html",
"2. 解压到系统目录(如 C:\\ffmpeg",
"3. 添加到系统PATH环境变量",
"4. 重启应用服务器",
"或者:在后台管理系统中手动设置视频时长"
});
}
return AjaxResult.success(result);
}
catch (Exception e)
{
result.put("available", false);
result.put("message", "检查FFmpeg状态时发生错误: " + e.getMessage());
result.put("status", "error");
return AjaxResult.error("检查FFmpeg状态失败", result);
}
}
}