FFmpeg 与媒体文件关系

1. 容器/文件(Container/File):即特定格式的多媒体文件,比如MP4,flv,mov等。

2. 媒体流(Stream):表示在时间轴上的一段连续的数据,比如一段声音数据、一段视频数据或者一段字母数据,可以是压缩的,也可以是非压缩的,压缩的数据需要关联特定的编解码器。

3. 数据帧/数据包(Frame/Packet):通常一个媒体流是由大量的数据帧组成的,对于压缩数据,帧对应着编解码器的最小处理单元,分属于不同媒体流的数据帧交错存储与容器之中。

4. 编解码器:编解码器是以帧为单位实现压缩数据和原始数据之间的相互转换的。

前面介绍的术语,就是FFmpeg中抽象出来的概念。其中:

1. AVFormatContext:就是对容器或者媒体文件层次的抽象。

2. AVStream:在文件中(容器里面)包含了多路流(音频流、视频流、字幕流),AVStream 就是对流的抽象。

3. AVCodecContext 与 AVCodec:在每一路流中都会描述这路流的编码格式,对编解码器格式以及编解码器的抽象就是AVCodecContext 与 AVCodec。

4. AVPacket 与 AVFrame:对于编码器或者解码器的输入输出部分,也就是压缩数据以及原始数据的抽象就是AVPacket与AVFrame。

5. AVFilter:除了编解码之外,对音视频的处理肯定是针对于原始数据的处理,也就是针对AVFrame的处理,使用的就是AVFilter。

原文地址:https://www.cnblogs.com/longyh/p/9410647.html

时间: 2024-08-06 20:42:11

FFmpeg 与媒体文件关系的相关文章

FFmpeg查看媒体文件信息

ffprobe64.exe -v quiet -print_format json -show_streams -show_format content.mp4 { "streams": [ { "index": 0, "codec_name": "h264", "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",

Android调用MediaScanner进行新产生的媒体文件扫描

有时候,我们拍了一张图片或录制了一段视频,图库应用默认没有将这些新产生的文件识别出来所以打开图库或视频播放器发现没有找到这些文件,需要调用MediaScanner扫描一下才会出来.从FFMPEG中找了一个类用来扫描媒体文件. public class FFMpegMediaScannerNotifier implements MediaScannerConnectionClient { private MediaScannerConnection mConnection; private Str

Java使用FFmpeg处理视频文件指南

Java使用FFmpeg处理视频文件指南 本文主要讲述如何使用Java + FFmpeg实现对视频文件的信息提取.码率压缩.分辨率转换等功能: 之前在网上浏览了一大圈Java使用FFmpeg处理音视频的文章,大多都讲的比较简单,楼主在实操过程中踩了很多坑也填了很多坑,希望这份详细的踩坑&填坑指南能帮助到大家: 1. 什么是FFmpeg 点我了解 2. 开发前准备 在使用Java调用FFmpeg处理音视频之前,需要先安装FFmpeg,安装方法分为两种: 引入封装了FFmpeg的开源框架 在系统中手

微信企业号上传媒体文件之服务器文件上传

微信企业号上传媒体文件之服务器文件上传 企业在使用接口时,对多媒体文件.多媒体消息的获取和调用等操作,是通过media_id来进行的. 通过接口https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=ACCESS_TOKEN&type=TYPE,企业可以上传多媒体文件. 注意,每个多媒体文件(media_id)会在上传到微信服务器3天后自动删除,以节省服务器资源. 通常文件上传是通过html表单进行的,通过HttpURLConn

linux目录与文件关系之我见

Linux的文件系统存取之我见 学习linux中,受到此前用windows的习惯影响,经常会混淆linux文件的概念. 今天认真梳理了一下linux目录与文件的关系. Linux 文件系统不同于windows ,所有目录和文件都由 / 根目录而衍生. 文件的管理是由系统统一分发的一个唯一的inode号来进行管理的. Linux中,一切皆为文件,/ 目录也不例外,也是一个文件,文件的内容则是逻辑上在/ 目录下存着的目录以及文件的元信息[包括inode节点,文件名,大小,权限,所有者等等] 如下图所

android媒体文件扫描

项目中可能有这样的需求:下载或导入.导出的图片.音乐等媒体文件,需要马上能在图库或本地视屏播放器中显示出来,或者要能在媒体数据库中查询到媒体文件的相关信息,这时我们就得主动通知系统扫描新的媒体文件了.我整理了一个扫描的工具类,分享下. 具体代码: public class MediaScanner { private volatile static MediaScanner instance; private MediaScanner(){ } public static MediaScanne

NET媒体文件操作组件TagLib

开源的.NET媒体文件操作组件TagLib#解析 人生得意须尽欢 莫使金樽空对月.写博客都会在吃饭后,每次吃饭都要喝上二两小酒,写博客前都要闲扯,这些都是个人爱好,改不掉了,看不惯的人,还望多多包含一下,有相同爱好的同学,咱们可以一起喝着小酒一边吹牛逼.总有人跟我说要做正事,但是这个世界什么叫做正事什么叫做闲事呢?见解各不相同吧,我自己喜欢的在我的世界就是正事. 万事急不得,需要等待时机和足够的积累方可一举成事. 接着前面的组件进行一个简单的介绍,在写博文之前,自己都会做一个简单的了解和应用,毕

批量改名媒体文件(递归实现)

写了个一方法,方便统一批量修改电视剧文件名: MediaFileUtils: package net.deniro.utils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import java.io.File; import java.util.Arrays; import java.util.List; import java.util.regex.Matcher; import j

获取iPod library中的媒体文件

[获取iPod library中的媒体文件] The Media Player framework provides facilities for playing movie, music, audio podcast, and audio book files. This framework also gives your application access to the iPod library, letting you find and play audio-based media it