FFmpeg的使用和开发

编程入门 行业动态 更新时间:2024-10-28 14:28:25

最近因为要音频处理的研究,音频开发,但是有一个难题就是怎么解析与提取音频的数据,于是就找到了FFmpeg。基本上只要做视频音频开发都离不开ffmpeg

1.什么是ffmpeg

引用wiki百科的解析.

FFmpeg是一个自由软件,可以运行音频和视频多种格式的录影、转换、流功能1,包含了libavcodec ─这是一个用于多个项目中音频和视频的解码器库,以及libavformat——一个音频与视频格式转换库。

  • ffmpeg的官网地址是:https://www.ffmpeg/
  • ffmpeg的Github项目地址是:https://github/FFmpeg/FFmpeg

1.1 组件

FFmpeg项目由以下几部分组成:

  • FFmpeg视频文件转换命令行工具,也支持经过实时电视卡抓取和编码成视频文件;
  • ffserver基于HTTPRTSP用于实时广播的多媒体服务器.也支持时间平移;
  • ffplaySDLFFmpeg库开发的一个简单的媒体播放器;
  • libavcodec一个包含了所有FFmpeg音视频编解码器的库。为了保证最优性能和高可复用性,大多数编解码器从头开发的;
  • libavformat一个包含了所有的普通音视格式的解析器和产生器的库。

1.2 谁在使用ffmpeg

  • 使用FFMPEG作为内核视频播放器:Mplayerffplay射手播放器暴风影音KMPlayerQQ影音...
  • 使用FFMPEG作为内核的Directshow Filter:ffdshowlav filters...
  • 使用FFMPEG作为内核的转码工具:ffmpeg格式工厂...

2.如何安装

FFmpeg可以在Windows、Linux还有Mac OS等多种操作系统中进行安装和使用。

这篇文章主要介绍其在Windows下面的安装:

  • 下载编译好的Windows版本:http://ffmpeg.zeranoe/builds/(与官网同步)

  • FFmpeg分为3个版本:StaticSharedDev
  • 前两个版本可以直接在命令行中使用。包含了三个exe:ffmpeg.exeffplay.exeffprobe.exe
  • Static版本中的exe体积较大,那是因为相关的Dll都已经编译进exe里面去了。
  • Shared版本中exe的体积相对小很多,是因为它们运行的时候还需要到相关的dll中调用相应的功能
  • Dev版本用于开发,里面包含了库文件xxx.lib以及头文件xxx.h

3.怎么使用

3.1 命令行工具的使用

3.11 ffmpeg.exe

用于转码的应用程序:

一个简单的转码命令 将input.avi转码成output.ts,并设置视频的码率为640kbps


ffmpeg -i input.avi -b:v 640k output.ts  

具体用法参考: ffmpeg参数中文详细解释
详细的使用说明(英文):http://ffmpeg/ffmpeg.html

3.12 ffplay.exe

主要用于播放的应用程序

播放test.avi


ffplay test.avi  

具体的使用方法可以参考:ffplay的快捷键以及选项
详细的使用说明(英文):http://ffmpeg/ffplay.html

3.13 ffprobe.exe

ffprobe是用于查看文件格式的应用程序。
详细的使用说明(英文):http://ffmpeg/ffprobe.html

3.2 使用ffmpeg库进行开发

To Be Continue...

参考资料 :

  • FFMPEG视音频编解码零基础学习方法
  • FFmpeg使用小记
  • FFmpeg官方文档
  • 如何在Windows上安装FFmpeg程序
  • ffmpeg教程 (一) 基本安装



作者:知曰
链接:https://www.jianshu/p/7ed3be01228b
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

更多推荐

FFmpeg的使用和开发

本文发布于:2023-06-13 19:54:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1398025.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:FFmpeg

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!