FFmpeg解码32k大分辨率出现如下错误:Picture size 32768x32768 is invalid

最近找到一张32k的jpeg图片,尝试用ffmpeg来进行解码,命令如下:

ffmpeg -i enflame_32768-32768-420.jpg  32.yuv

结果出现Picture size 32768x32768 is invalid的错误:
在这里插入图片描述
找到报错的代码文件imgutils.c,以及函数:

int av_image_check_size2(unsigned int w, unsigned int h, int64_t max_pixels, enum AVPixelFormat pix_fmt, int log_offset, void *log_ctx)
{ImgUtils imgutils = {.class      = &imgutils_class,.log_offset = log_offset,.log_ctx    = log_ctx,};int64_t stride = av_image_get_linesize(pix_fmt, w, 0);if (stride <= 0)stride = 8LL*w;stride += 128*8;if ((int)w<=0 || (int)h<=0 || stride >= INT_MAX || stride*(uint64_t)(h+128) >= INT_MAX) {av_log(&imgutils, AV_LOG_ERROR, "Picture size %ux%u is invalid\n", w, h);return AVERROR(EINVAL);}if (max_pixels < INT64_MAX) {if (w*(int64_t)h > max_pixels) {av_log(&imgutils, AV_LOG_ERROR,"Picture size %ux%u exceeds specified max pixel count %"PRId64", see the documentation if you wish to increase it\n",w, h, max_pixels);return AVERROR(EINVAL);}}return 0;
}

下面是gdb中的调用栈:
可以看到这一次是在avformat_find_stream_info中调用了ffmpeg默认的解码器mjpeg,但是这个解码器内部不支持导致的。
在这里插入图片描述
下面打印了一下栈中的参数:

在这里插入图片描述
可以看到,w,h都为32768,但是pixfmt为AV_PIX_FMT_NONE,如果是这样的话,stride就会要成为一个默认最大值,stride = 8LL*w;,然后会进入到下面的判断语句中,导致size invalid,那么第一个想到的是pix_fmt提前加上会不会就好了呢。

    if ((int)w<=0 || (int)h<=0 || stride >= INT_MAX || stride*(uint64_t)(h+128) >= INT_MAX) {av_log(&imgutils, AV_LOG_ERROR, "Picture size %ux%u is invalid\n", w, h);return AVERROR(EINVAL);}

继续看调用代码发现这个参数是写死的,就是AV_PIX_FMT_NONE,根本无法改变。

int av_image_check_size(unsigned int w, unsigned int h, int log_offset, void *log_ctx)
{return av_image_check_size2(w, h, INT64_MAX, AV_PIX_FMT_NONE, log_offset, log_ctx);
}

通过计算发现32k(32768)失败的原因是超过了int_max了:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1549562.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOv8教程系列:四、使用yolov8仓库训练自己的图像分类数据集(含推理预测)

YOLOv8教程系列&#xff1a;四、使用yolov8仓库训练自己的图像分类数据集&#xff08;含推理预测&#xff09; 0.引言 Yolov8是最新一代的You Only Look Once目标检测模型,它由Ultralytics研究团队在2022年开发。相比于之前的Yolo版本,Yolov8在速度和精度上都有很大的提升。 …

IE实现PDF在线预览功能

背景&#xff1a; chrome、firefox、edge浏览器默认可以在线预览pdf的&#xff0c;因为chrome默认自带PDF reader的 但是IE这个微软早已经放弃垃圾浏览器&#xff0c;国内还有好多大型国有企业在用&#xff0c;所以还得做兼容 步骤 1、下载安装 Adobe Reader&#xff08; Adb…

Ubuntu64位安装Adobe Reader 9.5.5

Aodbe Reader在Linux下的效果比Foxit Reader&#xff08;福昕阅读器&#xff09;要好一些&#xff0c;尤其对于中文文档而言。本文介绍Adobe Reader在Ubuntu下的安装&#xff0c;文章《Ubuntu12.04 64位安装Foxit Reader》则介绍Foxit Reader的安装。 Aodbe Reader的安装步骤如…

Androider学C/C++—(1)环境搭建和基本操作,c语言指针练习,输出占位符

环境搭建 IDE下载地址&#xff1a; https://www.visualstudio.com/zh-hans/downloads/选择&#xff1a;Visual Studio Community 2017 适用于学生、开源和个人开发人员的功能完备的免费 IDE无脑下一步&#xff0c;然后到这里的时候注意选择。我这么选主要是因其稍微显得轻便…

实战:Windows 2008 WDS使用参考计算机创建安装映像

12.3 实战&#xff1a;使用参考计算机创建安装映像 您可以将配置好用户工作环境的计算机作为参考计算机&#xff0c;使用参考计算机创建安装映像&#xff0c;这样使用WDS服务安装的操作系统和参考计算机的环境一样。 以下将会在参考计算机上安装AdbeRdr810_zh_CN.exe软件&#…

【漏洞分析】Adobe Acrobat和Reader整数溢出漏洞(CVE-2012-0774)

0x00 前言 总体来说坑不多&#xff0c;但是对于windbg没有watchpoint功能这一点&#xff0c;真的是很坑。 0x01 简介 Adobe Acrobat和Reader在True Type Font (TTF)处理的实现上存在整数溢出漏洞&#xff0c;攻击者可利用此漏洞执行任意代码。 受影响软件版本&#xff1a; A…

solidity0.8.0的应用案例13:数字签名及应用:NFT白名单

