当前位置: 首页 > 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.hn-smt.com/news/117758/

相关文章:

  • 西印度公司 (WIC) 经济章程——《计算经济学》拍卖篇
  • 2025年12月粘度计,振动式粘度计,测里流体粘度计公司推荐:行业测评与选择指南 - 品牌鉴赏师
  • 2025年12月粘度计,振动式粘度计,测里流体粘度计公司推荐:行业测评与选择指南 - 品牌鉴赏师
  • 【题解】P3919 【模板】可持久化线段树 1(可持久化数组)
  • 2025年市面上热门的星型卸料器订做厂家哪里有卖,星型卸料器/除尘器布袋/除尘器气包/电磁脉冲阀/通风阀门星型卸料器源头厂家排行榜单 - 品牌推荐师
  • 技术派-项目亮点
  • RHEL7 8 9 lvreduce lv
  • 2025年成都排行前列的表冷器批发多少钱,工业暖风机/吊顶式空调机组/卡式风机盘管/空气幕/表冷器/卧式暗装风机盘管表冷器厂家有哪些 - 品牌推荐师
  • Buildah 简明教程:让镜像构建更轻量,告别 Docker 依赖
  • 回溯法
  • 01.从Powershell角度创建一个Windows计划任务都需要用到哪些cmdlet
  • 2025年靠谱的继承律师咨询推荐,权威继承律师事务所全解析 - 工业推荐榜
  • 2025年年终北京家庭搬家公司推荐:权威榜单TOP5及核心指标比较分析 - 十大品牌推荐
  • LLC sec center tap winding current unbalance analysis
  • 2025年年终广州家庭搬家公司推荐:综合实力排行及深度服务评测 - 十大品牌推荐
  • Skill语言入门的一些基础知识
  • 2025年抉择SKF轴承制造商推荐:SKF轴承定制服务厂家TOP5榜单 - mypinpai
  • 2025年靠谱的楼梯升降机/升降机用户口碑最佳榜(高评价) - 品牌宣传支持者
  • 2025年靠谱的楼梯升降机/升降机用户口碑最佳榜(高评价) - 品牌宣传支持者
  • 2025年比较好的稻谷去石机/谷子去石机厂家最新实力排行 - 品牌宣传支持者
  • 2025年评价高的楼梯升降平台/升降平台厂家最新推荐权威榜 - 品牌宣传支持者
  • 2025年口碑好的电缆桥架厂家最新权威实力榜 - 品牌宣传支持者
  • 2025合肥舒适家居服务商TOP5权威测评:合肥天欣产品怎么样? - myqiye
  • 侧铣头轴承厂家推荐|高刚性、高稳定性方案优选无锡三立轴承 - 小张666
  • 2025云南汽修学校TOP5权威推荐:云南万通汽修学校教学质量高 - myqiye
  • 2025年年终祛痘沐浴露推荐:专家解析主流品牌核心成分及10强实力排名。 - 十大品牌推荐
  • 青岛软件开发公司 推荐青岛双电软件 - 博客万
  • 2025年年终麻将机品牌综合评测与推荐排行榜:高端静音技术引领者深度解析 - 十大品牌推荐
  • 2025年靠谱的PPR给水管设备厂家最新实力排行 - 行业平台推荐
  • 2025辽宁公考辅导机构TOP5权威测评:红旗公考专业吗? - myqiye