javacv实时解析pcm音频流

javacv实时解析pcm音频流

  • 解析代码
java 复制代码
        try (ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes);){
            FFmpegFrameGrabber grabber = new FFmpegFrameGrabber(inputStream);
            // PCM S16LE 格式
            grabber.setFormat("s16le");
            // 采样率
            grabber.setSampleRate(16000);
            // 声道数
            grabber.setAudioChannels(1);
            // 音频编码
            grabber.setAudioCodecName("pcm_s16le");
            grabber.start();
            Frame frame;
            // 注意每秒帧数等于音视频帧率(默认25),而不是音频采样率16000
            while ((frame = grabber.grabFrame()) != null) {
                // 处理音频帧
            }
        }
  • 模拟测试
java 复制代码
        File file = new File("C:/test.pcm");
        byte[] bytes = Files.readAllBytes(file.toPath());
相关推荐
七夜zippoe2 小时前
事务方案选型全景图:金融与电商场景的实战差异与落地指南
java·分布式·事务
杨二K4 小时前
认识HertzBeat的第一天
java·hertzbeat
DevilSeagull4 小时前
JavaScript WebAPI 指南
java·开发语言·javascript·html·ecmascript·html5
期待のcode6 小时前
Spring框架1—Spring的IOC核心技术1
java·后端·spring·架构
葵野寺6 小时前
【RelayMQ】基于 Java 实现轻量级消息队列(七)
java·开发语言·网络·rabbitmq·java-rabbitmq
书院门前细致的苹果6 小时前
JVM 全面详解:深入理解 Java 的核心运行机制
java·jvm
上官浩仁7 小时前
springboot excel 表格入门与实战
java·spring boot·excel
Hello.Reader7 小时前
从零到一上手 Protocol Buffers用 C# 打造可演进的通讯录
java·linux·c#
树码小子8 小时前
Java网络初识(4):网络数据通信的基本流程 -- 封装
java·网络
稻草人想看远方8 小时前
GC垃圾回收
java·开发语言·jvm