以太坊中的数字签名ECDSA,以及如何利用它发放NFT白名单 代码中的ECDSA库由OpenZeppelin的同名库简化而成。 数字签名 如果你用过opensea交易NFT,对签名就不会陌生。下图是小狐狸(metamask)钱包进行签名时弹出的窗口,它可以证明你拥有私钥的同时不需要对外公布私钥。 …

Adobe Reader 文档无法签名_Adobe | Acrobat amp; Reader多个安全漏洞通告

0x00 漏洞概述 2020年11月03日,Adobe发布了关于Adobe Acrobat和Reader的14个安全更新,其中包括多个任意代码执行漏洞。Adobe表示目前还没有发现任何关于这些漏洞的野外攻击事件。 0x01 漏洞详情 Adobe Acrobat和Adobe Reader都是Adobe官方出品的PDF文档解决方案套件。Adobe R…

Adobe Reader 文档无法签名_如何在Mac上使用预览对PDF进行电子签名

当您通过电子邮件收到必须签名的PDF文档时&#xff0c;打印文件&#xff0c;用钢笔在虚线上签名&#xff0c;扫描签名的文档并将其发回的过程可能是一项相当繁琐的任务。幸运的是&#xff0c;苹果公司增加了使用预览功能对PDF文档进行电子签名的功能&#xff0c;该程序预先安装…

adobe reader XI 打开后闪退(或过几秒后自动退出)【终极解决方案】

Adobe Reader 11打开后闪退&#xff08;或过几秒后自动退出&#xff09;【终极解决方案】 win10系统解决2020年2月份Adobe ReaderXI自动关闭问题&#xff1a; &#xff08;以下方法任一种均可&#xff09; 方法一、更新补丁 注意&#xff1a;先请安装11.0.00正式版&#xf…

【地理图库】世界小麦产量分布

声明&#xff1a;来源网络&#xff0c;仅供学习&#xff01;

多肽合成15266-88-3产品特点介绍,Cyclo(glycyl-L-histidyl)

中文名&#xff1a;环(甘氨酰-L-组氨酰) 英文名&#xff1a;cyclo(Gly-His) CYCLO(-GLY-HIS) Cyclo(glycyl-L-histidyl) (S)-3-(1H-Imidazol-4-ylmethyl)-2,5-piperazinedione CAS&#xff1a;15266-88-3 分子式&#xff1a;C8H10N4O2 分子量&#xff1a;194.191 密度 …

Windows运行Spark所需的Hadoop安装

解压文件 复制bin目录 找到winutils-master文件hadoop对应的bin目录版本 全部复制替换掉hadoop的bin目录文件 复制hadoop.dll文件 将bin目录下的hadoop.dll文件复制到System32目录下 配置环境变量 修改hadoop-env.cmd配置文件 注意jdk装在非C盘则完全没问题&#xff0c;如果装在…

郑义宣就任韩国现代汽车集团会长;爱立信携手中国电信运用爱立信频谱共享技术 | 美通企业日报...

今日看点 现代汽车集团(Hyundai Motor Group)宣布&#xff0c;集团首席副会长郑义宣(Euisun Chung)就任集团会长。原集团会长郑梦九(Mong-Koo Chung)将担任集团名誉会长。现代汽车公司、起亚汽车公司(Kia Motors Corporation)和现代摩比斯公司(Hyundai Mobis Co.)分别召开了特别…

互联网快讯:京东公布“双11”节奏;猿辅导、掌门教育布局素质教育

零售电商 1、京东公布“双11”节奏&#xff1a;10月20日晚8点正式开启预售&#xff0c;10月31日晚8点提前开抢 2、达达快送发布即时配送SaaS系统“达达智配”&#xff0c;赋能配送服务商提升行业效能 3、天猫国际加速推进“五新”策略&#xff0c;双11重点孵化40个新品类 4…

怎样启动华为桌面服务器,[图]华为鲲鹏服务器/台式机主板登场:为ARM处理器打开桌面市场大门...

华为官网介绍如下鲲鹏台式机主板是基于华为鲲鹏920处理器开发的办公应用主板&#xff0c;兼容业界主流内存、硬盘、网卡等硬件&#xff0c;支持Linux桌面操作系统&#xff0c;提供机箱、散热、供电等参考设计指南&#xff0c;具有高性能、接口丰富、高可靠性、易用性等特点。 根…

百度超级链捐赠开放原子开源基金会一周年,XuperChain成果一览

摘要 2020年9月9日&#xff0c;开放原子开源基金会正式与百度完成了超级链内核项目捐赠协议的签署&#xff0c;这一捐赠协议意味着百度自主研发的超级链技术将依托于开源基金会以全新的组织形态进行运作。此项目作为开源基金会区块链领域首个捐赠项目进行孵化&#xff0c;并在全…

容联云与20多家银行齐聚,共探客服中心与远程银行建设新业态

以客户为中心、以数字为根底、以科技为驱动的非接触金融服务成为金融新业态。聚焦客户体验提升和价值创造的客服中心和远程银行随之迎来前所未有的发展新机遇&#xff0c;成为金融行业数字化转型的重要突破口。 近日&#xff0c;容联云与金科创新社联合举办2021客服中心与远程银…

区块链、AI遇上艺术,科技突破艺术的想象空间

近期&#xff0c;在中国最高的美术馆——上海云间美术馆&#xff0c;来自人工智能和区块链领域的专家、高校学者和知名艺术家&#xff0c;共同展开了一场关于区块链、人工智能和数字艺术的深度交流&#xff0c;探讨区块链和人工智能赋能数字艺术的新方向。 与会嘉宾认为&#x…