FFmpeg使用

模块名称主要功能描述常见应用场景举例
libavformat处理音视频的封装与解封装(如 MP4、FLV、MKV 等容器格式),以及支持多种网络协议(如 RTMP、HLS、HTTP等)126视频格式转换(如 MP4 转 FLV)、流媒体播放
libavcodec提供广泛的音视频编解码功能,支持 H.264、H.265、AAC、MP3 等多种编码格式,并能集成第三方编解码器126视频压缩、音频转码
libavfilter提供音视频滤镜处理框架,支持多种特效(如缩放、裁剪、水印、混音等),可组合使用126视频裁剪、添加水印、音频降噪
libavdevice管理输入输出设备(如摄像头、麦克风、屏幕捕获等)17从摄像头采集视频、录制麦克风音频
libavutil提供通用工具函数,包括数学计算、数据结构、日志管理等,是其他模块的基础147错误处理、内存管理、日志记录
libswscale处理图像缩放和像素格式转换(如 YUV 转 RGB、分辨率调整等)246视频分辨率调整、色彩格式转换
libswresample执行音频重采样、格式转换和通道布局调整246音频采样率转换(如 48kHz 转 44.1kHz)、立体声转单声道
libpostproc提供后期处理功能,如视频去块效应、去环效应等47视频后处理优化

1. 采样格式有哪些?

AVSampleFormat采样格式有`AV_SAMPLE_FMT_S16` 和 `AV_SAMPLE_FMT_U8` 均为整数格式,但前者是 16 位有符号,后者是 8 位无符号,属于不同的采样格式;而 `AV_SAMPLE_FMT_FLT`(交错浮点)和 `AV_SAMPLE_FMT_FLTP`(平面浮点)位数相同(32 位),但存储方式不同,也属于不同格式。

2.智能指针的get方法?

是获取到智能指针管理对象的指针,一般用在函数参数的传递。

3.对于音频的重采样的处理,一般是在解码后的步骤进行,可以用来适配硬件设备。

4.av_packet_unref函数作用是清理AVPacket中的所有空间数据,清理完毕后进行初始化操作,便于下次的重用。输入给编解码器进行编码的格式是要FLTP(平面格式)、FLT

5.reset函数主要用于只能指针,作用是重新设置对象的状态,释放原有资源并分配新的资源。

6.使用ffmpeg 的GDI捕获屏幕设置步骤

1. 使用av_find_input_format("gdigrab")查找Windows捕获专用设备

2.分配格式上下文,管理捕获流的核心结构体 avformat_alloc_context

3.avformat_open_input(),将找道的AVInputFormat与AVformatContext绑定

4.使用avformat_find_stream_info(avformatcontext),查找流信息

5.根据找到流信息,avfomat_find_decoder通过codec_id来查找对应的解码器,使用avcodec_alloc_context分配解码器上下文,配置解码器参数,之后使用avcodec_open2打开解码器;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值