商品素材 / 制作与交付
商品视频按坐标裁切后为什么偏一像素、尺寸也少了一点?
先检查视频的像素格式及 crop 的 exact 设置。对于存在色度子采样约束的视频,crop 默认 exact=0,可能把宽、高和起点坐标向下调整到允许的取值。exact=1 可要求保留指定裁切值,但不保证后续编码器接受所有尺寸。
分清裁切起点、尺寸和取整规则
crop 的 w、h 表示输出裁切区域的宽度和高度,x、y 表示裁切区域左上角在输入画面中的位置。x、y 不是右下角坐标,不能把终点位置直接填成裁切宽高。
如果省略 x 或 y,对应位置默认居中。需要精确保留商品标签边缘时,应明确指定起点和尺寸,而不是依赖默认居中。
以本次测试的 yuv420p 为例,亮度按像素记录,色度在水平和垂直方向都使用较疏的采样网格,可理解为每 2×2 个亮度像素对应一组色度采样。默认 exact=0 会按这种网格向下对齐相关裁切参数,所以奇数宽高和奇数起点都可能被调整。这里的偶数对齐来自该像素格式的子采样条件,不能推广到所有视频或 RGB 输入。
exact=1 则允许保留请求的裁切尺寸和坐标,不再采用上述默认取整行为。这不是对所有像素格式都会发生偶数取整的声明。
决策分支:如果输出尺寸或边界与预期相差一个像素,先核对像素格式、exact、x、y、w、h,再检查其他处理环节。
用 FFmpeg 7.1 合成测试理解偏移
已有 FFmpeg 7.1 本地测试使用 testsrc2 合成输入:160×90、10 fps、2 秒、20 帧,像素格式为 yuv420p。这是合成信号,不是真实商品视频。
在该输入上,crop=81:45:11:7 的默认处理结果为 80×44。JSON 测试回执 synthetic-delivery-controls-test.json 保存了 crop-rounded 与 crop-rounded-explicit 的逐帧记录:两组 20 帧的对应校验和一致,samePixelsAsExplicitEvenCrop 检查为 true,支持它在本测试中等同于 crop=80:44:10:6 的位置和尺寸。CSV 中的 unique_checksums=20 只是各案例内部不同校验和的数量,单凭这个数量不能证明两组逐帧相等。
同一输入设置 exact=1 后,滤镜输出尺寸为 81×45。这些观测来自编码和封装之前的滤镜输出,不包含商品文字可读性、真实产品边缘的视觉检查或编码器兼容性测试。
因此,这组结果能证明指定测试条件下的裁切取整差异,却不能推断 RGB 输入也一定如此,更不能保证奇数尺寸必然能成功交付为最终视频文件。
新增下载的 synthetic-crop-frame-comparison.csv 从原始 JSON 回执提取这三例的 20 帧尺寸及校验和。default、explicit 和 exact 分别对应上表三例,default_equals_explicit 标出同编号帧的前两组校验和是否相等。它公开的是已有合成测量的逐帧对照,不是重新执行测试;原汇总 CSV 的 unique_checksums 计数仍不能单独承担这项证明。
| test | filter | width | height | frames | scope |
|---|---|---|---|---|---|
| crop-rounded | crop=81:45:11:7 | 80 | 44 | 20 | 合成滤镜帧,编码与封装前;非商品或播放器验收 |
| crop-rounded-explicit | crop=80:44:10:6 | 80 | 44 | 20 | 合成滤镜帧,编码与封装前;非商品或播放器验收 |
| crop-exact | crop=81:45:11:7:exact=1 | 81 | 45 | 20 | 合成滤镜帧,编码与封装前;非商品或播放器验收 |
虚构练习:精确保边与规范画布分开处理
以下为虚构练习(Illustrative exercise),并非实际处理商品素材。
输入 A 是带有细窄品牌辅助图形的商品展示视频。设计人员希望从指定坐标开始裁切,避免误删靠近边界的一像素线条。应先记录原始坐标与目标尺寸,再检查像素格式和 exact 的影响。
如果滤镜默认取整会改变预期边界,可评估 exact=1,并在后续编码环节另行确认支持情况。不能只凭滤镜尺寸正确就宣布交付完成。
输入 B 是已经批准使用偶数尺寸画布的商品广告。此时目标不是强行保留奇数裁切尺寸,而是有计划地安排裁切或填充,使最终画面满足既定交付要求。
决策分支:A 优先保证指定像素边界;B 优先保证批准的输出画布。两者都应保留原始素材用于独立比较。
按滤镜、编码和最终文件三个阶段验收
先记录输入像素格式、裁切表达式、exact 值以及滤镜实际输出尺寸。这样才能判断偏差来自裁切阶段,还是后续编码与封装。
其次检查编码器是否接受目标尺寸。exact=1 仅控制裁切精确性,不是对编码器、容器或发布平台兼容性的保证。
最后在实际交付文件中核对商品轮廓、辅助图形、标签边缘和最终尺寸。不要把合成测试中的帧校验和相同,误写成真实商品画面已经完成视觉验收。
本题关注像素网格与裁切坐标,不是平台安全区或界面遮挡问题。只有裁切位置、输出尺寸和最终文件都符合要求,才可结束交接。
滤镜尺寸确认后,按接收方约定验证真实导出文件,把编码配置、画面和声音要求落实到样片与最终交付的接受结果。
核对实际测量数据
这些下载记录来自正文注明的合成检查,不是真实商品、完整发布端或主观质量验收。请保留适用范围。
- synthetic-delivery-control-measurements.csv · SHA256 52e17c0e6b7d72e006154ae495d1ef4c212cd84dd1895bc96db8d17626517e50
- synthetic-crop-frame-comparison.csv · SHA256 a52e574362265d3d3345e8320953342aeba295fd2495cd6b78fcf6b7c67fdfcf
虚构练习核对表:精确裁切边界与批准画布
以下示例为虚构练习。另存核对表后填写自己的真实观察;不能将示例当作已完成的验收。
| 虚构输入 | 裁切目标 | 优先检查 | 决策分支 | 滤镜阶段验收 | 最终交付验收 |
|---|---|---|---|---|---|
| A:带细窄辅助图形的商品展示 | 保留指定坐标附近的完整边缘 | 像素格式、x/y、w/h、exact | 默认取整影响边界时评估 exact=1 | 实际裁切位置和尺寸符合设计要求 | 编码成功且商品边缘未被误删 |
| B:要求偶数尺寸画布的广告 | 满足已批准的输出尺寸 | 原始裁切范围与目标画布 | 规划裁切或填充,而非盲目保留奇数尺寸 | 滤镜输出达到目标尺寸 | 最终文件尺寸、内容和画面位置均符合要求 |
来源与延伸阅读
下面逐项列出已记录的来源核对日期;未记录日期的来源不自动使用文章发布日期。软件和平台规则可能变化,实际操作前请复核原文。
- FFmpeg Filters: crop · 核对
- FFmpeg Filters: showinfo · 核对
常见问题
设置 crop=81:45:11:7,为什么可能得到 80×44?
在具有相应色度子采样约束的输入上,默认 exact=0 可能向下调整裁切尺寸与坐标。给定 yuv420p 合成测试确实观察到了这种结果。
设置 exact=1 后,就一定能成功导出奇数尺寸商品视频吗?
不能保证。exact=1 控制 crop 滤镜的裁切行为,后续编码器和交付流程仍可能有独立限制,必须分别验证。
准备下一步所需素材
在 Itemlume 制作配套商品素材。
可在工作台制作新的商品创意素材,再在所选工具中继续处理。本文介绍的第三方软件操作需在对应软件内完成;本站入口不代表已集成这些流程。请查看当前功能说明、账户权限与积分报价。
查看素材创作工具 查看价格与积分