You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android平台FFmpeg合并音视频报错:无法找到合适输出格式

问题解决:FFmpeg-Kit 音频合并至视频报错

根因分析

你传入的命令开头包含了 ffmpeg 关键字,但使用 FFmpeg-Kit 库时不需要这个前缀——库内部已经会调用 FFmpeg 执行器,因此这个多余的关键字被当作输出目标处理,导致格式识别失败。

修正后的 FFmpeg 命令

移除开头的 ffmpeg,保留后续参数即可:

-i /data/user/0/com.rohaitas.example/cache/temp_video.mp4 \
-i /data/user/0/com.rohaitas.example/cache/temp_audio.mp3 \
-c:v copy \
-c:a copy \
-shortest \
-f mp4 \
/data/user/0/com.rohaitas.example/cache/output.mp4

Kotlin 代码示例

在 FFmpeg-Kit 中正确执行命令的代码如下:

import com.arthenica.ffmpegkit.FFmpegKit
import com.arthenica.ffmpegkit.FFmpegSession

fun mergeAudioAndVideo() {
    val command = arrayOf(
        "-i", "/data/user/0/com.rohaitas.example/cache/temp_video.mp4",
        "-i", "/data/user/0/com.rohaitas.example/cache/temp_audio.mp3",
        "-c:v", "copy",
        "-c:a", "copy",
        "-shortest",
        "-f", "mp4",
        "/data/user/0/com.rohaitas.example/cache/output.mp4"
    )

    val session: FFmpegSession = FFmpegKit.execute(command)

    // 处理执行结果
    when (session.returnCode.value) {
        0 -> {
            // 执行成功,处理逻辑
        }
        else -> {
            // 执行失败,可通过 session.allLogs 获取详细日志排查
        }
    }
}

额外提示

  • 使用数组传递参数可以避免字符串拼接时的空格或转义问题
  • 若仍有异常,可打印 session.allLogs 查看完整执行日志定位问题

内容的提问来源于stack exchange,提问作者Rohaitas Tanoli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 23:12:04