多媒体
zorro_wu
本人喜欢广结朋友
展开
-
Ffmpeg和SDL教程(七)快进快退
处理快进快退命令现在我们来为我们的播放器加入一些快进和快退的功能,因为如果你不能全局搜索一部电影是很让人讨厌的。同时,这将告诉你av_seek_frame函数是多么容易使用。我们将在电影播放中使用左方向键和右方向键来表示向后和向前一小段,使用向上和向下键来表示向前和向后一大段。这里一小段是10秒,一大段是60 秒。所以我们需要设置我们的主循环来捕捉键盘事件。然而当我们捕捉到键盘事件后我们不转载 2012-02-29 22:27:46 · 559 阅读 · 0 评论 -
Ffmpeg和SDL教程(六)同步音频
同步音頻现在我们已经有了一个比较像样的播放器。所以让我们看一下还有哪些零碎的东西没处理。上次,我们掩饰了一点同步问题,也就是同步音频到视频而不是其它的同步方式。我们将采用和视频一样的方式:做一个内部视频时钟来记录视频线程播放了多久,然后同步音频到上面去。后面我们也来看一下如何推而广之把音频和视频都同步到外部时钟。 生成一个视频时钟现在我们要生成一个类似于上次我们的声音时钟的视频时钟转载 2012-02-29 22:26:36 · 392 阅读 · 0 评论 -
ffmpeg和SDL教程(一)文件读取和保存
概要:电影文件有很多基本的组成部分。首先,文件本身被称为容器Container,容器的类型决定了信息被存放在文件中的位置。AVI和Quicktime就是容器的例子。接着,你有一组流,例如,你经常有的是一个音频流和一个视频流。(一个流只是一种想像出来的词语,用来表示一连串的通过时间来串连的数据元素)。在流中的数据元素被称为帧Frame。每个流是由不同的编码 器来编码生成的。编解码器 描述了实际的数据转载 2012-02-29 21:47:45 · 679 阅读 · 0 评论 -
ffmpeg和SDL教程(二)输出到屏幕
SDL和视频为了在屏幕上显示,我们将使用SDL.SDL是Simple Direct Layer的缩写。它是一个出色的多媒体库,适用于多平台,并且被用在许多工程中。你可以从它的官方网站的网址 http://www.libsdl.org/ 上来得到这个库的源代码或者如果有可能的话你可以直接下载开发包到你的操作系统中。按照这个指导,你将需要编译这个库。(剩下的几个指导中也是一样)SDL库中有许多转载 2012-02-29 22:01:22 · 417 阅读 · 0 评论 -
Ffmpeg和SDL教程(五)如何同步视频
PTS和DTS幸运的是,音频和视频流都有一些关于以多快速度和什么时间来播放它们的信息在里面。音频流有采样,视频流有每秒的帧率。然而,如果我们只是简单的通过数帧和乘以帧率的方式来同步视频,那么就很有可能会失去同步。于是作为一种补充,在流中的包有种叫做DTS(解码时间戳)和PTS(显示时间戳)的机制。为了这两个参数,你需要了解电影存放的方式。像MPEG等格式,使用被叫做B帧(B表示双向bidrec转载 2012-02-29 22:25:43 · 364 阅读 · 0 评论 -
FFmpeg和SDL教程(三)播放声音
视频现在我们要来播放声音。SDL也为我们准备了输出声音的方法。函数SDL_OpenAudio()本身就是用来打开声音设备的。它使用一个叫做SDL_AudioSpec结构体作为参数,这个结构体中包含了我们将要输出的音频的所有信息。 在我们展示如何建立之前,让我们先解释一下电脑是如何处理音频的。数字音频是由一长串的样本流组成的。每个样本表示声音波形中的一个值。声音按照一个特定的采样率来进行转载 2012-02-29 22:20:47 · 572 阅读 · 0 评论 -
Ffmpeg和SDL教程(四)创建线程
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 audio.转载 2012-02-29 22:24:03 · 419 阅读 · 0 评论 -
Ffmpeg和SDL教程(八)软件缩放
软件缩放库libswscale近来ffmpeg添加了新的接口:libswscale来处理图像缩放。但是在前面我们使用img_convert来把RGB转换成YUV12,我们现在使用新的接口。新接口更加标准和快速,而且我相信里面有了MMX优化代码。换句话说,它是做缩放更好的方式。我们将用来缩放的基本函数是sws_scale。但一开始,我们必需建立一个SwsContext的概念。这将让我们进转载 2012-02-29 22:28:29 · 582 阅读 · 0 评论 -
FFmpeg快速入门
FFmpeg简介 FFmpeg是什么? FFmpeg是用于录制、转换和流化音频和视频的完整解决方案, 包括 libavcodec,一套领先的音/视频编解码类库。FFmpeg 在Linux上开发,当可以在大多数操作系统下编译,包括Windows。 Note FFmpeg对GCC的依赖很强,所以就算是在Windows上, 用VC编译FFmpeg也不是一件轻松的事情。请尽转载 2012-02-29 22:53:59 · 460 阅读 · 0 评论