当前位置: 首页 > news >正文

如何使用命令行工具分析图片或者视频?

在 macOS 命令行下,查看照片(图片)的拍摄时间、方向、分辨率等元数据,工程上结论非常明确:

首选工具:exiftool
这是业界事实标准,准确、全面、可脚本化。

下面按推荐程度 + 实用性给你完整说明。


一、首选方案(强烈推荐):exiftool

1️⃣ 安装

brew install exiftool

2️⃣ 查看一张照片的完整信息

exiftool photo.jpg

你会看到非常全面的输出,包括:

  • 拍摄时间
  • 方向(Orientation)
  • 分辨率
  • 相机 / 手机型号
  • GPS(如果有)
  • EXIF / XMP / IPTC 信息

二、你关心的几个关键字段(重点)

1️⃣ 拍摄时间(最重要)

exiftool -DateTimeOriginal photo.jpg

常见字段含义:

字段 说明
DateTimeOriginal 真实拍摄时间(最可靠)
CreateDate 创建时间
ModifyDate 修改时间

👉 工程上优先用 DateTimeOriginal


2️⃣ 照片方向(是否需要旋转)

exiftool -Orientation photo.jpg

典型输出:

Orientation : Rotate 90 CW

常见取值:

Orientation 含义
Horizontal (normal) 正常
Rotate 90 CW 需要顺时针旋转
Rotate 180 旋转 180°
Rotate 270 CW 逆时针 90°

3️⃣ 分辨率 / 尺寸

exiftool -ImageWidth -ImageHeight photo.jpg

输出示例:

Image Width  : 4032
Image Height : 3024

4️⃣ 一次性输出你最关心的字段(推荐)

exiftool \-DateTimeOriginal \-Orientation \-ImageWidth \-ImageHeight \photo.jpg

三、批量查看(你很可能会用到)

1️⃣ 当前目录下所有 JPG / PNG

exiftool -DateTimeOriginal -Orientation -ImageWidth -ImageHeight *.jpg

2️⃣ 输出为“单行,便于脚本处理”

exiftool -s -s -s \-DateTimeOriginal \-Orientation \-ImageWidth \-ImageHeight \photo.jpg

输出:

2023:09:18 14:32:10
Rotate 90 CW
4032
3024

3️⃣ 输出为 CSV(工程化强烈推荐)

exiftool -csv \-FileName \-DateTimeOriginal \-Orientation \-ImageWidth \-ImageHeight \*.jpg

四、macOS 自带工具(不推荐做主方案)

⚠️ mdls(精度与字段不稳定)

mdls photo.jpg
  • 依赖 Spotlight
  • EXIF 字段不完整
  • 不适合工程校验

⚠️ sips(只适合基础信息)

sips -g creation photo.jpg
sips -g pixelWidth -g pixelHeight photo.jpg

缺点:

  • 拍摄时间经常拿不到
  • 不支持完整 EXIF

五、如果你在做“工程级照片处理”,这些点要注意

结合你之前的使用场景(Android 端照片迁移 / 校验 / 同步),我给你几个关键建议:

✅ 拍摄时间优先级

DateTimeOriginal > CreateDate > 文件时间

✅ 方向一定要读 EXIF

  • Android / iOS 拍照 大量依赖 Orientation
  • 不读 Orientation,显示一定出问题

✅ Android 端字段对齐

macOS / exiftool Android
DateTimeOriginal ExifInterface.TAG_DATETIME_ORIGINAL
Orientation ExifInterface.TAG_ORIENTATION
ImageWidth TAG_IMAGE_WIDTH
ImageHeight TAG_IMAGE_LENGTH

在 macOS 上,要精确获取视频时长到毫秒(ms)级别,结论很明确:

最准确、最通用、工程上可接受的方案是:ffprobe(FFmpeg)

下面按准确性、可用性、工程实践给你完整说明。


一、首选方案(强烈推荐):ffprobe

1️⃣ 安装(只需一次)

brew install ffmpeg

2️⃣ 获取“精确到毫秒”的视频时长

ffprobe -v error \-show_entries format=duration \-of default=noprint_wrappers=1:nokey=1 \input.mp4

输出示例:

12.345678

单位:秒(浮点数)


3️⃣ 转换为毫秒(ms)

ffprobe -v error -show_entries format=duration \-of default=noprint_wrappers=1:nokey=1 \input.mp4 | awk '{ printf "%.0f\n", $1 * 1000 }'

输出示例:

12346

这是工程上最常用的写法。


二、为什么 ffprobe 是“准确”的?

它读取的是:

  • 容器级 duration(不是估算)
  • 时间基(time_base)
  • 帧时间戳(PTS/DTS)

尤其适合:

  • MP4 / MKV / MOV
  • H.264 / H.265
  • VFR(可变帧率)视频

准确度远高于 Finder / QuickTime / shell 内建工具


三、如果你要“逐帧级别”的极致准确(可选)

基于帧时间戳统计(极端严谨)

