Android JavaCV FFmpegFrameRecorder.stop()引发异常
我正在使用FFmpegFrameRecorder从相机捕获预览帧。我正在使用此设置:Android JavaCV FFmpegFrameRecorder.stop()引发异常,android,ffmpeg,record,h.264,javacv,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.
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()
但有时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调用就不起作用了(我猜由于这个错误,该文件甚至是无效的)
我非常感谢您对此问题的帮助,谢谢:)我也遇到了同样的错误,还没有找到原因。如果我找到了解决方案,我将更新。您找到了解决方案吗?如果我没记错,那么这是由于调用
stop()
太快造成的。即使在record()
已经返回之后,ffmpeg似乎也会在内部执行一些操作。但我真的不记得这是否是问题所在,抱歉。