在ffmpeg监护人项目中使用叠加视频过滤器(android)

时间:2013-11-01 06:33:31

标签: android video ffmpeg video-processing

首先,我是FFMPEG的初学者,所以请耐心等待。

我正在使用this库并成功合并音频和视频:D

然而,当我试图在视频上插入图像/水印时,我一直都失败了。

这是我使用的代码:

public MediaDesc combineVideoAndImage (MediaDesc videoIn, MediaDesc image, MediaDesc out, ShellCallback sc) throws Exception
    {
        ArrayList<String> cmd = new ArrayList<String>();

        cmd.add(ffmpegBin);
        cmd.add("-i");
        cmd.add(new File(videoIn.path).getCanonicalPath());

        cmd.add("-vf");
        cmd.add("movie=" + new File(image.path).getAbsolutePath() + " [logo];[in][logo] overlay=10:10 [out]");

        cmd.add("-strict");
        cmd.add("-2");

        File fileOut = new File(out.path);
        cmd.add(fileOut.getCanonicalPath());

        execFFMPEG(cmd, sc);

        return out;
    }

这些代码将生成此cmd:

ffmpeg -i VIDEONAME.mp4 -vf "movie=LOGONAME.png [logo];[in][logo] overlay=10:10 [out]"
-strict -2 OUTPUTNAME.MP4

我已经在ubuntu 13.10 64bit上测试了这个CMD,安装了最新的FFMPEG并且成功了。

但它不在我的android项目中。它不会捕获/抛出任何错误/异常,程序正常运行并且文件已创建但其中没有任何内容(0字节)

感谢任何帮助。谢谢你的帮助:D

1 个答案:

答案 0 :(得分:0)

尝试使用以下命令

ffmpeg -i input.mp4 -i watermark.png -filter_complex "overlay=10:10" -codec:a copy output.mp4

我已经在Android上测试了它并且它工作正常。