ffprobe -v error \-select_streams v:0 \-show_entries frame=pts_time \-of csv=p=0 \input.mp4 | tail -n 1
  • 取最后一帧的 pts_time
  • 理论上是播放时间轴的真实终点

⚠️ 缺点:

  • 对超长视频不友好

四、其他工具对比(不推荐为主方案)

mdls(macOS 自带)

mdls input.mp4 | grep kMDItemDurationSeconds

问题:

  • 精度不稳定
  • 常被四舍五入
  • 不适合工程用途

⚠️ mediainfo

brew install mediainfo
mediainfo --Output=JSON input.mp4
  • 精度还可以
  • 但在某些 MP4 / fragmented MP4 上会有偏差
  • 不如 ffprobe 权威

五、推荐你直接用的“工程级函数”

Bash 函数版(可直接放脚本)

video_duration_ms() {ffprobe -v error -show_entries format=duration \-of default=noprint_wrappers=1:nokey=1 "$1" \| awk '{ printf "%.0f\n", $1 * 1000 }'
}

使用:

video_duration_ms test.mp4

六、一句工程结论

在 macOS 命令行环境下,ffprobe 是唯一同时满足:

  • ms 级精度
  • 格式通用
  • 行为稳定
  • 工程可复现

的方案。

如果你接下来是要把这个结果用于 Android 端校验 / 视频同步 / 时间戳对齐 / 传输完整性判断,我也可以直接帮你对齐一套「mac → Android」一致的时间模型。

http://www.jsqmd.com/news/112738/

相关文章:

  • 丹麦名义雇主EOR推荐:Safeguard Global 助力高效拓展北欧市场 - 品牌2025
  • 2025材料试验机优质生产商TOP5权威推荐:专业制造商助力材料测试精准化升级 - mypinpai
  • 2025材料试验机优质生产商TOP5权威推荐:专业制造商助力材料测试精准化升级 - mypinpai
  • 2025工业流体设备砂磨机制造商TOP5权威推荐 - 工业推荐榜
  • 西印度公司 (WIC) 经济章程——《计算经济学》拍卖篇
  • 2025年济南家具搬运公司联系方式汇总: 本地资深企业官方联系方式与一站式搬迁方案解析 - 十大品牌推荐
  • 2025年上海家具搬运公司联系方式汇总: 精选资深企业官方联系通道与一站式搬迁方案解析 - 十大品牌推荐
  • 2025年十大多槽超声波清洗机厂推荐:多槽超声波清洗机厂家推荐 - myqiye
  • 2025年口碑好的河南黑胡桃板材厂家最新权威实力榜 - 朴素的承诺
  • VPS 主机带宽基础概念全解析:新手也能懂的核心知识点
  • LibreOffice 批量将.doc文件转换为.docx
  • VPS 主机带宽基础概念全解析:新手也能懂的核心知识点
  • 02.创建一个计划任务
  • 2025年红点奖代理申报机构排行榜,红点奖申报哪家便宜新测评 - 工业推荐榜
  • 2025年塑料原料回收领域五大标杆企业盘点,行业内比较好的塑料原料回收公司怎么选择综合实力与口碑权威评选 - 品牌推荐师
  • 2025年广州自考本科文凭学校权威推荐榜单:成人本科自考/成人自考教育/自考考研学校精选 - 品牌推荐官
  • 2025年意式岩板品牌年度排名:意式岩板评价如何? - myqiye
  • kvm针对英伟达的显卡直通,通过pci解绑显卡设备
  • 2025年12月粘度计,振动式粘度计,测里流体粘度计公司推荐:行业测评与选择指南 - 品牌鉴赏师
  • 2025年质量好的河南黑胡桃板材厂家最新推荐权威榜 (1) - 朴素的承诺
  • 2025年度尼龙回收优质厂商评选榜单揭晓,可靠的尼龙回收找哪家解决方案与实力解析 - 品牌推荐师
  • 2025年十大专业原子灰厂商排行榜,原子灰定制服务精选推荐 - mypinpai
  • 2025最新陕西办公室装修设计公司推荐:大品装修,以原创设计与高标准工艺领跑西安装修公司行列 - 深度智识库
  • 2025年广州家具搬运公司联系方式汇总: 本地资深企业官方联系渠道与一站式搬迁方案解析 - 十大品牌推荐
  • 2025年iF奖申报服务公司TOP5推荐:iF奖报名机构有哪些? - 工业推荐榜
  • 2025年iF奖申报服务公司TOP5推荐:iF奖报名机构有哪些? - 工业推荐榜
  • String Constant Pool(字符串常量池)
  • 2025新中式服装定制地域特色与品牌排行,新中式服装哪家好色麦新中式满足多元需求 - 品牌推荐师
  • OceanBase 向量索引优化指南
  • 2025年目前好用的通风蝶阀产品推荐榜,除尘器花板/通风阀门/除尘器布袋/布袋除尘器/除尘器气包/通风蝶阀/除尘器骨架通风蝶阀订制厂家推荐 - 品牌推荐师