推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家:Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习
做音视频开发必然要学习的一个开源项目那一定是 FFmpeg。我们可以使用 FFmpeg 来进行多种格式音频和视频的录制、转换、流处理功能。
接下来用几篇文章简单入门一下 FFmpeg,包括基本的 ffmpeg ffplay 命令行的使用,以及常用 api的使用。
ffmpeg:用于音视频的编解码、格式转换以及拉流转推等媒体流处理工具。
ffplay:基于 SDL 与 ffmpeg 库实现的一个播放器。
ffprobe:音视频分析工具。
libavcodec:编解码库。
libavformat:音视频容器格式以及所支持的协议的封装和解析。
libavutil:提供了一些公共函数,工具库。
libavfilter:音视频的滤镜库,如视频加水印、音频变声等。
libavdevice:支持众多设备数据的输入与输出,如读取摄像头数据、屏幕录制。
libswresample:提供音频的重采样工具库。
libswscale:提供对视频图像进行色彩转换、缩放以及像素格式转换,如图像的 YUV 转换。
libpostproc:多媒体后处理器。
\FFmpeg\doc\examples\demuxing_decoding.c
\FFmpeg\doc\examples\decode_video.c
\FFmpeg\doc\examples\encode_video.c
\FFmpeg\doc\examples\decode_audio.c
\FFmpeg\doc\examples\encode_audio.c
\FFmpeg\doc\examples\hw_decode.c
\FFmpeg\doc\examples\muxing.c
ffmpeg 最牛逼的地方是支持丰富的流媒体协议,以及音视频编解码格式。不算太复杂,参考**\doc\examples** 下面的 demo程序可以很方便的入门基于 ffmpeg api二次开发。
耐心一点,多看demo 多读文档。
2022/02/11 开启《FFmpeg入门到放弃》系列文章。
个人工作中的一些经验分享,难免有错误的地方,如果有欢迎指出。
若有帮助幸甚。
- 本文部分技术点出处:FFmpeg/WebRTC/RTMP/NDK/Android音视频流媒体高级开发
- ffmpeg change log :https://github.com/FFmpeg/FFmpeg/blob/master/Changelog
- FFmpeg官方文档:https://ffmpeg.org/documentation.html