借鉴链接:https://www.cnblogs.com/findumars/p/5706009.html

ffmpeg可以解码g729a,但不能编码成g729a,所以要想使用g729a编码需要用到va_g729a库。

头文件g729a.h:

#define  L_FRAME_COMPRESSED 10#define  L_FRAME            80extern "C" void va_g729a_init_encoder();extern "C" void va_g729a_encoder(short *speech, unsigned char *bitstream);extern "C" void va_g729a_init_decoder();extern "C" void va_g729a_decoder(unsigned char *bitstream, short *synth_short, int bfi);

使用到了编码功能,下面上代码:


va_g729a_init_encoder();//len 为320;data为320字节的pcm数据,因为g729a编码是按16:1的比例编码short srcAudio[L_FRAME] = { 0 };unsigned char *dstAudioG729 = new unsigned char[20];
memset(dstAudioG729, 0, 20);int nAudioG729Len = 0;
for (int i = 0; i < len / (L_FRAME * 2); i++)
{//char转short  memcpy(srcAudio, data + i * L_FRAME * 2, L_FRAME * 2);//编码成g729  va_g729a_encoder(srcAudio, dstAudioG729 + i * L_FRAME_COMPRESSED);nAudioG729Len += L_FRAME_COMPRESSED;
}

更新:下面是g729a数据解码的代码:

va_g729a_init_decoder();//len收到数据长度,data收到的g729a数据
for (int i = 0; i < len / L_FRAME_COMPRESSED; i++)
{unsigned char srcAudio[L_FRAME_COMPRESSED] = { '\0' };short dstAudio[L_FRAME] = { 0 };memcpy(srcAudio, data + i * L_FRAME_COMPRESSED, L_FRAME_COMPRESSED);//G729解码  va_g729a_decoder(srcAudio, dstAudio, 0);//short转char  char charDstAudio[L_FRAME * 2] = { 0 };memcpy(charDstAudio, dstAudio, L_FRAME * 2);FILE*fp = fopen("1.pcm", "ab+");if (fp != NULL){fwrite(charDstAudio, L_FRAME * 2, 1, fp);fclose(fp);}
}

va_g729a编码库使用相关推荐

  1. 最强的视频会议软件编码库:ffmpeg

    ffmpeg是一个完整的.跨平台的音.视频编码库,ffmpeg几乎包含现今较为流行的音视频编码,许多软件产品的编码器都是基于ffmpeg,因此其在编码领域占有相当重要的地位.在视频会议软件的开发当中, ...

  2. dna编码库_Nature |DNA元件百科全书(ENCODE)计划, 全面注释基因组元件

    原创 mumu 图灵基因 今天 来自专辑 前沿生物大数据分析 撰文:mumu IF=42.778 推荐度:⭐⭐⭐⭐⭐ 亮点: 1.研究了小鼠胚胎全组织.单细胞分辨率水平.不同组织和器官中.随时间变化的 ...

  3. dna编码库_DNA编码化合物库,新药筛选划时代的变革

    在药物发现过程中面对的主要挑战是在成本可控范围内,如何快速并且高质量地找到尽可能多的能够与靶点蛋白相结合的活性化合物.为了解决这个问题,我们不断完善并创新着筛选方法.例如在一些项目中我们通过使用高通量 ...

  4. 二维码编码库qrencode

    二维码分类及简介: https://blog.csdn.net/qq_29110265/article/details/86521156 QR Code二维码详解: https://coolshell ...

  5. Window下编译 64位ffmpeg 引入libx264及libmp3lame编码库

    好记性不如烂笔头,每次编译总要有些时间折腾,记录下编译过程,方便后来者. 本文 介绍windows下编译64位Ffmpeg库 (版本V4.02)如何引入libx264及libmp3lame(编码mp3 ...

  6. dna编码库_DNA编码分子库技术取得新进展

    DNA编码分子库技术取得新进展 记者近日从重庆大学获悉,该校与瑞士的科研团队合作实现了基于恒定大环骨架的DNA编码分子库的合成与筛选,获得内含超过3500万种不同化合物的分子库,有望将这一筛选时间从数 ...

  7. python代码库-python 编码库

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 目前我们公司的自动化,大部分是以 python 语言为主,但是经常发现, ...

  8. AB1601移植二维码编码库注意事项

    移植过程中出现编译成功,但连接报错,找不到相关的函数入口. 推测是库方面的问题,在工程中把跟库相关的几个文件增加进来就可以了.具体配置情况如下: #----- SYSTEM -----# cSRC   ...

  9. iOS Base64转码(使用ios7系统自带编码库 和 GMTBase64 两种方式)

    demo下载地址:http://pan.baidu.com/s/1i3LvaDZ 在iOS7 中系统提供了base64 的转码方式 示比例如以下: NSData* originData = [orig ...

  10. 移植X264编码库到ARM

    编译环境:ubuntu12.04 交叉编译器:arm-none-linux-gnueabi-gcc 4.4.1 目标板:iTOP4412 (cortex A9) 源码准备: X2.64源码:http: ...

最新文章

  1. QingStor 对象存储服务正式商用
  2. error: expected ‘{‘ before ‘;‘ token
  3. 字符流复制Java文件改进版
  4. 通过Windows Visual Studio远程调试WSL2中的.NET Core Linux应用程序
  5. Xamarin Evolve 2016 Keynote回顾
  6. python 计算订单_从问题到程序:用Python学编程和计算
  7. B站游戏大佬飘了?深挖B站辱北邮事件经过:不是第一次
  8. 详解BILSTM-CRF模型结构进行命名实体识别
  9. 判断布尔值的一些规则
  10. mysql jdbc 水晶报表,水晶报表Crystal Report2008使用JDBC连接MySQL数据库-详细步骤
  11. C#数字黑洞之一(西绪福斯黑洞:123数字黑洞)
  12. Typora中写论文怎么添加reference(参考文献)
  13. centos7安装harbor详细教程
  14. 杂谈:用 Sublime Text 2 写 ActionScript3
  15. 华为dhcp+ac+ap组网实验
  16. 【180622】VC++ 超经典坦克大战双人版
  17. Windows Server2012R2插网线无网络---网络受限
  18. 全自动软化水设备:25t/h全自动流量型软化水设备特点
  19. 最新自适应手机端CRM客户关系管理系统
  20. 1024程序员节,我被喷上了热搜!

热门文章

  1. 小执着的伤感空间日志:童话般虚幻、却没有童话般的结局
  2. Linux + ChromiumOS + ....操作系统资源(持续更新...)
  3. Android 混淆配置
  4. FFmpeg 视频裁剪
  5. VC安装驱动详细解释
  6. 虚拟机Ubuntut tftp服务不启动,service tftpd-hpa restart 失败的处理
  7. linux新手入门-2.开局
  8. 什么是cs架构和bs架构
  9. 阿里云云计算ACP认证模拟试题一(上)
  10. 蓝桥杯 等差素数列(python实现)