使用FFMPEG通过命令行Android从所选图像创建视频

时间:2016-08-09 06:14:51

标签: android video ffmpeg android-ffmpeg

我正在尝试使用android中的ffmpeg从命令行中选择的图像制作视频

使用this项目作为我的来源,我正在尝试制作视频

这是我试图创建视频的命令

   String[] ffmpegCommand = {ffmpegBin,
            "-y",
            "-qscale",
            "1",
            "-r", "" + frameRate,
            "-i", image1.getAbsolutePath(),
            "-t", "" + (((4) * 30) + 4), //"-s",heightwidth,
            "-i", image2.getAbsolutePath(),
            "-t", "" + (((4) * 30) + 4), //"-s",heightwidth,
            "-i", image3.getAbsolutePath(),
            "-t", "" + (((4) * 30) + 4), //"-s",heightwidth,
            "-i", image4.getAbsolutePath(),
            "-t", "" + (((4) * 30) + 4), //"-s",heightwidth,
            "-vcodec",
            "libx264",
            "-s",
            "640x480",
            outputFile.getAbsolutePath()};

但创建的视频仅显示第一张图片,而视频的创建时间不到一秒

这句话中的问题是什么?为什么视频中只显示1张图片?

抱歉我的英文不好

2 个答案:

答案 0 :(得分:2)

这是你应该适应你的字符串数组的ffmpeg命令:

ffmpeg -framerate 25 -t 124 -loop 1 -i image1
       -framerate 25 -t 124 -loop 1 -i image2
       -framerate 25 -t 124 -loop 1 -i image3
       -framerate 25 -t 124 -loop 1 -i image4
       -filter_complex "[0][1][2][3]concat=n=4"
       -c:v libx264 -s 640x480 outputfile

规则是输入选项(framerate,t..etc)在输入条目之前

concat过滤器将图像流连接在一起。如果它们的大小不同,则应调整大小以使它们相同。

答案 1 :(得分:2)

在这里,我创建了12秒的视频,每张3张图像,每张3秒,淡出效果淡入淡出。

运行以下命令并确保所有图像具有相同的高度宽度。

Microsoft.AspNetCore.Mvc.Formatters.Xml