C++
文章平均质量分 77
TensorFlow学习
这个作者很懒,什么都没留下…
展开
-
c语言操作mysql 简介
用C语言做数据库操作还真不多,一般都选择文件操作来搞定。 最近一个项目需要用到MYSQL,就去看了下mysql之c api. 基本上都是一样的,说白了就是一个应用层的协议。正因为做的机会不多,所以要写下来,免得以后忘记了。 1.首先当然是连接,函数原型如下: C代码 MYSQL * STDCALL mysql_real_connect(MYSQ转载 2014-12-01 17:48:30 · 359 阅读 · 0 评论 -
IOS 实现录音PCM转MP3格式(边录音边转码)
最近做的一个项目,项目中有个录音功能,采用的录音方法是IOS下的AVAudioRecorder。录音效果不错,但是录制的原生.pcm文件太大,每分钟大约10M左右。找了下相关的音频压缩方法,用speex的比较多。按照speex的示例文档折腾了半天,实现了转码压缩。speex压缩率还蛮高的,但是压缩之后的pcm文件不能播放,需要解码回来,可是按照示例代码解码之后的pcm文件依旧不能播转载 2014-10-21 14:34:45 · 1119 阅读 · 0 评论 -
libmad学习进阶2----利用libmad将mp3转码成pcm
# include # include # include # include # include "mad.h"#include#include#include#include/** This is perhaps the simplest example use of the MAD high-level API.* Standard input转载 2014-10-21 14:33:06 · 547 阅读 · 0 评论 -
(二)用JAVA编写MP3解码器——帧头信息解码
1.解析帧头 帧头共4字节,从高位到低位这32比特的含义如下:比特数名称内容11sync0x7FF2version1=mpeg1.0, 0=mpeg2.02lay4-lay = layerI, II or III1error protection0=yes, 1=no4bit转载 2014-10-21 14:31:44 · 750 阅读 · 0 评论 -
(二)用JAVA编写MP3解码器——帧头信息解码
1.解析帧头 帧头共4字节,从高位到低位这32比特的含义如下:比特数名称内容11sync0x7FF2version1=mpeg1.0, 0=mpeg2.02lay4-lay = layerI, II or III1error protection0=yes, 1=no4bit转载 2014-10-21 14:33:21 · 572 阅读 · 0 评论 -
wav文件提取出pcm数据
/*******************************************************************************************************文件功能:wav文件中提取pcm数据作者:HFL日期:2014-1-12说明:wav文件就是在pcm数据的基础上加了一文件头。文件头的大小为44个字节(没有附件字段的情况,如果转载 2014-10-21 14:25:28 · 1763 阅读 · 2 评论 -
基于 libmad 的简单 MP3 流媒体播放器的实现
转载地址:http://www.ibm.com/developerworks/cn/linux/l-cn-libmadmp3player/index.html1.介绍本文在 Fedora 5 Linux 下实现了一个基于 libmad 的 MP3 流媒体播放器。此流媒体播放器可以播放基于 HTTP 1.1 协议传输的 MP3 流媒体数据。基本原理是:从 HTTP 服务器获得转载 2014-10-21 14:24:35 · 601 阅读 · 0 评论 -
lame支持armv6 armv7 i386 armv7s arm64
lame支持armv6 armv7 i386 armv7s arm64两年前,开始做新浪好声音,用lame库来压缩caf文件,转为mp3.那个时候,只需要支持armv6 armv7 i386,就可以编译app,发挥cpu正常的性能了。现在开发环境已经使用xcode5,手机架构也变为arm64了。在xcode5上编译程序,还是需要支持a转载 2014-11-26 10:50:00 · 435 阅读 · 0 评论 -
Mac OS X10.10_xcode6.1_ios8.1环境下,编译lame静态库libmp3lame.a,支持arm64 armv7s x86_64 i386 armv7指令集
最近升级了系统到Mac OS X 10.10 并且更新了XCode6.1和iOS 8.1之前app用到的libmp3lame.a静态库,也要支持64位的模拟器(x86_64)和64位的真机(arm64)指令集。需要重新编译查阅了下资料,按照如下步骤,并做了些注释和改动1.http://sourceforge.net/projects/lame/files/lame/3.99转载 2014-11-26 10:17:29 · 1150 阅读 · 0 评论 -
wav文件格式分析
虽然自己是搞视频图像的,不过偶尔看看音频方面的资料也是可以调节一下的。 下面就来分析一下wav波形文件的格式。 我们先随便找一个wav文件,查看其属性,就能得到下面的结果。 上面主要注意文件大小,声音长度与比特率。 文件占用空间就不用关心了,如果有人想知道为什么文件占用空间比文件大小要大,我在这里也解释一下。这和文件在硬盘中转载 2014-11-02 11:49:27 · 513 阅读 · 0 评论 -
C文件读写函数介绍(转)
C文件读写函数介绍(转)2010-01-28 10:351.fopen() fopen的原型是:FILE *fopen(const char *filename,const char *mode),fopen实现三个功能:为使用而打开一个流,把一个文件和此流相连接,给此流返回一个FILR指针。 参数filename指向要打开的转载 2014-11-02 13:37:08 · 316 阅读 · 0 评论 -
PCM数据格式
1. 音频简介 经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等. 44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节)记录, 双声道(立体声); 22050HZ 8bit mono: 每秒钟有 22050 次采样, 采转载 2014-10-21 14:41:06 · 419 阅读 · 0 评论 -
Android下使用lamemp3库将PCM录音数据压缩为MP3格式
转自:http://ikinglai.blog.51cto.com/6220785/1228730之前已经介绍过iOS下使用lamemp3将PCM压缩为mp3格式,今天介绍一下Android的使用。至于lamemp3库的下载就不再介绍了,大家可以直接把iOS的那个库拷过来,或者使用我附件中的库也可以。下面我介绍一下整个使用步骤,我将按照由转载 2014-10-21 14:46:22 · 810 阅读 · 0 评论 -
使用lame将wav转成mp3
安装lame:下载lame-3.93.1.tar.gz tar -xvzf lame-3.93.1.tar.gz ./configure && make && make installwav转化mp3脚本:#!/bin/sh # # file : wav2mp3.sh # this is for debugging PATH="/var/files转载 2014-10-21 14:07:18 · 2032 阅读 · 0 评论 -
IOS播放PCM数据
关于PCM播放器源码学习是本文要介绍的内容,由于原始PCM文件不能容纳任何关于其自身频率或者帧大小之类的信息,本例将不得不对此自行设置。我们会使用一种为经过压缩的PCM数据格式,具体参数喂16位、44KHz、单声道。这些信息通过程序顶部的三个预定义值指定:1#define BYTES_PER_SAMPLE 216位等于两个字节转载 2014-10-21 14:47:11 · 1734 阅读 · 0 评论 -
PCM数据基本格式
Android2013-08-06 10:10 139人阅读 评论(0) 收藏 举报PCM的每个样本值包含在一个整数i中,i的长度为容纳指定样本长度所需的最小字节数。首先存储低有效字节,表示样本幅度的位放在i的高有效位上,剩下的位置为0,这样8位和16位的PCM波形样本的数据格式如下所示。 样本大小 数据格式转载 2014-10-21 14:45:17 · 399 阅读 · 0 评论 -
wav与pcm数据
参考下这个WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource InterchangeFileFormat的缩写,每个WAVE文件的头四个字节便是“RIFF”。WAVE文件由文件头和数据体两大部分组成。其中文件头又分为RIFF/WAV文件标识段和声音数据格式说明段两部分。WAVE文件各部分内容及格式见附表。 常见的声音文件主要有两转载 2014-10-21 14:43:45 · 431 阅读 · 0 评论 -
iOS 通过(lame)将录制音频转换成Mp3
转载请注明出处,保留原帖地址及作者署名.Url:http://blog.csdn.net/ysy441088327/article/details/7392842#replyAuthor:余书懿为了达到 iPhone 与 Android 实现音频互通. 那么Mp3格式的音频文件再好不过了.至于能够转换成Amr 是最好,10秒 的转载 2014-10-21 14:07:14 · 680 阅读 · 0 评论 -
PCM 模拟数据向数字数据编码方法过程
最后形成二进制信息然后在信道上进行传输 采样- 量化- 编码转载 2014-10-21 14:42:09 · 1229 阅读 · 0 评论 -
基于lame对mp3进行分割的简单实现
基于lame对mp3进行分割的简单实现一、思路:利用lame编解码功能,在读取帧时检查下时间即可。二、实现1. 根据帧数计算时间:static float my_lame_get_current_time(const lame_global_flags *gfp,int frames){ int full转载 2014-10-21 13:57:29 · 1112 阅读 · 0 评论 -
c mp3
首先,我们应该知道mp3文件的格式,这个在百度上应该能找到,我在Google上找到了一篇介绍的比较详细,为了节约篇幅,只截取一段给大家看下吧,我们要修改的是title,作者等信息,这些信息看下mp3文件的格式后会知道他们存在于文件的最后128个字节里,如下所示:二、MP3标签1(放在文件尾部128字节)offset type len name------------------转载 2014-10-21 13:37:02 · 490 阅读 · 0 评论 -
PCM数据合成WAV文件
由于需要解码后的裸数据保存下来看看效果,故需要将数据合成WAV文件[cpp] view plaincopyypedef struct { unsigned short format_tag; unsigned short channels; /* 1 = mono, 2 = ster转载 2014-10-21 14:40:44 · 992 阅读 · 0 评论 -
libmad解码MP3——/dev/dsp播放
一、编译libmad库 1、下载libmad源码,解压。 2、 ./configure --prefix=/usr (安装到/usr/lib目录) 3、make & make install 出现错误信息 error: unrecognized command line option "-fforce-mem"转载 2014-10-21 14:31:21 · 1313 阅读 · 0 评论 -
Java实现音频格式转换 WAV---mp3,可使音频压缩
最近做的一个小项目中,师兄安排的任务,要实现录音然后保存文件,实现网络传输,然后我用初学的java实现了一个录音机的功能(见前面的博客),但是windows录音默认保存的格式是WAVE,后缀是WAV,经过大量测试,录制一分钟要1M大小,这样不便于网络的传输,于是下面的任务就是实现音频压缩了,搜了几天,找到了一个不错的软件Monkey Audio(实现说明,我们的项目得全是代码实现的),这个软件的开转载 2014-10-21 14:14:46 · 2917 阅读 · 0 评论 -
c++代码在windows,aix,linux上的移植
我目前工作中的大多数项目是在aix上跑的,最近有个aix的c++项目要移植到linux上,而我个人喜欢使用VC作为开发工具。因为这样,需要对项目windows,aix,linux上的移植,在这个过程中作了些总结。现假设平台与编译工具对应如下:windows――vcaix――xlclinux――gcc 目录:1. c++标准1.1. 变量、函数重定义转载 2014-11-01 21:32:40 · 563 阅读 · 0 评论 -
一个C++实现的md5源码
使用代码[cpp] view plaincopystring c,key; cin >> c; if( c == "c" ) return(0); CMD5 iMD5; iMD5.GenerateMD5( (unsigned char*)c.c_str(), c.size() ); key = i转载 2014-11-01 21:33:29 · 482 阅读 · 0 评论 -
Vim:打造Linux C/C++程序员的编辑器
Vim:打造Linux C/C++程序员的编辑器上一篇 / 下一篇 2010-07-10 19:31:32 / 个人分类:Linux查看( 101 ) / 评论( 0 ) / 评分( 0 / 0 )所谓“工欲善其事,必先利其器”,所谓“磨刀不误砍柴工“。在linux 下,vim 时一种最常见的编辑器,很多linux的发行版就自带了(不过 Ubuntu目前时需要转载 2014-11-01 21:48:45 · 473 阅读 · 0 评论 -
Redis源码学习3-基本数据结构之双向链表
[-]楔子双向链表定义基本函数listCreate创建列表listRelease释放列表listAddNodeHead在表头添加节点listAddNodeTail在表尾添加节点listInsertNode在指定节点前后插入节点listDelNode删除链表中指定节点迭代器及相关函数迭代器定义相关函数listGetIterator迭代器创建迭代器释放迭代指针调整函数lis转载 2014-11-09 22:31:06 · 442 阅读 · 0 评论 -
NoSQL数据库的分布式算法
[-]数据一致性反熵协议 谣言传播算法最终一致数据类型Eventually Consistent Data Types数据放置均衡数据动态环境中的数据分片和复制按照多个属性的数据分片钝化副本系统协调故障检测协调者竞选 系统的可扩展性是推动NoSQL运动发展的的主要理由,包含了分布式系统协调,故障转移,资源管理和许多其他特性。这转载 2014-11-09 22:41:20 · 458 阅读 · 0 评论 -
NoSQL数据库笔谈
[-]NoSQL数据库笔谈NoSQL数据库笔谈序思想篇CAP最终一致性变体BASE其他IO的五分钟法则不要删除数据RAM是硬盘硬盘是磁带Amdahl定律和Gustafson定律万兆以太网手段篇一致性哈希亚马逊的现状算法的选择Quorum NRWVector clockVirtual nodegossipGossip State转载 2014-11-09 22:38:17 · 1287 阅读 · 2 评论 -
Redis源码学习2-内存管理
开始还想着分析一下redis内存管理函数的,在网上找到一篇很不错的分析文章,干脆直接拿来用好了。原文地址:http://blog.ddup.us/?p=136Redis中到处都会进行内存分配操作。为了屏蔽不同平台之间的差异,以及统计内存占用量等,Redis对内存分配函数进行了一层封装,程序中统一使用zmalloc,zfree一系列函数,位于zmalloc.h,zmall转载 2014-11-09 22:35:51 · 370 阅读 · 0 评论 -
Redis源码学习4-基本数据结构之字典
[-]Redis基本数据结构-字典字典概念相关函数创建字典添加键值对到字典获取元素值其他参考资料Redis基本数据结构-字典 1、字典概念 Redis是一个键值对数据库,在很多地方用到字典。Redis字典的实现采用的是比较经典的哈希表方式实现的。貌似跟memcached的方法有点像,很久之前看过部分memcached,现在转载 2014-11-09 22:28:14 · 488 阅读 · 0 评论 -
Poll机制分析(转韦东山)
最近看了一下Linux Poll 机制的实现,看了韦老师的分析文档,总结如下:int poll(struct pollfd *fds,nfds_t nfds, int timeout);总的来说,Poll机制会判断fds中的文件是否可读,如果可读则会立即返回,返回的值就是可读fd的数量,如果不可读,那么就进程就会休眠timeout这么长的时间,然后再来判断是否有文件可读,如果有,返转载 2014-11-09 20:10:03 · 432 阅读 · 0 评论 -
poll()函数的使用
poll函数用于监测多个等待事件,若事件未发生,进程睡眠,放弃CPU控制权,若监测的任何一个事件发生,poll将唤醒睡眠的进程,并判断是什么等待事件发生,执行相应的操作。poll函数退出后,struct pollfd变量的所有值被清零,需要重新设置。示例是使用poll函数来监测按键的输入------------------------------------------------转载 2014-11-09 20:07:17 · 953 阅读 · 0 评论 -
Redis源码整体运行流程详解
[-]Redis Server端处理Client请求的流程图main函数initServer函数acceptTcpHandler函数createClient函数readQueryFromClient函数processCommand与call函数sendReplyToClient函数小结本文所引用的源码全部来自Redis2.8.2版本。Redis源码整体运行流转载 2014-11-09 22:24:12 · 609 阅读 · 0 评论 -
Memcached源码解析--多线程网络模型
一、网络模型 Memcache网络底层采用的Libevent,其网络模型就是大名鼎鼎的半同步半异步。关于Libevent可以参看我之前写的一篇拙文《Libevent源码解析--事件处理框架》,半同步半异步可以看这篇有名的博文。 在阅读本文前,建议先阅读《Libevent源码解析--事件处理框架》,这样很多概念便于理解,很多组件或术语在这儿不再赘述。二、多转载 2014-11-09 15:45:43 · 479 阅读 · 0 评论 -
Redis源码简要分析
在文章的开头我们把所有服务端文件列出来,并且标示出其作用:adlist.c //双向链表ae.c //事件驱动ae_epoll.c //epoll接口, linux用ae_kqueue.c //kqueue接口, freebsd用ae_select.c //select接口, windows用anet.c //网络处理aof.c //处理AOF文件config.c转载 2014-11-09 15:39:11 · 385 阅读 · 0 评论 -
Redis源码学习1——基本数据结构sds
[-]sdshdr结构sdsnew构建字符串sdscatsds 字符串扩展sdsclear 清除最近好几次用到redis,但是一直没有时间来好好学习下redis的原理,打算最近花一个月的空余时间来整理学习下redis的源码。redis本身非常简洁,下载源码直接make就ok了,而且似乎没有依赖第三方库什么的。先从基本的数据结构开始把,主要参考了http://www.re转载 2014-11-09 22:32:54 · 465 阅读 · 0 评论 -
从视频文件提取音频并存储为MP3格式文件
在linux世界里,进行视频格式转化的软件有很多,其中大名鼎鼎的ffmpeg和mplayer下的mencoder。本文主要介绍如何从视频文件中提起音频,同时保存成mp3格式的文件。格式转换其实就是经过解码和重新编码两个过程,如果系统不存在对应的解、编码器,就需要额外安装。ffmpeg自带了MP2格式的编码器,对于MP2格式的音频,普通电脑上的播放器似乎都能支持,但大部分手机的播放器不支持,转载 2014-10-08 10:09:48 · 1080 阅读 · 0 评论 -
读取wav音频
wav音频格式是微软的制定的一种文件格式,其结构非常简单音频存储格式。为了为接下来学习DSP做准备,我今天查了一些关于读取wav文件的资料,现将其总结与此,并编程实现(代码部分参考了网络上一些代码,修改了其中一些错误之处)。下图是我绘制的wav文件格式结构图: 代码如下:struct ret_value{ char *data; unsigned l转载 2014-10-08 10:07:18 · 732 阅读 · 0 评论