尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

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

如何使用命令行工具分析图片或者视频?
📅 发布时间:2026/6/18 16:56:55

在 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」一致的时间模型。

相关新闻

  • 2025年济南家具搬运公司联系方式汇总: 本地资深企业官方联系方式与一站式搬迁方案解析 - 十大品牌推荐
  • 2025年上海家具搬运公司联系方式汇总: 精选资深企业官方联系通道与一站式搬迁方案解析 - 十大品牌推荐
  • 2025年十大多槽超声波清洗机厂推荐:多槽超声波清洗机厂家推荐 - myqiye

最新新闻

  • iTunes could not connect to this iPhone.An unknown error occurred(0xE800000A).
  • 模块化VQA系统搭建:视觉语言对齐与可调试工程实践
  • 阿里ATH事业群与Token计费:重构AI商业化底层逻辑
  • PeakRoutine 新手入门与实战指南
  • Gemma-4B真实参数量揭秘:Hybrid Attention与PLE如何定义端侧有效参数
  • Claude上下文优化三法则:Skills懒加载、Explore子代理与路径规则

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号