recorder.recordPacket(avPacket) Unable to convert opus to aac
#1,972 opened on Jan 17, 2023
Repository metrics
- Stars
- (6,985 stars)
- PR merge metrics
- (No merged PRs in 30d)
Description
FFmpegFrameRecorder recorder = new FFmpegFrameRecorder(o, grabber.getImageWidth(), grabber.getImageHeight()); // 部分监控设备流信息里携带的帧率为9000,如出现此问题,会导致dts、pts时间戳计算失败,播放器无法播放,故出现错误的帧率时,默认为25帧 if (grabber.getFrameRate() > 0 && grabber.getFrameRate() < 100) { framerate = grabber.getFrameRate(); } else { framerate = 25.0; } recorder.setInterleaved(true); // 关键帧间隔,一般与帧率相同或者是视频帧率的两倍 recorder.setGopSize((int) framerate * 2); // 视频帧率(保证视频质量的情况下最低25,低于25会出现闪屏) recorder.setFrameRate(framerate); // 设置比特率 recorder.setVideoBitrate(grabber.getVideoBitrate()); recorder.setVideoCodec(AV_CODEC_ID_H264); // h264编/解码器 recorder.setPixelFormat(avutil.AV_PIX_FMT_YUV420P); //视频参数 Map<String, String> videoOption = new HashMap<>(); // 该参数用于降低延迟 videoOption.put("tune", "zerolatency"); videoOption.put("preset", "ultrafast"); videoOption.put("crf", "28"); videoOption.put("vcodec","libx264"); //------------------------------- recorder.setMaxDelay(500); recorder.setAudioOption("crf", "0"); // 最高音质 recorder.setAudioQuality(0); // 192 Kbps recorder.setAudioBitrate(192000); recorder.setSampleRate(44100); recorder.setAudioChannels(2); recorder.setAudioCodec(avcodec.AV_CODEC_ID_AAC); //-------------------------------- recorder.setOptions(videoOption);
recorder.start(formatContext);//I made a mistake in this step
FLV does not support sample rate 48000, choose from (44100, 22050, 11025)