使用ffmpeg的lib库缩放视频yuv宽高尺寸

本文介绍了如何使用ffmpeg的lib库编译并缩放解码后的YUV视频帧尺寸。在编译时需开启swscale选项,通过相关API实现视频数据的缩放处理,以匹配播放器显示的尺寸需求。

一、编译

关于ffmpeg lib库的编译,参考之前发布的文件“使用ffmpeg的lib库解码H264/H265”

configure的编译选项需要开启swscale,所以不能添加--disable-swscale,编译安装成功后会生成libswscale.a

播放器显示的视频宽高尺寸常常与视频帧数据的原始宽高尺寸不一致,可以使用ffmpeg对解码后的yuv数据进行缩放。


二、使用到的api

struct SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat,
                                  int dstW, int dstH, enum AVPixelFormat dstFormat,
                                  int flags, SwsFilter *srcFilter,
                                  SwsFilter *dstFilter, const double *param);
int sws_scale(struct SwsContext *c, const uint8_t *const srcSlice[],
              const int srcStride[], int srcSliceY, int srcSliceH,
              uint8_t *const dst[], const int dstStride[]);
void sws_freeContext(struct SwsContext *swsContext); 

三、demo程序

//src_pic 是解码后的yuv图像数据, dst_pic是缩放后得到的yuv图像数据, nDstW、nDstH 是指定宽高像素
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值