前言
这是一个很棒的问题,但是也非常难回答。因为FFmpeg在不停添加新的用例、工具和特性,这可以将FFmpeg扩展出无数个用途。很多公司使用FFmpeg,主要是因为它的开源属性(意味着任何人都能修改它),使其非常适合扩展到各种硬件规格(如各种形状、大小和规格的 Android 设备)的不同系统中。
在大部分Linux发行版本的仓库中都可以找到FFmpeg,并且主流桌面操作系统都可以进行安装。FFmpeg旨在帮助用户以最省力的方式来处理最广泛的媒体格式。因此,如果你正在寻找一种将FLAC文件转换为MP3的好方法,那就是它!
afc32f6c21882c92c4fe3765ac9ec194.jpegFFmpeg项目由 Fabrice Bellard在2000年创立,到目前为止,经历了21年的演化。FFmpeg社区和其他多媒体项目互动频繁,这也是它成功的原因之一。在创立之初,有很多开发者同时活跃在Mplayer项目,到目前为止,FFmpeg项目的开发者仍然与VLC、MPV、dav1d、x264等多媒体开源项目有着广泛的重叠。2004年以后,FFmpeg社区基本由Michael Niedermayer领导。
下面是FFmpeg的几个主要用途:
视频处理
FFmpeg可以用于各种视频处理任务,比如去噪、模糊视频、色彩转换,视频旋转、提取帧、缩放视频尺寸等。这些任务对于大部分视频处理、压缩和交付来说至关重要。
QQ图片20220613213805.gif视频压缩
FFmpeg对视频压缩的支持非常棒,很多流媒体公司的视频生产系统都在使用FFmpeg,这是一个公开的秘密。因为它真的非常稳定!
FFmpeg 包含为各种编解码器[如 JPEG、MPEG-1/2/4、H263+AAC (MPEG)、Theora (Ogg Vorbis)、AVS+、VP8 (WebM)、H.264/AVC、HEVC、AV1 等]提供接口的库,你可以根据需要使用它们来压缩、转码或解码视频。
支持视频打包
对于OTT系统厂商和开发者来说,FFmpeg还完全支持使用HLS和MPEG-DASH打包视频,它还可以配置为使用RTMP或其他协议来传输视频。
支持音频、视频容器格式
FFmpeg同样广泛支持各种容器格式,可以用来读、写及转换各种容器格式,比如avi、mp4、mp3、wma、wav、ts、flv、mkv以及许多其他未知格式。
ffprobe
FFmpeg 还可用于了解视频结构并对其进行分析。FFmpeg库构建了一个名为 ffprobe 的命令行,可用于查看和分析视频文件。你可以使用 ffprobe 从视频中提取各种元数据、计算帧数、查找 IDR 帧的位置等等。未来的文章中会详细介绍ffprobe的强大功能。
音视频学习的主要路线
image.png很多朋友也对FFmpeg的学习有误区,一上来就撸各种ffmpeg api,其实不然,我们可以先从FFmpeg命令行入手,我们提供了一个《Windows FFmpeg命令行搭建》的文档。从FFmpeg命令行入手可以让我们更明白FFmpeg开源项目能够做什么。
image.pngFFmpeg项目实战
使用FFmpeg可以做一个播放器和录屏器
image.png image.png流媒体实战
流媒体实战建议大家学习的顺序 RTMP->HLS->HTTP-FLV,有时间可以再学RTSP,为什么说有时间再学RTSP,是因为互联网行业用RTSP的极少。
image.png image.png
WebRTC中级开发
image.pngWebRTC高级开发
image.pngWebRTC SFU服务器开发
image.png上面这些需要学习的内容大多是音视频开发者们必会的技能,如果您觉得音视频自学难,没有学习的方向,大家可以对照上方的路线进行学习。
最后
在这里我也给大家分享一下音视频开发的学习资料及学习路线图,大家如果需要的话,可以点击【音视频】获取
《全套音视频入门到精通手册》
点击↑方领取2022最新最全学习提升资料包+面试题+学习视频,内容包括(C/C++,Linux,FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)等等
网友评论