摘要: 简介 FFmpeg是一个集录制、转换、音/视频编码解码功能为一体的完整的开源解决方案。 FFmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。FFmpeg支持MPEG、DivX、MPEG4、AC3、DV、 FLV等40多种编码,AVI、MPEG、OGG、Matroska、 阅读全文
posted @ 2013-10-31 16:20 Djzny 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 显示视频 这就是我们的视频线程。现在我们看过了几乎所有的线程除了一个--记得我们调用schedule_refresh()函数吗?让我们看一下实际中是如何做的: 函数SDL_AddTimer()是SDL中的一个定时(特定的毫秒)执行用户定义的回调函数(可以带一些参数user data)的简单函数。我们 阅读全文
posted @ 2013-10-31 16:05 Djzny 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 播放声音 现在我们要来播放声音。SDL也为我们准备了输出声音的方法。函数SDL_OpenAudio()本身就是用来打开声音设备的。它使用一个叫做SDL_AudioSpec结构体作为参数,这个结构体中包含了我们将要输出的音频的所有信息。 在我们展示如何建立之前,让我们先解释一下电脑是如何处理音频的。数 阅读全文
posted @ 2013-10-31 16:03 Djzny 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 同步音频 现在我们已经有了一个比较像样的播放器。所以让我们看一下还有哪些零碎的东西没处理。上次,我们掩饰了一点同步问题,也就是同步音频到视频而不是其它的同 步方式。我们将采用和视频一样的方式:做一个内部视频时钟来记录视频线程播放了多久,然后同步音频到上面去。后面我们也来看一下如何推而广之把音频和视频 阅读全文
posted @ 2013-10-31 16:03 Djzny 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 概要 电影文件有很多基本的组成部分。首先,文件本身被称为容器Container,容器的类型决定了信息被存放在文件中的位置。AVI和Quicktime就 是容器的例子。接着,你有一组流,例如,你经常有的是一个音频流和一个视频流。(一个流只是一种想像出来的词语,用来表示一连串的通过时间来串连的数据元 素 阅读全文
posted @ 2013-10-31 16:02 Djzny 阅读(426) 评论(0) 推荐(0) 编辑
摘要: 创建线程 Spawning Threads Overview Last time we added audio support by taking advantage of SDL's audio functions. SDL started a thread that made callbacks 阅读全文
posted @ 2013-10-31 16:02 Djzny 阅读(412) 评论(0) 推荐(0) 编辑
摘要: 意外情况 你们将会注意到我们有一个全局变量quit,我们用它来保证还没有设置程序退出的信号(SDL会自动处理TERM类似的信号)。否则,这个线程将不停地运 行直到我们使用kill -9来结束程序。FFMPEG同样也提供了一个函数来进行回调并检查我们是否需要退出一些被阻塞的函数:这个函数就是 url_ 阅读全文
posted @ 2013-10-31 16:01 Djzny 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 关于包Packets的注释 从技术上讲一个包可以包含部分或者其它的数据,但是ffmpeg的解释器保证了我们得到的包Packets包含的要么是完整的要么是多种完整的帧。 现在我们需要做的是让SaveFrame函数能把RGB信息定稿到一个PPM格式的文件中。我们将生成一个简单的PPM格式文件,请相信,它 阅读全文
posted @ 2013-10-31 16:00 Djzny 阅读(297) 评论(0) 推荐(0) 编辑