我正在录制一些屏幕录像,而我的废话录音机(Camtasia)在每个开始时或开始时录制了约2000个视频,并带有短暂的黑色闪光(2-3帧)。
我正在寻找一种用FFmpeg自动替换每个视频中的黑色帧的方法,目前我可以检测出哪些帧是黑色的。
我现在遇到的问题是:如何在AVI视频中用帧号X-1的内容替换帧号X ?并不是要缩短视频,而只是要就地替换帧。
这是我到目前为止所拥有的:
FFmpegFrameGrabber g = new FFmpegFrameGrabber("res/video.avi");
g.start();
FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(new FileOutputStream(new File("res/video_out.avi")), g.getImageWidth(), g.getImageHeight(), 2);
recorder.setFormat("avi");
recorder.setPixelFormat(AV_PIX_FMT_YUV420P);
recorder.setFrameRate(30);
recorder.setVideoCodec(AV_CODEC_ID_H264);
recorder.setVideoQuality(10);
recorder.setSampleFormat(AV_SAMPLE_FMT_FLTP);
recorder.setSampleRate(48000);
recorder.setAudioCodec(AV_CODEC_ID_AAC);
recorder.setAudioQuality(10);
g.setFrameNumber(1);
recorder.setFrameNumber(2);
recorder.record(g.grab());
g.close();
recorder.close();
recorder.release();
我又得到了一个空帧(甚至不是黑色)的视频,所以我可能在这里弄乱了东西。
是否有使用FFmpeg的经验?