From ca021cdcce2902b559899183c24c4bdb2858a7bc Mon Sep 17 00:00:00 2001 From: 86156 <823267011@qq.com> Date: Wed, 1 Oct 2025 23:06:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B7=A5=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../video/thread/MediaTransferFlvByFFmpeg.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/ruoyi-video/src/main/java/com/ruoyi/video/thread/MediaTransferFlvByFFmpeg.java b/ruoyi-video/src/main/java/com/ruoyi/video/thread/MediaTransferFlvByFFmpeg.java index eee1d91..a6bf1a0 100644 --- a/ruoyi-video/src/main/java/com/ruoyi/video/thread/MediaTransferFlvByFFmpeg.java +++ b/ruoyi-video/src/main/java/com/ruoyi/video/thread/MediaTransferFlvByFFmpeg.java @@ -125,7 +125,8 @@ public class MediaTransferFlvByFFmpeg extends MediaTransfer { /** * 构建ffmpeg命令 - * 注意:FLV 格式不支持 HEVC,需要转换为 H.264 + * 注意:FLV 格式不支持 HEVC,需要转换 + * 使用 mpeg4 编码器(JavaCV FFmpeg 通常内置) */ private void buildCommand() { // 添加日志级别参数(临时调试用) @@ -133,16 +134,17 @@ public class MediaTransferFlvByFFmpeg extends MediaTransfer { .addArgument("-rtsp_transport").addArgument("tcp") .addArgument("-i").addArgument(cameraDto.getUrl()) .addArgument("-max_delay").addArgument("1") - .addArgument("-g").addArgument("25").addArgument("-r").addArgument("25") - // 使用 h264 编码器(JavaCV FFmpeg 内置)而不是 libx264 - .addArgument("-c:v").addArgument("h264") - .addArgument("-preset:v").addArgument("ultrafast") - .addArgument("-tune:v").addArgument("zerolatency") - .addArgument("-b:v").addArgument("1000k") // 视频比特率 - // 音频重新编码为 AAC(FLV 需要) + .addArgument("-g").addArgument("25") + .addArgument("-r").addArgument("25") + // 使用 mpeg4 编码器(JavaCV FFmpeg 内置,兼容 FLV) + .addArgument("-c:v").addArgument("mpeg4") + .addArgument("-q:v").addArgument("5") // 质量参数(1-31,数字越小质量越好) + .addArgument("-b:v").addArgument("800k") // 视频比特率 + // 音频编码 .addArgument("-c:a").addArgument("aac") .addArgument("-strict").addArgument("experimental") .addArgument("-b:a").addArgument("64k") + .addArgument("-ar").addArgument("44100") // 音频采样率 .addArgument("-f").addArgument("flv"); }