gpt4 book ai didi

android - 使用 FFmpegFrameRecorder 合并音频文件

转载 作者:行者123 更新时间:2023-12-02 23:46:57 33 4
gpt4 key购买 nike

我已经使用 ffmpegframerecorder 成功合并(未连接)两个 .aac 音频文件,但输出文件非常慢。
下面是我使用的代码。
有什么可以用来加速输出音频文件的吗?和帧率有关系吗?

FFmpegFrameGrabber frameGrabber =
new FFmpegFrameGrabber("storage/sdcard0/Audio/audio.aac");
f=new File("/storage/sdcard0/Audio/audnew.aac");
try {
f.createNewFile();
} catch (IOException e2) {
// TODO Auto-generated catch block
Log.d("def",e2.getLocalizedMessage());
}
FFmpegFrameGrabber grabber1 = new FFmpegFrameGrabber("/storage/sdcard0/Audio/smoke.aac");
try {
frameGrabber.start();
grabber1.start();
} catch (org.bytedeco.javacv.FrameGrabber.Exception e1) {
// TODO Auto-generated catch block
Log.d("here",e1.getLocalizedMessage());
}
FFmpegFrameRecorder recorde = new FFmpegFrameRecorder(f, frameGrabber.getAudioChannels());
try {
recorde.setAudioCodec(AV_CODEC_ID_AAC);
Log.d("12","here");
recorde.setFrameRate(12);
recorde.start();
Frame frame1 = new Frame();
Frame frame2 = new Frame();
for (int i=0;i<1000000;i++)
{
frame1 = grabber1.grabFrame();
frame2 = frameGrabber.grabFrame();
if (frame1==null || frame2==null) {
Log.d("er","Failed cvQueryFrame");
frameGrabber.release();
grabber1.release();
break;
}
recorde.record(frame1);
recorde.record(frame2);

}
recorde.stop();
grabber1.stop();

}catch(Exception e){
Log.d("abc", e.getLocalizedMessage());
}

最佳答案

帧frame1,frame2 = null;

            while ((frame1 = grabber1.grabFrame()) != null ||
(frame2 = grabber2.grabFrame()) != null) {

recorder.record(frame1);
recorder.record(frame2);

}

使用它而不是 For 循环

关于android - 使用 FFmpegFrameRecorder 合并音频文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30573513/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com