ffmpeg编码图象时报错Invalid buffer size, packet size * < expected frame_size *

使用ffmpeg将单个yuv文件编码转为jpg或其他图像格式时,报错:

bash 复制代码
Truncating packet of size 11985408 to 3585
[rawvideo @ 0x1bd5390] Packet corrupt (stream = 0, dts = 1).
image_3264_2448_0.yuv: corrupt input packet in stream 0
[rawvideo @ 0x1bd7c60] Invalid buffer size, packet size 3584 < expected frame_size 11985408
Error while decoding stream #0:0: Invalid argument

这里11985408对应的是我文件的大小:

需要加上参数-vframes 1 或 -frames:v 1(旧版),以单帧方式导出:

注意需要加在输入之后,也就是用于输出文件。

另外,导出为单张图像时,不能加 -c:v libx264 参数,这个是视频流的,如果加上则打不开jpg图像。

相关推荐
青灯文案110 分钟前
Linux 常用目录及其用途
linux·运维·服务器
芒果披萨10 分钟前
Linux磁盘挂载
linux·运维·服务器
icy、泡芙14 分钟前
全志 GPIO BUG
linux·bug
SMF191919 分钟前
【Docker】Linux系统上卸载旧Docker、卸载Podman并重新安装Docker及配置国内镜像源
linux·docker·podman
ErizJ24 分钟前
面试 | Linux
linux·面试
菜_小_白33 分钟前
高并发定时任务调度系统
linux·c++
HAPPY酷37 分钟前
Linux 网络命令速查:告别 `ifconfig`,拥抱 `ip`
linux·网络·tcp/ip
我不听你讲话1 小时前
Nginx核心功能
linux·服务器·python
草莓熊Lotso1 小时前
MySQL 数据类型核心指南:选型、实战与避坑
linux·运维·服务器·数据库·c++·人工智能·mysql
啊哈的哲学路途1 小时前
【esp-idf 指令】
linux·stm32