Windows下FFmpeg快速入门

作者: A.TNG
邮箱: [email][email protected][/email]
参考: [url]http://www.ffmpeg.com.cn/[/url]

FFmpeg简介

FFmpeg是什么?
FFmpeg是用于录制、转换和流化音频和视频的完整解决方案, 包括 libavcodec ,一套领先的音/视频编解码类库。FFmpeg 在Linux上开发,当可以在大多数操作系统下编译,包括Windows。
Note
  • FFmpeg对GCC的依赖很强,所以就算是在Windows上, 用VC编译FFmpeg也不是一件轻松的事情。请尽量使用 GCC来编译FFmpeg,比较事半功倍。
FFmpeg的官方网址是 [url]http://ffmpeg.mplayerhq.hu[/url]/。
中文Wiki是 [url]http://www.ffmpeg.com.cn/[/url] ,资料很多。

FFmpeg的组成结构

FFmpeg主要由一下几个部分组成:
  • libavcodec: 一个包含了所有FFmpeg音视频编×××的库。 为了保证最优性能和高可复用性,大多数编×××从头开发的。
  • libavformat: 一个包含了所有的普通音视格式的解析器和 产生器的库。
  • 三个实例程序,这三个实例较为复杂,基本可以作为API使用手册:
    • ffmpeg:命令行的视频格式转换程序。
    • ffplay:视频播放程序。(需要SDL支持)
    • ffserver:多媒体服务器
了解完组成结构后,你会发现,如果你在寻找一种视频格式转换 的方式,那FFmpeg绝对是你的第一选择, libavcodec 则又是重 中之重。如果遇上API不会使用的情况,可以参考ffmpeg.c、ffplay.c、 ffserver.c、apiexample.c(解码)和output_example.c(编码)。

FFmpeg的编译

要使用FFmpeg,第一步就是编译,对于Linux上的用户,可以参考 [url]http://www.ffmpeg.com.cn/index.php/Ffmpeg%E7%BC%96%E8%AF%91%E8%AF%A6%E8%A7%A3[/url]
对于Windows用户,可以参考 [url]http://bbs.chinavideo.org/viewthread.php?tid=1897&extra=page%3D1[/url]
Note
  • 编译FFmpeg是一个复杂的过程,如果你想加快速度,领略FFmpeg 的风采,则可以跳过这一步,直接进入下一章节。

FFmpeg的SDK

FFmpeg是一个复杂的工程,第一步编译,特别是Windows下的编译 过程,更是复杂。 因此,好心的网友提供了Windows下编译好的 dll和lib库文件,以及相关的头文件。新手们则可直接下载,并开始编写 FFmpeg库的程序了。
  • SDK下载和编译参数可以参考 [url]http://www.ffmpeg.com.cn/index.php/SDK_Download[/url] 。
  • SDK入门宝典可以从 [url]http://www.bairuitech.com/html/ruanjianxiazai/20070713/49.html[/url] 下载。
以上两者已经足以完成FFmpeg的入门,最新的SDK版本是3.0, 对应于FFmpeg的版本是 r10087。新手们可以从编译源代码库中的 output_example.c开始,同时参考 SDK入门宝典
编译output_example.c的时候需要注意以下问题:
  • VC的是不支持C语言中的inline,所以可以把相关的inline删除。
  • 对于snprintf的支持,可以考虑从 [url]http://www.ijs.si/software/snprintf/[/url] 下载 snprintf.h和snprintf.c放入工程中。
准备了一个 output_example.c 的VC (2008 express edtion)工程,有兴趣的朋友 可以邮件至 tang.jiyu at gmail dot com 索取,或者访问 [url]http://tinyurl.com/5h4v8q[/url] 下载。
 
发表于 @ 2008年04月22日 22:31:00| 评论( loading... )| 收藏

新一篇: J2ME开发中的构建管理 (Build Management in J2ME) | 旧一篇: Linux上编译和安装GCC

评论

# ffmpeg工程组 发表于2008-04-24 09:05:42  IP: 121.8.209.*
目前发布的SDK V3.2是最新的,稳定的版本。

[url]http://www.bairuitech.com/html/ruanjianxiazai/index.html[/url]
# jiyucn 发表于2008-04-24 10:00:45  IP: 211.94.155.*
呵呵,多谢,多谢。太棒了。
# uthz 发表于2008-08-26 15:18:59  IP: 139.18.25.*
编译output_example.c的时候需要注意以下问题:

* VC的是不支持C语言中的inline,所以可以把相关的inline删除。
* 对于snprintf的支持,可以考虑从 [url]http://www.ijs.si/software/snprintf/[/url] 下载 snprintf.h和snprintf.c放入工程中。

可以加上这两句
#define inline _inline
#define snprintf _snprintf_s