北雨南萍

鹏徙南冥三千里,抟扶直上九重天

排序:
默认
按更新时间
按访问量

使用speex对pcm,wav进行降噪处理

1. speex的降噪模块的简介 speex的语音处理模块要使用独立于 speex codec库的libspeexdsp 库。 这个分离的库是在1.2版本后实现; 它这库包括了: 预处理,回声消除,jitter buffer 和重采样模块; 在Unix/Linux环境下,使用 -lspee...

2018-10-24 17:44:54

阅读数:67

评论数:0

基于FFmpeg-4.0 SDK的PCM编码成AAC

1. 初始化 AVCodecContext *m_avctx; AVCodec *m_codec; /* Init ffmpeg log */ ffmpeg_log_callback pcb_log =...

2018-10-12 20:11:41

阅读数:45

评论数:0

FFmpeg的音频处理详解

一、基本概念 1. 音频简介 数码音频系统是通过将声波波形转换成一连串的二进制数据来再现原始声音的, 实现这个步骤使用的设备是模/数转换器(A/D)它以每秒上万次的速率对声波进行采样, 每一次采样都记录下了原始模拟声波在某一时刻的状态,称之为样本。 将一串的样本连接起来,就可以描述一段声...

2018-10-12 20:10:08

阅读数:122

评论数:0

基于ffmpeg-4.0 SDK的音频重采样

/* * Copyright (c) 2012 Stefano Sabatini * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and...

2018-10-09 19:37:01

阅读数:36

评论数:0

基于ffmpeg-0.10 SDK的音频重采样

这个示例代码实现了基于FFmpeg-0.10 SDK的音频重采样,也可用于实现定点转浮点计算。   1. 声明 /* ffmpeg_sdk.h */ #include <stdio.h> #include <stdli...

2018-10-09 19:33:48

阅读数:19

评论数:0

FFmpeg命令行应用备忘录

三、将PCM转格式,并编码成AAC:  ./ffmpeg  -f s16le -ar 16000 -ac 1 -i input-s16le.pcm  -f f32le -ar 16000 -ac 1  -y  input-f32le.pcm   ./ffmpeg  -f f32le -ar 1...

2018-09-18 12:15:46

阅读数:71

评论数:0

面向对象设计原则实践:之五.迪米特原则,接口隔离原则

六、迪米特(第三者交互)原则 1. 定义 每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。   2. 分析 1) 迪米特法则就是指一个软件实体应当尽可能少的与其他实体发生相互作用。 这样,当一个模块修改时,就会尽量少的影响其他的模块,扩展会相对容易...

2018-08-27 09:39:53

阅读数:78

评论数:0

面向对象设计原则实践:之四.里氏代换原则

五、里氏代换原则(LSP--Liskov Substitution Principle) 1. 定义 a). 如果对每一个类型为S的对象o1,都有类型为T的对象o2, 使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有变化, 那么类型S是类型T的子类型。 b). 子...

2018-08-27 09:33:40

阅读数:43

评论数:0

面向对象设计原则实践:之三.单一职责原则,合成复用原则

三、单一职责原则(SRP--Single-Responsibility Principle ) 1.  定义 a).  一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。 b). 就一个类而言,应该仅有一个引起它变化的原因。    所谓职责,我们可以理解他为功能, 就是设...

2018-08-27 09:28:57

阅读数:88

评论数:0

面向对象设计原则实践.之二.依赖倒转原则

二、依赖倒转原则(DIP--Dependency Inversion Principle) 1.依赖倒转原则定义 a). 高层模块不应该依赖低层模块,它们都应该依赖抽象。 抽象不应该依赖于细节,细节应该依赖于抽象。 b). 要针对接口类/抽象类编程,不要针对实现编程。    高层模块包...

2018-08-27 09:23:40

阅读数:67

评论数:0

面向对象设计原则实践:之一.开放封闭原则

常用的面向对象设计原则包括7个,这些原则并不是孤立存在的,它们相互依赖,相互补充。 名称 易记符 设计原则及简介 实现关键 关系 重要性 开放封闭原则 ...

2018-08-27 09:16:47

阅读数:57

评论数:0

FFmpeg中的时间戳表示方法

ffmpeg中的时间单位1. AV_TIME_BASEffmpeg中的内部计时单位(时钟基),ffmepg中的所有时间表示的单位,比如AVStream中的duration, 即表示这个流的长度为duration个AV_TIME_BASE。AV_TIME_BASE定义为:#define ...

2018-06-16 11:55:35

阅读数:301

评论数:0

如何开启ffmpeg库中的日志

2.  在C++类中,实现ffmpeg库日志的打开 // ffmpeg_sdk.h #pragma once #include <stdio.h> #include <stdlib.h> ...

2018-06-16 11:53:44

阅读数:361

评论数:0

MP4文件格式带数据详解

一、概述MP4文件封装格式,对应的标准为ISO/IEC 14496-12,即信息技术 视听对象编码的第12部分:ISO 基本媒体文件格式(Information technology Coding of audio-visual objects Part 12: ISO base media fi...

2018-06-16 10:42:56

阅读数:412

评论数:0

使用FFmpeg的SDK库实现将H.264流封装进MP4文件时全局SPS、PPS与流中SPS、PPS冲突的问题

一、问题1. 使用FFmpeg的SDK库实现将H.264流封装进MP4文件的源码大致如下:char* filename = "./test.mp4"AVOutputFormat *fmt;AVStream* video_st;AVFormatContext *a...

2018-06-16 10:07:00

阅读数:183

评论数:0

linux C++ 类的静态成员函数与非静态成员函数的互访

前言:对象与对象之间的成员变量是相互独立的。要想共用数据,则需要使用静态成员和静态方法。只要在类中声明静态成员变量,即使不定义对象,也可以为静态成员变量分配空间,进而可以使用静态成员变量。(因为静态成员变量在对象创建之前就已经被分配了内存空间)静态成员变量虽然在类中,但它并不是随对象的建立而分配空...

2018-02-12 18:04:16

阅读数:270

评论数:0

linux C++ 设计模式:单例、单例继承详解

一、单例1.1. 意图保证一个类仅有一个实例,并提供一个访问它的全局访问点。1.2. 动机如何保证一个类只有一个实例,并且这个实例易于被访问呢?如希望系统中只有一个脱机打印机实例,只有一个访问配置文件的实例时。如果使用全局变量,将使得一个对象可以被访问,但它不能防止你实例化多个对象。一个更好的办法...

2018-02-12 17:12:32

阅读数:215

评论数:0

回调函数原理及应用实例

1. 什么是回调  软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类: 同步调用、回调和异步调用。 同步调用, 是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用; 回调,     是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的...

2018-01-14 23:34:56

阅读数:815

评论数:0

linux下如何定位CPU占用高的进程的问题点

一、Top+pstack+gdb的组合拳 闲言少述,先直接上操作实例,再做原理讲解。 1.1 用top命令找到最占CPU的进程 >top   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND ...

2018-01-12 09:28:34

阅读数:1445

评论数:0

互斥锁的应用与pthread_mutex_destory的出错

一、互斥锁的应用 互斥量从本质上说就是一把锁, 提供对共享资源的保护访问。 1. 初始化: 在Linux下, 线程的互斥量数据类型是pthread_mutex_t.  在使用前, 要对它进行初始化:   对于静态分配的互斥量, 可以把它设置为PTHREAD_MUTEX_INITIALIZ...

2017-12-29 23:41:47

阅读数:1216

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