使用FFMPEG实现音频播放器
导言
因为公司项目的原因,要学习如何使用FFMPEG进行音频播放,折腾一圈发现,使用FFMPEG还真不是一件简单的事,更为可惜的是,当年在这方面的杰出人物—雷霄骅的英逝,这方面的文档愈发稀少,而FFMPEG相关代码不断更新,整理此文,算是对他的一种缅怀吧。
FFMPEG简介
Q:FFMPEG是什么?
A:FFMPEG是一个多媒体框架
Q:FFMPEG作为一个多媒体框架,有什么功能?
A:FFMEPG作为一个多媒体框架,是由多个模块组成的,每个模块都有对应的功能:
- libavutil是一个包含简化编程功能的库,其中包括随机数生成器,数据结构,数学代码,核心多媒体工具等更多东西。
- libavcodec是一个包含音频/视频解码器和编码器的库。
- libavformat是一个包含了多媒体格式的分离器和混流器的库。
- libavdevice是一个包含输入输出设备的库,用于捕捉和渲染很多来自常用的多媒体输入/输出软件框架的数据,包括Video4Linux,Video4Linux2,VfW和ALSA。
- libavfilter是一个包含媒体过滤器的库。
- libswscale是一个用于执行高度优化的图像缩放和颜色空间/像素格式转换操作的库。
- libswresample是一个用于执行高度优化的音频重采样,重新矩阵和取样格式转换操作的库。
FFMPEG入门资料
安装FFMPEG
对于如何安装FFMEPG,主要可以查看官方的安装指南,简要步骤如下:
- 安装gcc,yasm
- 下载源码
- 解压后运行./configure
- 执行make & make install
- 安装完成
编写代码
写在编码之前
在编写代码之前,请务必搞懂以下文章的内容:
可能在观看代码时有些不懂得地方,可以看这里:
或者查看手册中的具体说明:
代码
/*********************************
Author: Toudsour
Created Time: 一 3/20