多媒体-FFMPEG-Anroid-采集-PCM-MP3

1.用Android采集.pcm文件

int recBufSize = AudioRecord.getMinBufferSize(
        44100,
        AudioFormat.CHANNEL_CONFIGURATION_MONO,
        AudioFormat.ENCODING_PCM_16BIT);
AudioRecord audioRecord 
    = new AudioRecord(
        MediaRecorder.AudioSource.MIC,
        44100,
        AudioFormat.CHANNEL_CONFIGURATION_MONO,
        AudioFormat.ENCODING_PCM_16BIT,
        recBufSize);
/**
  * 录音到本地
  * @param wfBuf
  */
 private void writeToFile(byte[] wfBuf, int len) {
        if(!pcmFile.exists()) {
            try {
                pcmFile.createNewFile();
            } catch (IOException e) {...}
        }
        try {
            RandomAccessFile raf 
                = new RandomAccessFile(pcmFile, "rw");
            long totalLen = raf.length();
            raf.write(wfBuf, 0, len);
            raf.close();
        } catch (Exception e) {...}
    }
/**
*录制线程
*/
class RecordThread extends Thread {
        @Override
        public void run() {
            audioRecord.startRecording();
            byte[] buffer = new byte[recBufSize];
            byte[] wfBuf = new byte[recBufSize];
            while (isRecording) {
                int resultLen 
                    = audioRecord.read(buffer,0,
                                    recBufSize);
                System.arraycopy(buffer, 0, 
                                wfBuf, 0, resultLen);
                audioTrack.write(wfBuf, 0, resultLen);
                writeToFile(wfBuf, resultLen);
            }
            audioRecord.stop();
        }
    }

利用ffmpeg将*.pcm转化成各种封装格式.

-  cm.pcm 转化成a.mp3:
    1. 搭建好ffmpeg的环境
    2. 输入指令: ffmpeg -y -ac 1 -ar 44100 -f s16le 
                            -i cm.pcm -acodec libmp3lame    a.mp3                       
    3. 命令解析:
            - -y 强制覆盖生成a.mp3
            - -ac 设置声道数目
            - -ar 设置采样频率(单位:Hz)
            - -f 设置强制转换(输入或输出)文件的format 
            - -i 设置输入文件
            - -acodec 设置音频编码库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值