随笔分类 - FFmpeg
摘要:在使用FFmpeg开发时,使用AVFilter的流程较为复杂,涉及到的数据结构和函数也比较多,那么使用FFmpeg AVFilter的整体流程是什么样,在其执行过程中都有哪些步骤,需要注意哪些细节?这些都是需要我们整理和总结的。 首先,我们需要引入三个概念结构体:AVFilterGraph 、AVF
阅读全文
摘要:在学习和使用FFmpeg的时候,我们经常会去查找很多资料并加以实践,但是目前存在一个问题困扰着不少刚接触音视频的同学,那就是FFmpeg的弃用API如何调整。 我们知道FFmpeg中所谓的“被声明为已否决”就是因为函数或者结构体属性被标示为attribute_deprecated,很有可能在未来的版
阅读全文
摘要:在上篇文章 Visual Studio 开发(一):安装配置Visual Studio Code 中,我们讲了一下如何配置VS CODE,来编写和调试C的代码。如果你已经使用VS Code回顾和复习好C相关的知识了,并且有想深入学习FFmpeg的方法,那么可以看看这篇文章,相信对你会很有帮助。 一、
阅读全文
摘要:在Linux/Mac下编译 ffmpeg是非常方便的。但要在 Windows下编译 ffmpeg还真要花点时间。以下就是在 Windowns下编译ffmpeg的步骤: 一、安装Cygwin 一、安装Cygwin 在windows下安装 ffmpeg 的最好方式就是使用Cygwin。 Cygwin是什
阅读全文
摘要:一、概述 在Android开发中,我们对一些音视频的处理比较无力,特别是编辑音视频这部分。而且在Android上对视频编辑方面,几乎没有任何API做支持,MediaCodec(硬编码)也没有做支持。那怎么办呢?在FFmpeg命令行工具学习(三):媒体文件转换工具ffmpeg中我们知道ffmpeg命令
阅读全文
摘要:一、FFmpeg 播放视频的基本流程整理 播放流程: video.avi(Container) -> 打开得到 Video_Stream -> 读取Packet -> 解析到 Frame -> 显示Frame。 Container:在音视频中的容器,一般指的是一种特定的文件格式(如 AVI/QT )
阅读全文
摘要:FFMPEG中结构体很多。最关键的结构体可以分成以下几类: 解协议(http,rtsp,rtmp,mms) AVIOContext,URLProtocol,URLContext主要存储视音频使用的协议的类型以及状态。URLProtocol存储输入视音频使用的封装格式。每种协议都对应一个URLProt
阅读全文
摘要:在上文FFmpeg 结构体学习(六): AVCodecContext 分析我们学习了AVCodec结构体的相关内容。本文,我们将讲述一下AVIOContext。 AVIOContext是FFMPEG管理输入输出数据的结构体。下面我们来分析一下该结构体里重要变量的含义和作用。 一、源码整理 首先我们先
阅读全文
摘要:在上文FFmpeg 结构体学习(五): AVCodec 分析我们学习了AVCodec结构体的相关内容。本文,我们将讲述一下AVCodecContext。 AVCodecContext是包含变量较多的结构体(感觉差不多是变量最多的结构体)。下面我们来分析一下该结构体里重要变量的含义和作用。 一、源码整
阅读全文
摘要:在上文FFmpeg 结构体学习(四): AVFrame 分析我们学习了AVFrame结构体的相关内容。本文,我们将讲述一下AVCodec。 AVCodec是存储编解码器信息的结构体。下面我们来分析一下该结构体里重要变量的含义和作用。 一、源码整理 首先我们先看一下结构体AVCodec的定义的结构体源
阅读全文
摘要:在上文FFmpeg 结构体学习(三): AVPacket 分析我们学习了AVPacket结构体的相关内容。本文,我们将讲述一下AVFrame。 AVFrame是包含码流参数较多的结构体。下面我们来分析一下该结构体里重要变量的含义和作用。 一、源码整理 首先我们先看一下结构体AVFrame的定义的结构
阅读全文
摘要:在上文FFmpeg 结构体学习(二): AVStream 分析我们学习了AVStream结构体的相关内容。本文,我们将讲述一下AVPacket。 AVPacket是存储压缩编码数据相关信息的结构体。下面我们来分析一下该结构体里重要变量的含义和作用。 一、源码整理 首先我们先看一下结构体AVPacke
阅读全文
摘要:在上文FFmpeg 结构体学习(一): AVFormatContext 分析我们学习了AVFormatContext结构体的相关内容。本文,我们将讲述一下AVStream。 AVStream是存储每一个视频/音频流信息的结构体。下面我们来分析一下该结构体里重要变量的含义和作用。 一、源码整理 首先我
阅读全文
摘要:在 FFmpeg 学习(六):FFmpeg 核心模块 libavformat 与 libavcodec 分析 中,我们分析了FFmpeg中最重要的两个模块以及重要的结构体之间的关系。 后面的文章,我们先不去继续了解其他模块,先针对在之前的学习中接触到的结构体进行分析,然后在根据功能源码,继续了解FF
阅读全文
摘要:一、libavformat介绍 libavformat的主要组成与层次调用关系如下图: AVFromatContext是API层直接接触到的结构体,它会进行格式的封装和解封装,它的数据部分由底层提供,底层使用了AVIOContext,这个AVIOContext实际上就是为普通的I/O增加了一层Buf
阅读全文
摘要:在上一篇文章 FFmpeg学习(四):FFmpeg API 介绍与通用 API 分析 中,我们简单的讲解了一下FFmpeg 的API基本概念,并分析了一下通用API,本文我们将分析 FFmpeg 在编解码时使用的API。 一、FFmpeg 解码 API 分析 1. avformat_open_inp
阅读全文
摘要:一、FFmpeg 编解码流程 FFmpeg编解码流程图如下,此图包含了整体的解封装、编解码的基本流程。 下面我们要介绍的术语及相关API都是围绕这个流程图展开的。 二、FFmpeg 相关术语 1. 容器/文件(Container/File):即特定格式的多媒体文件,比如MP4,flv,mov等。 2
阅读全文
摘要:一、安装ffmpeg 分为两种安装方式: 1. 命令行安装 2. 下载压缩包安装 去 http://evermeet.cx/ffmpeg/ 下载7z压缩包,解压缩后,将ffmpeg文件拷贝到一个地方,然后在bash_profile里面配置好环境变量 二、安装ffplay 分为两种安装方式: 1. 命
阅读全文
摘要:首先需要去FFmpeg的官网http://www.ffmpeg.org/去下载FFmpeg的源码,目前的版本号为FFmpeg3.3(Hilbert)。 下载的文件为压缩包,解压后得到ffmpeg-3.3目录。 修改ffmpeg-3.3的configure文件: 原因:如果不修改配置,直接进行编译出来
阅读全文
摘要:版权声明:转载请说明出处:http://www.cnblogs.com/renhui/p/6930221.html 转发RTSP流,这类需求一般出现于转发一些摄像头采集视频,并在摄像头上做RTSP Server,然后通过转发的设备将视频内容转发出去。或者是直接拉取网络上的一些RTSP服务器的内容流,
阅读全文