我正在使用 Ffmpeg4Android 库对视频进行编码。我想通过选择来合并视频。我面临的问题是,如果选择纵向视频,则制作的视频会出现旋转视频。为解决此问题,我根据其旋转元数据旋转视频,然后执行合并命令。 10 秒的高清视频需要大约 3-5 分钟的时间。请建议我更快的方法..
旋转命令:
String[] cmd= new String[]{"ffmpeg", "-y", "-i", orginalFilePath, "-strict", "experimental", "-vf", "transpose=" + transposeby, newFilePath};
//transposeby=1 for 90degree cw
合并命令:
String[] command = new String[]{"ffmpeg", "-y", "-i", files[0], "-i", files[1], "-strict", "experimental",
"-filter_complex", "[0:v]scale=640x480,setsar=1:1[v0];[1:v]scale=640x480,setsar=1:1[v1];[v0][0:a][v1][1:a] concat=n=2:v=1:a=1",
"-ab", "48000", "-ac", "2", "-ar", "22050", "-s", "640x480", "-r", "30", "-vcodec", "mpeg4", "-b", "2097k", newFilePath};
最佳答案
组合命令。如果 0:v
是旋转后的视频,那么在合并命令中,使用 [0:v]transpose=1,scale=640x480,setsar=1[v0]
和原创视频。
关于android - FFMPEG 中的慢速视频旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37519377/