Android Java(ffmpeg-kit),协助(意见)将4个ffmpeg命令组合在一起

jk9hmnmh  于 2022-11-27  发布在  Java
关注(0)|答案(1)|浏览(242)

我有以下4个ffmpeg命令。1.在整个视频长度上添加一个png帧(边框)。2.创建一个回飞棒效果。3.在视频的最后2秒添加一个outro jpeg。4.在视频的前2秒添加一个intro jpeg。(这些命令单独工作)
我的目标是将所有这些单独的命令组合成一个命令来创建一个完整的编辑视频。最终的视频需要所有这些元素在一个最终编辑视频。
非常感谢您的帮助。

/**
 *

 * (Middle overlay filter) String exe = "-i " + input_video_uri + " -framerate 60 -i " + frame + " -filter_complex [0]pad="+mVideoWidth+":"+mVideoHeight+":576:0[vid];[vid][1]overlay -c:a copy -vcodec mpeg4 -crf 0 -preset ultrafast -qscale 0 " + file2.getAbsolutePath();

 * (Boomerang effect) String exe = "-y -i " + input_video_uri + " -filter_complex [0]reverse[r];[0][r][0]concat=n=3,setpts=0.5*PTS " + file2.getAbsolutePath();

 * (Put image at end of video) String exe = "-i "+ input_video_uri +" -i "+ frame +" -filter_complex \"[0:v][1:v] overlay=0:0:enable='between(t,"+ (msec - 2 ) + ","+ msec+")'\" -pix_fmt yuv420p -c:a copy " + file2.getAbsolutePath();

 * (Put image at start of video) String exe = "-i "+ input_video_uri +" -i "+ frame +" -filter_complex \"[0:v][1:v] overlay=0:0:enable='between(t,0,2)'\" -pix_fmt yuv420p -c:a copy " + file2.getAbsolutePath();

 * */

作为ffmpeg的新手,我的知识有限。但是,我试过"&&",它从ffmpeg库中产生了一个无法识别的错误。

wr98u20j

wr98u20j1#

在你的情况下,主要的问题是创建合适的filtergraph。我会帮助你完成这项任务。适应这些命令的java应用程序是你自己的。
假设您有四个输入源:

  • 0 -源视频;
  • 1 -中间帧图像;
  • 2 -标题帧图像;
  • 3 -结束帧图像。

您可以在一个filter_complex中应用所有转换(出于测试目的,我选择了最终视频分辨率640 x480和源视频持续时间5s):

-filter_complex \
  "[0:v]pad=640:480:576:0[vpad]; \
   [vpad][1]overlay[vframed]; \
   [vframed]split=3[vfr1][vfr2][vfr3]; \
   [vfr1]reverse[vrev]; \
   [vfr2][vrev][vfr3]concat=n=3,setpts=0.5*PTS[vboom];
   [vboom][2]overlay=enable='lte(t,2)'[vpreout];
   [vpreout][3]overlay=enable='gte(t,5*3*0.5-2)'[vout]" \

由于您对“回飞棒”应用了快动作效果,最后一行有一些算法来计算输出视频的持续时间:〈* 5秒的源视频 3个回旋镖的块 速度系数 *〉。
结果会是这样的:

相关问题