FFmpegFrameGrabber-视频长度异常问题
异常情况
frame = grabber.grabSamples();
使用解码器获取截取音频信息时出现异常,无法获取剩余信息
异常信息
Invalid return value 0 for stream protocol
[mp3float @ 0x7f3bec2c1240] invalid new backstep -1
异常原因
FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(new FileInputStream(filePath));
Frame frame = grabber.grabSamples();
FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(filePath, 2);
recorder.recordSamples(frame.sampleRate, frame.audioChannels, frame.samples);
frame = grabber.grabSamples();
处理器输入流读取文件,与输出文件相同,在FFmpegFrameRecorder输出覆盖了原文件
解决方案
String newFilePath = "D:\\new.mp3";
创建FFmpegFrameRecorder对象时,采用新文件路径,该文件不需提前创建
FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(newFilePath, 2);