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());
相关推荐
金銀銅鐵20 小时前
[Java] 展示增删元素时 LinkedList 的内部变化
java·后端·ai编程
布吉岛的石头21 小时前
Java 程序员第 50 阶段3:数据工程:预训练语料清洗与去重
java·开发语言·人工智能·深度学习·transformer
大文说跨境21 小时前
防关联浏览器的指纹覆盖到什么程度:六类参数的实测与自检方法
java·指纹浏览器·tiktok运营
Carol06301 天前
上肢及肩肘关节
java·服务器·数据库
yliucherish1 天前
Log4Shell 复现实录:我读 OpenJDK 源码,发现两道防线的默认值竟然相反
java
维拉德1 天前
Java新人第一次接打标需求:从抓包找接口到客户端展示
java
luobobo8961 天前
支付回调验签连续失败三天,最后发现是网关的时间戳单位问题
java
BBmmo1 天前
Java InputStream.read() 为什么返回 int?
java
Nuanyt1 天前
LeetCode Hot100 刷题笔记 · 普通数组专题
java·笔记·算法·leetcode
cfm_29141 天前
Leaf-segment号段模式
java