Android JavaCV FFmpegFrameRecorder.stop()抛出异常

时间:2015-03-26 13:35:27

标签: android ffmpeg record h.264 javacv

我正在使用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文件调用工作(我猜这个文件因错误而无法生效)。

非常感谢您对此问题的任何帮助,谢谢:)

0 个答案:

没有答案