如何使用ffmpeg在android

时间:2016-09-03 08:32:02

标签: android ffmpeg

我想用一堆图像创建幻灯片,其效果包括淡入淡出,交叉淡入淡出,从右向左滑动,放大缩小或任何其他幻灯片效果,我想创建一个视频这些图像的输出。

我也尝试过使用下面的FFMPEG命令,但它似乎只适用于具有相同分辨率的图像,因为它不具有不同的分辨率。

  

String fourImage =" ffmpeg -loop 1 -t 3 -i /sdcard/videokit/one.jpg   -loop 1 -t 3 -i /sdcard/videokit/two.jpg -loop 1 -t 3 -i /sdcard/videokit/three.jpg -loop 1 -t 3 -i /sdcard/videokit/four.jpg   -filter_complex [0:v] trim = duration = 3,fade = t = out:st = 2.5:d = 0.5 [v0]; [1:v] trim = duration = 3,fade = t = in:st = 0 :d = 0.5,褪色= T =出来:ST = 2.5:d = 0.5 [V1]; [2:v]修剪=持续时间= 3,褪色= T =在:ST = 0:d = 0.5,褪色=吨=出来:ST = 2.5:d = 0.5 [V2]; [3:v]修剪=持续时间= 3,褪色= T =在:ST = 0:d = 0.5,褪色= T =出来:ST = 2.5:d = 0.5 [V3]; [V0] [V1] [V2] [V3]的concat = N = 4:v = 1:A = 0,格式= YUV420P [v]   -map [v] -preset ultrafast /sdcard/videokit/fourImageSecond.mp4" ;;

还要看this link,因为我想创建相同的效果,但它仅适用于相同的分辨率图像。

所以我的问题是,如何使用ffmpeg从幻灯片效果的图像创建视频?

任何帮助都会非常明显。

2 个答案:

答案 0 :(得分:0)

正如official wiki所说: 系列中的所有图片都必须具有相同的尺寸和格式。

您需要使用以下代码调整所有图像的大小:

Bitmap yourBitmap;
Bitmap resized = Bitmap.createScaledBitmap(yourBitmap, newWidth, newHeight, true);

或:

resized = Bitmap.createScaledBitmap(yourBitmap,(int)(yourBitmap.getWidth()*0.8), (int)(yourBitmap.getHeight()*0.8), true);

完成此步骤后,请阅读this repository

祝你好运:)

答案 1 :(得分:0)

首先要制作相同大小的文件,然后添加效果

"[0:v]scale=1024x576:force_original_aspect_ratio=decrease, setdar=16/9,pad=1024:576:-1:-1,setsar=1,fps=30,format=yuv420p[v0]; ” + “[1:v]scale=1024x576:force_original_aspect_ratio=decrease, setdar=16/9,pad=1024:576:-1:-1,setsar=1,fps=30,format=yuv420p[v1];” + “[2:v]scale=1024x576:force_original_aspect_ratio=decrease, setdar=16/9,pad=1024:576:-1:-1,setsar=1,fps=30,format=yuv420p[v2];” + “[v0]trim=duration=3,fade=t=in:st=0:d=0.5,fade=t=out:st=2.5:d=0.5[v0];” + “[v1]trim=duration=3,fade=t=in:st=0:d=0.5,fade=t=out:st=2.5:d=0.5[v1];” + “[v2]trim=duration=3,fade=t=in:st=0:d=0.5,fade=t=out:st=2.5:d=0.5[v2];” + "[v0][v1][v2]concat=n=3:v=1:a=0[v]", "-map", "[v]", "-preset", 强文本“超快”,pathavaing};