微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

来自图像的 Android 视频幻灯片不使用超过 3 个图像

如何解决来自图像的 Android 视频幻灯片不使用超过 3 个图像

在 Android 上从图像创建视频幻灯片时出现问题。它最多适用于 3 张图像,但如果我选择更多,它只会为前 3 张创建。我将幻灯片持续时间设置为 5 秒,因此如果我选择 2 张图像,则有 2 张幻灯片和 10 秒的视频,如果我选择 3 张图片,有 3 张幻灯片和 15 秒的视频,但如果我选择 4 张或更多张图片,则会再次有 3 张幻灯片和 15 秒的视频和前 3 张图片。这是我的代码

private fun generateFFmpegCommandForSlideshow(outputFile: File):String
{
    val cmd = "-y ${getInputimagesCommand()}-filter_complex ${scaleImagesCommand()}${concatCommand()} -map [outp] -c:v libx264 ${outputFile.absolutePath}"
    return cmd
}

private fun getInputimagesCommand():String
{
    var cmd = ""

    for(image in slideImagesUriList)
    {
        val imagePath = FFmpegKitConfig.getSafParameterForRead(this,image)
        cmd += "-r 1/5 -i $imagePath "
    }
    
    return cmd
}

private fun scaleImagesCommand():String
{
    var cmd = ""
    var charCounter = 'a'

    for(i in 0 until slideImagesUriList.size)
    {
        cmd += "[$i]scale=600x400,setsar=1:1[${charCounter++}];"
    }

    return cmd
}

private fun concatCommand():String
{
    var cmd = ""
    var charCounter = 'a'

    for(image in slideImagesUriList)
    {
        cmd += "[${charCounter++}]"
    }

    cmd +="concat=n=${slideImagesUriList.size}:v=1:a=0,format=yuv420p[outp];"

    return cmd
}

我将此库用于 FFMPEG:https://github.com/tanersener/ffmpeg-kit

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。