北雨南萍

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

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

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

2018-12-28 11:18:29

阅读数 174

评论数 0

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

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

2018-12-28 11:09:36

阅读数 191

评论数 0

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

一、FFmpeg filter的原理 1. 引言及示例 FFmpeg中的libavfilter提供了一整套的基于filter的机制。 filter本身是一个插件的形式,可以快速的组装需要的效果。 比如下面的filter,可以实现视频的水平镜像效果。 ffplay.exe sample.r...

2018-12-28 09:26:56

阅读数 240

评论数 0

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

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

2018-10-24 17:44:54

阅读数 1060

评论数 10

基于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

阅读数 181

评论数 0

FFmpeg的音频处理详解

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

2018-10-12 20:10:08

阅读数 1902

评论数 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

阅读数 184

评论数 2

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

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

2018-10-09 19:33:48

阅读数 62

评论数 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

阅读数 136

评论数 0

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

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

2018-08-27 09:39:53

阅读数 214

评论数 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

阅读数 106

评论数 0

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

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

2018-08-27 09:28:57

阅读数 332

评论数 1

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

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

2018-08-27 09:23:40

阅读数 110

评论数 0

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

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

2018-08-27 09:16:47

阅读数 111

评论数 0

FFmpeg中的时间戳表示方法

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

2018-06-16 11:55:35

阅读数 786

评论数 0

如何开启ffmpeg库中的日志

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

2018-06-16 11:53:44

阅读数 827

评论数 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

阅读数 1694

评论数 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

阅读数 400

评论数 0

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

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

2018-02-12 18:04:16

阅读数 426

评论数 0

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

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

2018-02-12 17:12:32

阅读数 404

评论数 0

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