通过使用VidEffects(https://github.com/krazykira/VidEffects),我可以将滤镜成功应用于我的应用中的录制视频。问题是这样的插件无法渲染经过过滤的视频,无论如何,我正试图通过使用此类来应用永久视频效果:
public class VideoProcessing extends AsyncTask {
private final File myDirectory;
private FFmpegFrameGrabber VIDEO_GRABBER;
private FFmpegFrameRecorder videoRecorder;
File file;
int totalLength;
private Context mContext;
private FFmpegFrameFilter filter;
VideoProcessing(Context context, String path) {
mContext = context;
file = new File(path);
VIDEO_GRABBER = new FFmpegFrameGrabber(file);
myDirectory = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) + "/_Pikky-Edited-Video/");
Log.i(Configurations.TAG, "VIDEO PROCESSING PATH: " + myDirectory);
if (!myDirectory.exists()) { myDirectory.mkdirs(); }
}
@Override
protected void onPreExecute() {
super.onPreExecute();
}
无论如何,似乎该doInBackground函数未在任何地方被调用,因为该应用程序仅在我的Pictures目录(_Pikky-Edited-Video)中创建自定义文件夹,并在Logcat中打印其路径-看Log.i(Configurations.TAG, "VIDEO PROCESSING PATH: " + myDirectory);,仅此而已,视频预览就保留了下来。在我的Activity中播放-这是因为我已将MediaPlayer的循环设置为true-但我的VideoProcessing类的其他函数也未调用initVideoRecorder()。
这是我的build.gradle,所有必需的依赖项均已下载:
implementation 'com.writingminds:FFmpegAndroid:0.3.2'
implementation group: 'org.bytedeco', name: 'javacv', version: '1.1'
implementation group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.0.0-1.1', classifier: 'android-arm'
implementation group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '2.8.1-1.1', classifier: 'android-arm'
我也欢迎采用替代解决方案来渲染带有滤镜的视频。
相关分类