FFMpeg编解码
bsplover
热爱音视频编解码、网络编程
展开
-
ffmpeg文档
如何基于FFMPEG和SDL写一个少于1000行代码的视频播放器FFMPEG是一个很好的库,可以用来创建视频应用或者生成特定的工具。FFMPEG几乎为你把所有的繁重工作都做了,比如解码、编码、复用和解复用。这使得多媒体应用程序变得容易编写。它是一个简单的,用C编写的,快速的并且能够解码几乎所有你能用到的格式,当然也包括编码多种格式。唯一的问题是它的文档基本上是没有的。有一个单独的指导讲了它转载 2011-09-11 12:54:56 · 1079 阅读 · 0 评论 -
AAC ADTS格式分析
1.ADTS是个啥ADTS全称是(Audio Data Transport Stream),是AAC的一种十分常见的传输格式。记得第一次做demux的时候,把AAC音频的ES流从FLV封装格式中抽出来送给硬件解码器时,不能播;保存到本地用pc的播放器播时,我靠也不能播。当时崩溃了,后来通过查找资料才知道。一般的AAC解码器都需要把AAC的ES流打包成ADTS的格式,一般是在AAC转载 2012-04-04 21:03:39 · 31573 阅读 · 6 评论 -
FLV视频封装格式详解
OverviewFlash Video(简称FLV),是一种流行的网络格式。目前国内外大部分视频分享网站都是采用的这种格式.File Structure从整个文件上开看,FLV是由The FLV header 和 The FLV File Body 组成.1.The FLV headerFieldTypeComment转载 2012-04-04 21:13:00 · 21454 阅读 · 4 评论 -
Google VP8 Code 首次深入技术分析 1
The first in-depth technical analysis of VP8首次深入技术分析Back in my original post about Internet video, I made some initial comments on the hope that VP8 would solve the problems of web video by pr转载 2012-04-10 17:32:22 · 5938 阅读 · 0 评论 -
时间戳问题汇总
我刚接触流媒体不久, 现在遇到一个非常奇怪的问题,向各位大侠请假,请你们指点。 问题是这样的 用一个 VLC(流媒体客户端) 去请求流媒体服务器上的数据, 但是获得的数据播放速度明显快于1倍速,大概是 timestamp 不对, 不知道是服务器的错误,还是客户端解码时出错, 总感觉服务器那边有问题, 由于服务器端是客户端提供的,客户说是我们的问题, 我还不知道如何证明是谁的错。转载 2012-04-28 15:12:20 · 8363 阅读 · 2 评论 -
ISO/IEC 14496 文档内容 简介
ISO/IEC 14496是MPEG专家组制定的MPEG-4标准于1998年10月公布第1版,1999年1月成为国际标准,1999年12月公布了第2版,2000年初成为国际标准。全文分为21个部分:(1)ISO/IEC 14496-1系统部分,描述了组成一个场景的音频和视频成分之间的关系(2、3)ISO/IEC 14496-2视频部分和ISO/IEC 14496-3音频部分,分转载 2012-04-17 23:49:27 · 1496 阅读 · 0 评论 -
视频编解码博客
http://blog.yikuyiku.com/转载 2012-04-20 12:45:00 · 1156 阅读 · 0 评论 -
视频编码与封装方式详解
视频编码与封装方式详解 1. 编码方式和封装格式2. 视频编码标准两大系统MPEG-1MPEG-2MPEG-3MPEG-4ITU-TWMV3. 常用视频编码方式有Xvid(4. 常见存储封装格式5. 几种常见的转换格式设置6. 无损视频编码 1. 编码方式和封装格式常见的AVI、RMVB、MKV、ASF、WMV、MP4转载 2012-04-20 12:47:45 · 2132 阅读 · 0 评论 -
ES PS TS 流的区别
编码器出来的信号是ES流 ,复用器是把ES流变成TS流不知道这么理解对不对,还有我想问下数字卫星接收机出来的信号是SDI呢还是什么类型,模拟卫星接收机出来的又是什么类型呢 忽然之间脑袋一团浆糊~~~~请高手解答ES是原始码流,包含视频、音频或数据的连续码流。TS是传输流,是由固定长度为188字节的包组成,含有独立时基的一个或多个节目,适用于误码较多的环境。 在MPEG-2系统中转载 2012-04-20 12:10:50 · 1745 阅读 · 1 评论 -
ffmpeg的内部Video Buffer管理和传送机制
本文主要介绍ffmpeg解码器内部管理Video Buffer的原理和过程,ffmpeg的Videobuffer为内部管理,其流程大致为:注册处理函数->帧级释放->帧级申请->清空。1 注册get_buffer()和release_buffer()FFAPI_InitCodec()avcodec_alloc_context()avcodec_alloc_context2()a转载 2012-05-07 16:40:33 · 1937 阅读 · 0 评论 -
常见音频编码格式总结
AAC(Advanced Audio Coding)高级音频编码,是一种非常常见音频编码格式,出现于1997年,基于 MPEG-2的音频编码技术。由Fraunhofer IIS、杜比实验室、AT&T、Sony(索尼)等公司共同开发,目的是取代MP3格式.2000年,MPEG-4标准出现后,AAC 重新集成了其特性,加入了SBR技术和PS技术,为了区别于传统的 MPEG-2 AAC 又称转载 2012-04-04 21:04:32 · 12291 阅读 · 0 评论 -
YUV4:2:2与YUV4:2:0区别
YUV之4:2:2或4:2:0都是指的Y分量和UV分量在一个像素点中占有的平均比例。YUV422即Y:U:V=4:2:2,所以如下四个像素原始排列:Y0U0V0 Y1U1V1 Y2U2V2 Y3U3V3存为422格式后:Y0U0 Y1V0 Y2U2 Y3V2还原:Y0U0V0 Y1U0V0 Y2U2V2 Y3U2V2YUV420有点小小的不一样,刚刚的422你会发现水平方向上转载 2012-02-15 17:38:13 · 11316 阅读 · 1 评论 -
ffmpeg文档1
指导1:制作屏幕录像概要 电影文件有很多基本的组成部分。首先,文件本身被称为容器Container,容器的类型决定了信息被存放在文件中的位置。AVI和Quicktime就是容器的例子。接着,你有一组流,例如,你经常有的是一个音频流和一个视频流。(一个流只是一种想像出来的词语,用来表示一连串的通过时间来串连的数据元素)。在流中的数据元素被称为帧Frame。每个转载 2011-09-11 12:56:29 · 1178 阅读 · 0 评论 -
ffmpeg文档4
Spawning ThreadsOverviewLast time we added audio support by taking advantage of SDL's audio functions. SDL started a thread that made callbacks to a function we defined every time it needed audi转载 2011-09-11 13:01:53 · 1029 阅读 · 0 评论 -
ffmpeg文档5
指导5:同步视频 如何同步视频 前面整个的一段时间,我们有了一个几乎无用的电影播放器。当然,它能播放视频,也能播放音频,但是它还不能被称为一部电影。那么我们还要做什么呢? PTS和DTS 幸运的是,音频和视频流都有一些关于以多快速度和什么时间来播放它们的信息在里面。音频流有采样,视频流有每秒的帧率。然而,如果我们只是简单的通过数帧和乘以帧率的方式来同步视频,那么就很转载 2011-09-11 13:03:26 · 1146 阅读 · 0 评论 -
ffmpeg文档6
指导6:同步音频 同步音频 现在我们已经有了一个比较像样的播放器。所以让我们看一下还有哪些零碎的东西没处理。上次,我们掩饰了一点同步问题,也就是同步音频到视频而不是其它的同步方式。我们将采用和视频一样的方式:做一个内部视频时钟来记录视频线程播放了多久,然后同步音频到上面去。后面我们也来看一下如何推而广之把音频和视频都同步到外部时钟。 生成一个视频时钟 现在我们要生成转载 2011-09-11 13:05:41 · 881 阅读 · 0 评论 -
ffmpeg文档8
指导8:软件缩放 软件缩放库libswscale 近来ffmpeg添加了新的接口:libswscale来处理图像缩放。但是在前面我们使用img_convert来把RGB转换成YUV12,我们现在使用新的接口。新接口更加标准和快速,而且我相信里面有了MMX优化代码。换句话说,它是做缩放更好的方式。我们将用来缩放的基本函数是sws_scale。但一开始,我们必需建立一个SwsC转载 2011-09-11 13:07:16 · 1708 阅读 · 0 评论 -
ffmpeg文档3
指导3:播放声音 现在我们要来播放声音。SDL也为我们准备了输出声音的方法。函数SDL_OpenAudio()本身就是用来打开声音设备的。它使用一个叫做SDL_AudioSpec结构体作为参数,这个结构体中包含了我们将要输出的音频的所有信息。在我们展示如何建立之前,让我们先解释一下电脑是如何处理音频的。数字音频是由一长串的样本流组成的。每个样本表示声音波形中的一个值。声音按转载 2011-09-11 12:59:37 · 997 阅读 · 0 评论 -
ffmpeg文档2
指导2:输出到屏幕 SDL和视频 为了在屏幕上显示,我们将使用SDL.SDL是Simple Direct Layer的缩写。它是一个出色的多媒体库,适用于多平台,并且被用在许多工程中。你可以从它的官方网站的网址http://www.libsdl.org/上来得到这个库的源代码或者如果有可能的话你可以直接下载开发包到你的操作系统中。按照这个指导,你将需要编译这个库。(转载 2011-09-11 12:58:13 · 808 阅读 · 0 评论 -
ffmpeg文档7
指导7:快进快退 处理快进快退命令 现在我们来为我们的播放器加入一些快进和快退的功能,因为如果你不能全局搜索一部电影是很让人讨厌的。同时,这将告诉你av_seek_frame函数是多么容易使用。我们将在电影播放中使用左方向键和右方向键来表示向后和向前一小段,使用向上和向下键来表示向前和向后一大段。这里一小段是10秒,一大段是60秒。所以我们需要设置我们的主循环来捕捉键盘事件。然转载 2011-09-11 13:06:21 · 1028 阅读 · 0 评论 -
视频封装格式详解
比较常用的有以下封装格式1 AVIAVI容器-成熟的老技术 AVI是微软1992年推出用于对抗苹果Quicktime的技术,尽管国际学术界公认AVI已经属于被淘汰的技术,但是由于windows的通用性,和简单易懂的开发API,还在被广泛使用。 AVI的文件结构、分为头部, 主体和索引三部分. 主体中图像数据和声音数据是交互存放的。从尾部的索转载 2012-03-23 21:42:46 · 1302 阅读 · 0 评论 -
FFMPEG解码多线程
FFMPEG多线程编码器一般以在Slice内分功能模块进行多线程编码,如h263,h263P,msmpeg(v1, v2, v3),wmv1。包含以下几个线程:(1)Pre_estimation_motion_thread运动估计前的准备;(2)Estimation_motion_thread运动估计;(3)Mb_var_thread宏块其他变量;(4)Encode_thread编码主线程。当然也转载 2012-05-07 16:45:33 · 8288 阅读 · 0 评论