14 北雨南萍

尚未进行身份认证

我要认证

且夫水之积不厚,则其负大舟也无力。风之积也不厚,则其负大翼也无力。

等级
TA的排名 789

gtest应用指南

前言gtest是Google的开源C++单元测试框架,是遵循 New BSD License (可用作商业用途)的开源项目。google内部的大多数C++代码都已经使用这个测试框架进行单测,知名的使用gtest进行测试的项目有chromium , webrtc, quic等。gtest 可以支持绝大多数大家所熟知的平台。Gtest的使用较为方便,它可以自动记录下所有定义好...

2020-04-13 12:59:24

Google protocol-buffer详解与示例应用

1. Protocol Buffer 简介Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 个 .proto 文件。他们用于 RPC 系统和持续数据存储系统。Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用...

2020-03-16 10:51:19

FFmpeg新旧接口对照使用一览

从FFmpeg 3.0 开始 , 使用了很多新接口,在一些基本用法上,编译会看见很多的warning,类似“ warning: ‘AVStream::codec’ is deprecated (declared at /usr/local/ffmpeg/include/libavformat/avformat.h:880) [-Wdeprecated-declarations]out_...

2019-05-24 15:59:51

如何将libavcodec也静态编译并可链接到.so中

1 问题与解决使用ffmpeg SDK的静态库进行链接到动态库时,会出现如下的报错:/usr/bin/ld: /usr/local/lib/libavformat.a(allformats.o): relocation R_X86_64_32 against `ff_a64_muxer' can not be used when making a shared object; recomp...

2019-05-21 19:35:22

FFmpeg-4.0 的filter机制的架构与实现.之三 Filter实现的源码分析

五、Filter实现的源码分析5.1 滤镜的回调函数的调用流程,以单滤镜设置(如 -vf "delogo")为例init()query_format(); // 输入输出的格式查询: 列出滤镜支持的格式列表config_input();config_output();for (;;) {request_frame();filter_frame();}unin...

2018-12-28 11:18:29

FFmpeg-4.0 的filter机制的架构与实现.之二 结构体关系与定义

4. Filter的结构体关系图与定义4.1 结构体间的关系图filter涉及的结构体,主要包括:> FilterGraph, AVFilterGraph> InputFilter, InputStream, OutputFilter, OutputStream> AVFilter, AVFilterContext> AVFilterLink&g...

2018-12-28 11:09:36

FFmpeg-4.0 的filter机制的架构与实现.之一 Filter原理

一、FFmpeg filter的原理1. 引言及示例FFmpeg中的libavfilter提供了一整套的基于filter的机制。filter本身是一个插件的形式,可以快速的组装需要的效果。比如下面的filter,可以实现视频的水平镜像效果。ffplay.exe sample.rmvb -vf hflip 1.1 FFmpeg为什么重新定义filter API?FFm...

2018-12-28 09:26:56

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

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

2018-10-24 17:44:54

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

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

2018-10-12 20:11:41

FFmpeg的音频处理详解

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

2018-10-12 20:10:08

基于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 associated documentation files (the "Software"), t...

2018-10-09 19:37:01

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

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

2018-10-09 19:33:48

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 16000 -ac 1 -i input-f32le.pcm -strict -2 -a:b 64000...

2018-09-18 12:15:46

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

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

2018-08-27 09:39:53

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

五、里氏代换原则(LSP--Liskov Substitution Principle)1. 定义a). 如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有变化,那么类型S是类型T的子类型。b). 子类型必须能够替换它的基类型。LSP又称里氏替换原则。  对于这个原则,通俗一些的理解就是,父类...

2018-08-27 09:33:40

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

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

2018-08-27 09:28:57

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

二、依赖倒转原则(DIP--Dependency Inversion Principle)1.依赖倒转原则定义a). 高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。b). 要针对接口类/抽象类编程,不要针对实现编程。  高层模块包含了一个应该程序中的重要的策略选择和业务模型,正是这些高层模块才使得其所有的应用程序区别于其他,...

2018-08-27 09:23:40

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

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

2018-08-27 09:16:47

FFmpeg中的时间戳表示方法

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

2018-06-16 11:55:35

如何开启ffmpeg库中的日志

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

2018-06-16 11:53:44

查看更多

勋章 我的勋章
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。