网站首页 > 技术文章 正文
1. FFmpeg的介绍与发展
在课程开始之前,老师首先向我们介绍了一下FFmpeg的发展,我们从而得知这是一个多媒体开源项目.
- 音视频多媒体处理开源框架,采用LGPL或GPL许可证。
- 有音视频采集、编码、解码、转码、复用、解复用、音视频分离、合并、流化、过滤器等功能。
- 可在iOS、Android、Window、Linux、Mac上运行.
- 包含音频/视频编解码库libavcodec,具有非常高的可移植性和编解码质量。
github中FFmpeg学习链接
1.1 学习页面
1.2 FFmpeg的安装以及必要的几点安装说明
Type ./configure to create the configuration. A list of configure options is printed by running configure --help.
configure can be launched from a directory different from the FFmpeg sources to build the objects out of tree. To do this, use an absolute path when launching configure, e.g. /ffmpegdir/ffmpeg/configure.
Then type make to build FFmpeg. GNU Make 3.81 or later is required.
Type make install to install all binaries and libraries you built.
我们只需要按照文档中的README.md以及INSTALL.md文件中的说明安装即可.
2. FFmpeg的组成
FFmpeg 工程内部根据功能划分了不同的模块,包括AVFormat、AVCodec、AVFilter、AVDevice,AVUtil、swresample、swscale。
下面我们针对每一个组成部分进行一些简短的介绍
相关学习资料推荐,点击下方链接免费报名,先码住不迷路~】
音视频免费学习地址:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
【免费分享】音视频学习资料包、大厂面试题、技术视频和学习路线图,资料包括(C/C++,Linux,FFmpeg webRTC rtmp hls rtsp ffplay srs 等等)有需要的可以点击788280672加群免费领取~
2.1 AVFormat
AVFormat是FFmpeg 的封装模块,其中实现了目前多媒体领域中的绝大多数媒体封装格式,包括封装和解封装,比如 MP4、FLV、MKV、TS等文件封装格式,RTMP、RTSP、HLS等网络协议封装格式。另外,也支持自定义封装格式。
2.2 AVCodec
AVCodec是FFmpeg的编解码模块,其中实现了目前多媒体领域中的绝大多数媒体编解码格式,包括编码和解码两大部分,比如MPEG4、H264、H265等视频格式,AAC、MP3等音频格式。另外,也支持自定义编解码格式。
2.3 AVFilter
AVFilter是FFmpeg 的滤镜模块,其中实现了目前通用的音频、视频、字幕等滤镜处理框架。
2.4 AVDevice
AVDevice是FFmpeg 的设备管理模块,包括音频设备和视频设备。
2.5 AVUtil
AvUtil是FFmpeg 的工具模块。
2.6 swresample
swresample是FFmpeg 的音频转换模块,包括音频重采样、声道数调整等。
2.7 swscale
swscale是FFmpeg 的视频图像转换模块,包括图像缩放、像素格式转换等。
3. FFmpeg的工具集
3.1 ffmpeg
ffmpeg是一个命令行工具,可用于格式转换、解码或电视卡即时编码等。是FFmpeg工具集中的编解码工具。
3.2 ffplay
ffplay是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示。是FFmpeg工具集中的播放器
3.3 ffprobe
ffprobe是一个多媒体流分析工具。 它从多媒体流中收集信息 并且以人类和机器可读的形式打印出来。是FFmpeg中的多媒体分析工具.
原文链接:https://juejin.cn/post/7128223894921560094
- 上一篇: FFmpeg从入门到精通
- 下一篇: 有哪些优秀的 C++ 代码库可以推荐学习?
猜你喜欢
- 2024-12-05 FFmpeg基础学习路线
- 2024-12-05 FFmpeg4.2.2 交叉编译
- 2024-12-05 有哪些优秀的 C++ 代码库可以推荐学习?
- 2024-12-05 FFmpeg从入门到精通
- 2024-12-05 音视频录制+RTMP直播推拉流
- 2024-12-05 FFmpeg/WebRTC/RTMP 音视频流媒体高级开发知识点总结
- 2024-12-05 FFmpeg如何提升—进阶版
- 2024-12-05 解决SRT稳定推流到SRS———网络丢包部分
- 2024-12-05 深入剖析ffplay.c之数据队列(1)
- 2024-12-05 一文读懂 Android FFmpeg 视频解码过程与实战分析
- 1509℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 538℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 497℃MySQL service启动脚本浅析(r12笔记第59天)
- 476℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 474℃启用MySQL查询缓存(mysql8.0查询缓存)
- 454℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 434℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 431℃MySQL server PID file could not be found!失败
- 最近发表
- 标签列表
-
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)