精选FFmpeg编写一个简单播放器步骤.docx

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
精选FFmpeg编写一个简单播放器步骤

如何用FFm?peg编写一?个简单播放器?详细步骤FFmpeg?, 播放器, 编写FFMPEG?是一个很好的?库,可以用来创建?视频应用或者?生成特定的工?具。FFMPEG?几乎为你把所?有的繁重工作?都做了,比如解码、编码、复用和解复用?。这使得多媒体?应用程序变得?容易编写。它是一个简单?的,用C编写的,快速的并且能?够解码几乎所有你能?用到的格式,当然也包括编?码多种格式。唯一的问题是?它的文档基本?上是没有的。有一个单独的?指导讲了它的?基本原理另外?还有一个使用?doxyge?n生成的文档?。这就是为什么?当我决定研究? FFMPEG?来弄清楚音视?频应用程序是?如何工作的过?程中,我决定把这个?过程用文档的?形式记录并且?发布出来作为?初学指导的原?因。在FFMPE?G工程中有一?个示例的程序?叫作ffpl?ay。它是一个用C?编写的利用f?fmpeg来?实现完整视频?播放的简单播?放器。这个指导将从?原来Mart?in Bohme写?的一个更新版?本的指导开始?(我借鉴了一些?),基于Fabr?ice Bellar?d的ffpl?ay,我将从那里开?发一个可以使?用的视频播放?器。在每一个指导?中,我将介绍一个或者两?个新的思想并?且讲解我们如?何来实现它。每一个指导都?会有一个C源?文件,你可以下载,编译并沿着这?条思路来自己?做。源文件将向你?展示一个真正?的程序是如何?运行,我们如何来调?用所有的部件?,也将告诉你在?这个指导中技?术实现的细节?并不重要。当我们结束这?个指导的时候?,我们将有一个?少于1000?行代码的可以?工作的视频播?放器。在写播放器的?过程中,我们将使用S?DL来输出音?频和视频。SDL是一个?优秀的跨平台?的多媒体库,被用在MPE?G播放、模拟器和很多?视频游戏中。你将需要下载?并安装SDL?开发库到你的?系统中,以便于编译这?个指导中的程?序。这篇指导适用?于具有相当编?程背景的人。至少至少应该?懂得C并且有?队列和互斥量?等概念。你应当了解基?本的多媒体中?的像波形一类?的概念,但是你不必知?道的太多,因为我将在这?篇指导中介绍?很多这样的概?念。更新:我修正了在指?导7和8中的?一些代码错误?,也添加-lavuti?l参数。欢迎给我发邮?件到drange?r@,讨论关于程序?问题、疑问、注释、思路、特性等任何的?问题指导1:制作屏幕录像?源代码:tutori?al01.c概要电影文件有很?多基本的组成?部分。首先,文件本身被称?为容器Conta?iner,容器的类型决?定了信息被存?放在文件中的?位置。AVI和 Quickt?ime就是容?器的例子。接着,你有一组流,例如,你经常有的是?一个音频流和?一个视频流。(一个流只是一?种想像出来的?词语,用来表示一连?串的通过时间?来串连的数据?元素)。在流中的数据?元素被称为帧?Frame。每个流是由不?同的编码器来?编码生成的。编解码器描述?了实际的数据?是如何被编码?Coded和?解码DECo?ded的,因此它的名字?叫做CODE?C。Divx和 MP3就是编?解码器的例子?。接着从流中被?读出来的叫做?包 Packet?s。包是一段数据?,它包含了一段?可以被解码成?方便我们最后?在应用程序中?操作的原始帧?的数据。根据我们的目?的,每个包包含了完整的帧或?者对于音频来?说是许多格式?的完整帧。基本上来说,处理视频和音?频流是很容易?的:10 从video?.avi文件中?打开视频流v?ideo_s?tream20 从视频流中读?取包到帧中30 如果这个帧还?不完整,跳到2040 对这个帧进行?一些操作50 跳回到20在这个程序中?使用ffmp?eg来处理多?种媒体是相当?容易的,虽然很多程序?可能在对帧进?行操作的时候?非常的复杂。因此在这篇指?导中,我们将打开一?个文件,读取里面的视?频流,而且我们对帧?的操作将是把?这个帧写到一?个PPM文件?中。打开文件首先,来看一下我们?如何打开一个?文件。通过ffmp?eg,你必需先初始?化这个库。(注意在某些系?统中必需用ffmpeg?/avcode?c.h和ffmpeg?/avform?at.h来替换)#includ?e avcode?c.h#includ?e avform?at.h...int main(int argc, charg *argv[]) {av_reg?ister_?all();这里注册了所?有的文件格式?和编解码器的?库,所以它们将被?自动的使用在被?打开的合适格?式的文件上。注意你只需要?调用av_r?egiste?r_all()一次,因此我们在主?函数main?()中来调用它。如果你喜欢,也可以只注册?特定的格式和?编解码器,但是通常你没?有必要这样做

文档评论(0)

rovend + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档