我正在使用FFmpegFrameRecorder从相机捕捉预览帧。我正在使用此设置:
mVideoRecorder = new FFmpegFrameRecorder(mVideoPath, 300, 300, 1);
mVideoRecorder.setFormat("mp4");
mVideoRecorder.setSampleRate(44100);
mVideoRecorder.setFrameRate(30);
mVideoRecorder.setVideoCodec(avcodec.AV_CODEC_ID_H264);
mVideoRecorder.setAudioCodec(avcodec.AV_CODEC_ID_AAC);
mVideoRecorder.setVideoQuality(0);
mVideoRecorder.setAudioQuality(0);
mVideoRecorder.setVideoBitrate(768000);
mVideoRecorder.setAudioBitrate(128000);
mVideoRecorder.setGopSize(1);
通过调用.record(IplImage)方法完成所有帧的捕获后,我调用了mVideoRecorder.stop()。
但有时停止()方法抛出
org.bytedeco.javacv.FrameRecorder$Exception: av_interleaved_write_frame() error -22 while writing interleaved video frame.
at org.bytedeco.javacv.FFmpegFrameRecorder.record(FFmpegFrameRecorder.java:727)
at org.bytedeco.javacv.FFmpegFrameRecorder.stop(FFmpegFrameRecorder.java:613)
我没有看到这种行为的任何规律性,也没有找到错误-22是什么。之后在mVideoPath中没有ffmpeg文件调用工作(我猜这个文件因错误而无法生效)。
非常感谢您对此问题的任何帮助,谢谢:)