【FFmpeg】 图像缩放

ffmpeg学习十三:图像数据格式的转换与图像的缩放 一.实现图像数据格式转换与图像缩放的三个重要函数ffmpeg实现图像数据格式的转换以及图片的缩放的功能,主要使用swscale.h中的三个函数: sws_getContext() sws_scale() sws_freeContext() 这三个函数的定义如下: 1.sws_getContext() : /** * Allocate and return an SwsContext 阅读详情

在用FFmpeg时遇到需要将截屏的图像(1920*1080)转换为 1024*768的问题。

//截屏的编码上下文 
//假设这里视频截图分辨率为1920*1080
AVCodecContext  *pVideoCodecCtx = m_pVideoFormatCtx->streams[nVideoIndex]->codec;
......
//输出的编码上下文
AVCodecContext* pOutCodecCtx = m_pOutputFormatCtx->streams[pThis->m_nVideoIndex]->codec
//设置输出分辨率
pOutCodecCtx->width = 1024;
pOutCodecCtx->width = 768;
......
//创建并初始化SwsContext
SwsContext * swsCtx = sws_getContext(
		pVideoCodecCtx->width, pVideoCodecCtx->height, pVideoCodecCtx->pix_fmt,
		pOutCodecCtx->width, pOutCodecCtx->height, pOutCodecCtx->pix_fmt,
		SWS_BICUBIC, NULL, NULL, NULL);
......
//源数据的frame
AVFrame* pFrame = avcodec_alloc_frame(); 
//输出数据的frame
AVFrame* pOutFrame = avcodec_alloc_frame();

int nSize = avpicture_get_size(pOutCodecCtx->pix_fmt, pOutCodecCtx->width, pOutCodecCtx->height);
uint8_t * pOutBuffer = (uint8_t *)av_malloc(nSize * sizeof(uint8_t));
avpicture_fill((AVPicture*)pOutFrame, pOutBuffer, pOutCodecCtx->pix_fmt,
	OutCodecCtx->width, pOutCodecCtx->height);

......
while (true)
{
	......
	av_read_frame(m_pVideoFormatCtx, &packet);
	......
	avcodec_decode_video2(pVideoCodecCtx, pFrame, &got_picture, &packet);
	......
	if (got_picture)
	{
		//注意这里的第五个参数是源数据的高度。
		sws_scale(swsCtx, pFrame->data, pFrame->linesize, 0, pVideoCodecCtx->height, 
			pOutFrame->data, pOutFrame->linesize);
		......
	}
	......
}

参考链接:

How to resize a picture using ffmpeg's sws_scale()?



ffmpeg--libswscale(图像缩放、颜色空间和像素格式转换操作) 主要函数: (1) sws_getContext():使用参数初始化SwsContext结构体。 可以用另一个接口函数sws_getCachedContext()取代。 (2) sws_scale():转换一帧图像。 (3) sws_freeContext():释放SwsContext结构体。 初始化方式2种: ①sws_getContext ②sws_al... 阅读详情

相关推荐

【图像处理】FFmpeg解码H264及swscale缩放详解

http://blog.youkuaiyun.com/gubenpeiyuan/article/details/19548019 主题 FFmpeg 本文概要:         本文介绍著名开源音视频编解码库ffmpeg如何解码h264码流,比较详细阐述了其h264码流输入过程,解码原理,解码过程。同时,大部分应用环境下,以原始码流视频大小展示并不是最佳方式,因此,开发者不仅仅需要对

ZhangPY的专栏 2202

ffmpeg 编码器AVCodecContext 的配置参数

转自:http://blog.youkuaiyun.com/chance_yin/article/details/16335625 1、先说一些基本的API [cpp] view plaincopy AVFormatContex * pFormatCtxEnc;   AVCodecContext * pCodecCtxEnc;      AV

doublefi123的专栏 1万+

豆包大模型API调用两种方法

ps: 因为是自用,所以这里图方便采用硬编码密钥的形式;如果有需求/安全风险,建议参考官方教程设置ARK_API_KEY环境变量的方式。坏处是:看别人的教程走了一大圈弯路hh;基础调用的话方法一就可以满足了,也比较方便快捷,容易上手。将 <Model> 替换为 Endpoint ID即可。创建就按照提示填写信息就行,需要实名认证,有免费额度。绿框框里就是Endpoint ID。

kkkkkkkkkasey的博客 1万+

FFmpeg零基础学习(三)——视频分辨率更改

视频分辨率更改

保持一颗敬畏之心,简单地调用C++,适当地向C++妥协,让以后的自己看懂代码,让别人看懂代码。 2340

扫码器USB键盘报告描述符数据格式解析

Byte0用于判断Shift是否按下,当按下时Byte0的Bit1会置1,即0x02,若未按下,Bit为0,即0x00。0x00 0x00 0x00 0x00 0x00 0x00 0x00--->>未按下Shift。0x00 0x00 0x00 0x00 0x00 0x00 0x00--->>按下Shift。0x00 0x04 0x00 0x00 0x00 0x00 0x00--->>输出A。0x00 0x04 0x00 0x00 0x00 0x00 0x00--->>输出a。

m0_65548585的博客 1142

声纹识别实战:用Python从零搭建一个简易声纹验证系统(附完整代码)

本文是一份详细的声纹识别实战指南,教你使用Python从零搭建一个简易的声纹验证系统。文章涵盖了从音频采集、预处理、MFCC特征提取,到基于高斯混合模型(GMM)的建模与验证全流程,并提供了完整的代码实现,帮助开发者快速掌握这项生物特征识别核心技术。

ik6789012的博客 231

FFmpeg源代码简单分析:常见结构体的初始化和销毁(AVFormatContext,AVFrame等)

本文简单分析FFmpeg常见结构体的初始化和销毁函数的源代码。常见的结构体在文章:《FFMPEG中最关键的结构体之间的关系》中已经有过叙述,包括:AVFormatContext:统领全局的基本结构体。主要用于处理封装格式(FLV/MKV/RMVB等)。AVIOContext:输入输出对应的结构体,用于输入输出(读写文件,RTMP协议等)。AVStream,AVCodecContext:视音频流对应

雷霄骅(leixiaohua1020)的专栏 7万+

【商业化】【msix打包】Python 应用打包为 MSIX 的正确流程:入口点问题与解决方案

发现用msix打包工具打包python做的exe时总找不到程序入口点,后来理了一下才发现自己误会了,需要先生成一个基本的setup.exe,msix的打包是基于这个初始的安装程序进行的。只需要点击Buile-》Compile,然后Open Output Folder就可以得到exe安装程序了。可以使用免费工具inno setup来创建初始安装包。其中{group}这样的变量会自动匹配,不用自己指定。如果点击Run会运行安装程序。

每日出拳老爷子的博客 1103

改变图像分辨率的几种方法

发现做深度学习的图像推理的时候,经常会需要对图像做scale操作,这里总结几种常用的方法。 1.FFMPEG方法 ffmpeg -i dog.jpg -vf scale=416:416 output_416x416.png ffmpeg -i dog.jpg -vf scale=416:416 output_416x416.jpg 2.python方法: from PIL import Image import os import sys import cv2 if __name__ =

tugouxp的专栏 7158

八大核心深度学习算法详解:从CNN到Transformer的完整指南

深度学习作为人工智能的核心技术,通过多层神经网络模拟人脑学习机制。其基本原理是利用反向传播算法优化网络参数,从数据中自动提取特征表示。这一技术价值在于能够处理高维复杂数据,在图像识别、自然语言处理等领域实现突破性进展。卷积神经网络(CNN)通过局部连接和权值共享有效处理图像数据,而Transformer架构基于自注意力机制革新了序列建模方式。在实际工程实践中,CNN广泛应用于计算机视觉任务,如图像分类和目标检测;Transformer则成为自然语言处理的主流架构,支撑着BERT、GPT等预训练模型。本文系统

aoe41606的博客 432

项目过程记录:ADS-B信号接收并显示(Ubuntu20.04+ANTSDR E310V2)

最近被安排做一个ADS-B信号接收的项目,拿到软件无线电模块(ANTSDR E310V2)后安装环境和软件真的太折磨了。。在此记录以下我走过的弯路,大家可以参考一下。

weixin_43627638的博客 5018

FFMPEG 图像拉伸缩放及数据格式转换

在做摄像头数据采集处理的时候,经常会遇到摄像头输入数据格式的不同,导致编码的时候需要再进行一次数据装换。在X264的编码中,是需要将YUV的Y,U,V 三个分量的数据独立出来。遇到一些YUV交叉分布的数据就比较的麻烦,需要自己设计算法对数据进行分离。但是在FFMPEG中,它就已经包含了图像格式转换的接口,同时它还带有图像拉伸缩放的功能。下面代码实现了任意数据格式的转换和任意尺寸的缩放。/*...

Biao 1万+

汽车ECU诊断入门:手把手教你用UDS协议(ISO14229)读取和清除故障码

本文详细介绍了如何使用UDS协议(ISO14229)进行汽车ECU诊断,包括故障码读取与清除的完整流程。从诊断环境搭建、UDS协议基础到实战案例分析,手把手教你掌握0x19诊断服务、安全访问机制等核心技能,适用于汽车电子工程师和诊断开发人员。

weixin_33701251的博客 454

ffmpeg 对图像数据格式以及图片缩放

利用ffmpeg进行图像数据格式的转换以及图片的缩放应用中,主要用到了swscale.h文件中的三个函数,分别是: struct SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat, int dstW, int dstH,

书弋江山的博客 2180

【DEIM创新改进】独家下采样创新改进篇 | ECCV 2026 | DEIM 引入FSD-Down频域-空间动态下采样,在下采样过程中保留小目标的高频信息、助力小目标检测、遥感小目标检测有效涨点

🔥本文提出了一种名为FSD-Down的频域-空间动态下采样模块,用于改进DEIM网络模型在小目标检测中的性能。FSD-Down通过小波分解显式保留低频语义和高频细节,结合分组卷积、动态通道权重和可学习缩放因子,自适应强化目标边缘与纹理特征。该模块能有效减轻传统下采样造成的频率混叠和细节丢失,提升对小目标、密集目标和低对比度目标的检测能力。实验表明,FSD-Down计算开销可控,在保持实时性的同时显著提升检测精度,特别是在VisDrone和AITODv2数据集上对小目标的检测性能提升显著。

Ai缝合怪、助力小伙伴高效发论文 82

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

FFmpeg:使用libswscale缩放图像(附完整源代码)

FFmpeg:使用libswscale缩放图像(附完整源代码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 432

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

使用 FFmpeg 的 libavutil 库来处理图像数据,对图像进行缩放和改变像素格式

*

weixin_37718867的博客 840

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android gif ffmpeg,ffmpeg - FFmpeg在Android问题中缩放并在图像上叠加多个图像/ GIF? - 堆栈内存溢出...

我正在尝试在图像上放置多个图像/ gif。 我曾尝试在图像或视频上放置单个gif,它的工作效果非常好,但无法同时缩放多个图像。 尝试以下代码,但出现错误:String[] command=new String[13];command[0]="-i";command[1]=input;command[2]="-i";command[3]=thumbnail2;command[4]="-i";comm...

weixin_39872395的博客 253

FFmpeg 像素格式转换与图像缩放实战

本文介绍了FFmpeg中libswscale库的核心函数sws_scale的使用方法,用于图像像素格式转换和尺寸调整。

cpp_learner的博客 334

使用ffmpeg进行图像格式转换以及图像缩放/sws_scale/linux/c++/c/rgb-yuv420

利用ffmpeg进行图像数据格式的转换以及图片的缩放应用中,主要用到了swscale.h文件中的三个函数,分别是:                  struct SwsContext *sws_getContext(int srcW, int srcH, enum AVPixelFormat srcFormat,

Broyal 2万+

FFMPEG下利用Intel VPP_QSV插件实现基于GPU的图像缩放和色彩空间转换 (一) - 命令行模式

最近做图像预处理的工作有点多。这里记录一下最近做OpenVINO推理的端到端优化时对FFMPEG做图像预处理的一点心得。 这几天碰到的问题是在准备给mobilenet-ssd神经网络推理前需要对视频文件做解码,然后缩放到需要的分辨率再转成RGB格式的数据,这样才能丢进网络里做推理。这个解码,缩放,色彩转换的流程通常是通过FFMPEG来实现的,通常的代码实现流程是 先创建硬件设备,因为我是intel集成显卡,所以我指定了QSV来做解码的硬件加速器 ret = av_hwdevice_ctx_crea.

sandmangu的专栏 4724
上一篇: 数据结构和算法【C语言】---单链表
下一篇: 【FFMPEG】打印 av_log 的输出
Kayee2012
博客等级 码龄18年 27粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值