<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Live Photo on 小景</title>
        <link>https://jingyuan-zheng.github.io/zh/tags/live-photo/</link>
        <description>Recent content in Live Photo on 小景</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-Hans</language>
        <copyright>Jingyuan Zheng</copyright>
        <lastBuildDate>Thu, 22 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://jingyuan-zheng.github.io/zh/tags/live-photo/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>Mac 导出照片怎么整理？按年月归档，保留 Live Photo，分离重复文件</title>
            <link>https://jingyuan-zheng.github.io/zh/p/gallery-organizer/</link>
            <pubDate>Fri, 02 Oct 2026 00:00:00 +0000</pubDate>
            <guid>https://jingyuan-zheng.github.io/zh/p/gallery-organizer/</guid>
            <description>&lt;img src=&#34;https://jingyuan-zheng.github.io/img/gallery-organizer/web-ui-zh.jpg&#34; alt=&#34;Featured image of post Mac 导出照片怎么整理？按年月归档，保留 Live Photo，分离重复文件&#34; /&gt;&lt;p&gt;本文介绍怎样用 Gallery Organizer 整理已经导出的 Mac 照片库：先预览移动计划，再按拍摄年月归档，并把 Live Photo、重复副本和日期不明的素材分别处理。网页和命令行两种入口都可以完成前两轮整理。&lt;/p&gt;&#xA;&lt;h2 id=&#34;为什么导出的照片越整理越乱&#34;&gt;为什么导出的照片越整理越乱&#xA;&lt;/h2&gt;&lt;p&gt;手机和相机都会反复使用 &lt;code&gt;IMG_0001&lt;/code&gt; 这样的文件名。几次导出重叠后，同名文件可能拍摄于不同年份，也可能是同一张照片的副本。Live Photo 导出后常变成一张 HEIC 加一段 MOV，旁边还可能有记录编辑信息的 &lt;code&gt;.aae&lt;/code&gt; 或 &lt;code&gt;.xmp&lt;/code&gt;。如果只按文件名移动，很容易拆散这些关系；如果只看修改时间，复制当天又可能被误当成拍摄日期。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Jingyuan-Zheng/gallery-organizer&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Gallery Organizer&lt;/a&gt; 的做法是先区分能确认的相机素材，再检查剩下的截图、录屏、下载图片和信息有冲突的文件。它只处理&lt;strong&gt;已经导出的文件夹&lt;/strong&gt;，不会从 iPhone 或 Apple 照片 App 提取照片；也不要直接把照片图库包交给它。项目仅在 macOS 上运行。&lt;/p&gt;&#xA;&lt;h2 id=&#34;先准备目录和备份&#34;&gt;先准备目录和备份&#xA;&lt;/h2&gt;&lt;p&gt;先独立备份原始导出，再挑一个熟悉的小批次试用。打开项目的 &lt;code&gt;config.ini&lt;/code&gt;，设置照片根目录和输出位置。默认结构可以这样理解：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt; 1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 8&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt; 9&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;10&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;11&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/Pictures/GalleryOrganizer/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── Incoming/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   ├── Stage0/Batch A/       ← 尚未整理的导出批次&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;│   └── Stage1/Batch A/       ← 第一轮结束后留下的批次&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── Gallery/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ├── Main/                 ← 已确认的相机照片、视频&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ├── SortedFromUnsorted/   ← 第二轮认出的相机素材&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ├── Screenshots/          ← 截图、录屏&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ├── OtherMedia/           ← 保存的图片等其他素材&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    ├── NeedsRepair/          ← 日期或伴随文件待检查&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    └── Duplicate/            ← 已确认的重复副本&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;这些是可能出现的目录，不代表每次都会创建。归档通常采用 &lt;code&gt;2024/2024-06/&lt;/code&gt; 的年月结构；同名但内容不同的文件不会互相覆盖，必要时会再加日期目录。&lt;code&gt;config.ini&lt;/code&gt; 中的 &lt;code&gt;language = zh&lt;/code&gt; 可以让报告和新建分类目录使用中文，但不会重命名已经存在的文件夹。&lt;/p&gt;&#xA;&lt;h2 id=&#34;用网页先预览第一轮&#34;&gt;用网页先预览第一轮&#xA;&lt;/h2&gt;&lt;p&gt;在项目目录打开终端，运行：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 -m venv .venv&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;source&lt;/span&gt; .venv/bin/activate&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python -m pip install -r requirements-api.txt&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uvicorn api.app:app --host 127.0.0.1 --port &lt;span class=&#34;m&#34;&gt;8000&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;浏览器访问 &lt;code&gt;http://127.0.0.1:8000/&lt;/code&gt;，保持终端窗口开启。在网页选择主整理工具，输入 &lt;code&gt;Incoming/Stage0/Batch A&lt;/code&gt; 的完整路径，先点 &lt;strong&gt;Scan / Dry Run&lt;/strong&gt;。逐项看目标位置、同名冲突、Live Photo 配对和待人工复核项，再点 &lt;strong&gt;Apply changes&lt;/strong&gt;。执行前工具会重新扫描；成功后整批目录移到 &lt;code&gt;Stage1&lt;/code&gt;，仍需处理的文件留在里面。&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;&lt;img src=&#34;https://jingyuan-zheng.github.io/img/gallery-organizer/web-ui-zh.jpg&#34; alt=&#34;Gallery Organizer 中文网页中选择整理工具和目录&#34;&gt;&#xA;&lt;div class=&#34;caption&#34;&gt;图 1：网页先扫描并列出整理计划，确认后再应用。截图来自项目仓库。&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;网页可切换中英文；详细报告使用 &lt;code&gt;config.ini&lt;/code&gt; 的语言设置。任务历史会保留供回看，但中断的任务不会自动接着运行，也没有整批撤销按钮。重新运行前先核对报告和文件实际位置。&lt;/p&gt;&#xA;&lt;h2 id=&#34;喜欢终端也可以走同样的两轮&#34;&gt;喜欢终端，也可以走同样的两轮&#xA;&lt;/h2&gt;&lt;p&gt;命令行适合已有固定导出目录、想逐批处理的人。下面的路径要换成自己的。&lt;strong&gt;每轮第一条只预览，第二条带 &lt;code&gt;--apply&lt;/code&gt; 才会移动文件&lt;/strong&gt;：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 organize_gallery_media.py &lt;span class=&#34;s2&#34;&gt;&amp;#34;/你的照片根目录/Incoming/Stage0/Batch A&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 organize_gallery_media.py &lt;span class=&#34;s2&#34;&gt;&amp;#34;/你的照片根目录/Incoming/Stage0/Batch A&amp;#34;&lt;/span&gt; --apply&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 organize_leftover_media.py &lt;span class=&#34;s2&#34;&gt;&amp;#34;/你的照片根目录/Incoming/Stage1/Batch A&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python3 organize_leftover_media.py &lt;span class=&#34;s2&#34;&gt;&amp;#34;/你的照片根目录/Incoming/Stage1/Batch A&amp;#34;&lt;/span&gt; --apply&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;第一轮把能确认的相机照片与视频放进 &lt;code&gt;Gallery/Main/年份/年-月/&lt;/code&gt;；照片、Live Photo 视频及能确认归属的伴随文件会尽量待在一起。第二轮检查 &lt;code&gt;Stage1&lt;/code&gt; 留下的内容：截图和录屏进 &lt;code&gt;Screenshots&lt;/code&gt;，保存或下载的图片进 &lt;code&gt;OtherMedia&lt;/code&gt;，仍认不准的进 &lt;code&gt;NeedsRepair&lt;/code&gt;。第二轮才确认的相机素材会进入 &lt;code&gt;SortedFromUnsorted&lt;/code&gt;。&lt;/p&gt;&#xA;&lt;p&gt;例如 &lt;code&gt;IMG_0100.HEIC&lt;/code&gt;、&lt;code&gt;IMG_0100.MOV&lt;/code&gt; 和 &lt;code&gt;IMG_0100.HEIC.xmp&lt;/code&gt; 可以一起出现在 &lt;code&gt;Gallery/Main/2024/2024-06/&lt;/code&gt;。不确定归属的 &lt;code&gt;.xmp&lt;/code&gt; 则应先留在待检查目录。相机缩略图 &lt;code&gt;.thm&lt;/code&gt;、低分辨率视频 &lt;code&gt;.lrv&lt;/code&gt; 等文件也可能是素材的一部分，整理结束前不要因为扩展名陌生就删除。&lt;/p&gt;&#xA;&lt;h2 id=&#34;第一次配置只改自己能确认的路径&#34;&gt;第一次配置，只改自己能确认的路径&#xA;&lt;/h2&gt;&lt;p&gt;假设照片都放在外接盘，可以先把 &lt;code&gt;backup_root&lt;/code&gt; 改成那块盘里的专用目录，其他子目录沿用默认值。&lt;code&gt;gallery_root = Gallery&lt;/code&gt; 是相对于照片根目录的路径，&lt;code&gt;main_library_root = Main&lt;/code&gt; 又是相对于 Gallery；它们不是三个互不相关的位置。路径里有空格时，&lt;code&gt;config.ini&lt;/code&gt; 中不用加引号，命令行参数则需要保留示例中的引号。&lt;/p&gt;&#xA;&lt;p&gt;把一批导出放到 &lt;code&gt;Incoming/Stage0/Batch A&lt;/code&gt;，处理时选择这个批次，不要直接把整个 Stage0 当输入。根目录也是工具允许处理的来源与目标边界，所以不要把输入随意指到根目录外。先让配置对应的文件夹结构清楚，再尝试不同分类位置，能少掉很多“文件到底移到哪了”的困惑。&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;requirements-api.txt&lt;/code&gt; 安装的是本地网页需要的 Python 包，不代表所有媒体读取程序也都包含在里面。如果扫描提示缺少某个外部工具，按提示检查 &lt;code&gt;[tools]&lt;/code&gt;：留空表示搜索系统，也可以填写已安装程序的完整路径。不要把工具所在的文件夹当成可执行文件路径。&lt;/p&gt;&#xA;&lt;h2 id=&#34;一次试运行应该检查哪些结果&#34;&gt;一次试运行应该检查哪些结果&#xA;&lt;/h2&gt;&lt;p&gt;先挑一批包含普通照片、一组 Live Photo、几张截图和一份重复导出的样本。Dry Run 以后重点看四件事：拍摄年月是否符合记忆；Live Photo 的照片与短视频是否在一起；截图是否仍混在待分类项里；重复副本保留的是哪一份。日期明显不对时，先调查元数据，不要为了完成整理就直接应用。&lt;/p&gt;&#xA;&lt;p&gt;确认第一轮后，再对 Stage1 中同一批次运行第二轮。两个脚本不是一条会自动走到底的流水线；第二轮也是独立预览、独立执行。完成以后，在目标目录抽查几张照片、播放一段视频，再确认待检查项为什么被留下。分类目录清楚，比文件全部“消失在输入文件夹”更有意义。&lt;/p&gt;&#xA;&lt;p&gt;JPEG 日期修复更适合放在整理之后的专项检查里。比如一批旧照片只有复制日期，不能因为文件名看起来像某天，就把整批时间全部写进去。先确定时区、允许修改的日期范围和要人工保留的月份，再使用工具提供的备份与报告。&lt;code&gt;NeedsRepair&lt;/code&gt; 是提醒你继续判断的入口，不是应该直接删除的废料箱。&lt;/p&gt;&#xA;&lt;h2 id=&#34;重复文件和日期异常另做一轮&#34;&gt;重复文件和日期异常另做一轮&#xA;&lt;/h2&gt;&lt;p&gt;主整理会把确认的重复副本单独放置；另有可选工具检查已经进入主库的重复文件。&lt;strong&gt;完全重复&lt;/strong&gt;和“看起来相似”不是一回事：连拍、修图版、不同格式导出，都值得先看内容再决定保留哪一份。网页的图片对照默认关闭，需要时再打开；HEIC 首次生成预览可能稍慢。&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;&lt;img src=&#34;https://jingyuan-zheng.github.io/img/gallery-organizer/duplicate-preview.jpg&#34; alt=&#34;Gallery Organizer 的重复图片并排预览&#34;&gt;&#xA;&lt;div class=&#34;caption&#34;&gt;图 2：并排预览能辅助判断，路径和整理报告也要一起看。&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;JPEG 日期修复是另一项独立操作。写入前先在 &lt;code&gt;config.ini&lt;/code&gt; 确认时区和可处理日期范围，保留它生成的备份与报告。一次只允许一个网页或终端任务应用更改。若只想先核对某张照片的拍摄参数，可用 &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/zh/p/view-media-info/&#34; &gt;View Media Info&lt;/a&gt; 查看。更多路径配置和可选工具见 &lt;a class=&#34;link&#34; href=&#34;https://github.com/Jingyuan-Zheng/gallery-organizer#readme&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;项目 README&lt;/a&gt;。&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Mac 查看照片、视频和音频参数：用 View Media Info 读取媒体元数据</title>
            <link>https://jingyuan-zheng.github.io/zh/p/view-media-info/</link>
            <pubDate>Thu, 01 Oct 2026 00:00:00 +0000</pubDate>
            <guid>https://jingyuan-zheng.github.io/zh/p/view-media-info/</guid>
            <description>&lt;img src=&#34;https://jingyuan-zheng.github.io/img/view-media-info/live-photo.png&#34; alt=&#34;Featured image of post Mac 查看照片、视频和音频参数：用 View Media Info 读取媒体元数据&#34; /&gt;&lt;p&gt;View Media Info 是一个原生 Mac 媒体信息查看工具，用来读取照片、视频、音频和 Live Photo 的技术参数及元数据，不修改原始文件。&lt;/p&gt;&#xA;&lt;p&gt;Finder 的“显示简介”适合看基本属性，但有时需要的答案更具体：视频用了哪种编码？照片什么时候拍摄？这张 HEIC 的 Live Photo 动态部分还在不在？&lt;a class=&#34;link&#34; href=&#34;https://github.com/Jingyuan-Zheng/View-Media-Info&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;View Media Info&lt;/a&gt; 把这些信息集中到摘要与详细视图中，方便检查和复制。&lt;/p&gt;&#xA;&lt;h2 id=&#34;安装应用与元数据工具&#34;&gt;安装应用与元数据工具&#xA;&lt;/h2&gt;&lt;p&gt;应用要求 macOS 26 或更新版本。到 &lt;a class=&#34;link&#34; href=&#34;https://github.com/Jingyuan-Zheng/View-Media-Info/releases&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Releases&lt;/a&gt; 下载 DMG，将应用拖入“应用程序”，然后通过 &lt;strong&gt;File → Open Media…&lt;/strong&gt; 或 &lt;strong&gt;⌘O&lt;/strong&gt; 打开媒体文件。&lt;/p&gt;&#xA;&lt;p&gt;读取图片和音频元数据需要 ExifTool；可选的 ffprobe 能补充更完整的视频和音轨信息。已经使用 Homebrew 的话，可以这样安装：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;brew install exiftool ffmpeg&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;ffmpeg 安装包会提供 ffprobe。应用会在常见 Homebrew 路径中寻找这些工具。&lt;/p&gt;&#xA;&lt;p&gt;发布包采用 ad-hoc 签名，尚未公证。若首次打开受到系统拦截，先确认下载来自项目发布页，再按 README 的说明处理。&lt;/p&gt;&#xA;&lt;h2 id=&#34;摘要先回答最常见的问题&#34;&gt;摘要先回答最常见的问题&#xA;&lt;/h2&gt;&lt;p&gt;打开文件后，先看到预览和当前媒体最有用的字段。照片通常重点展示尺寸、时间和拍摄设备；视频则可能包括帧率、时长和编码。点击 &lt;strong&gt;Details&lt;/strong&gt; 展开分组信息，&lt;strong&gt;Copy Results&lt;/strong&gt; 则复制当前显示的结果。&lt;/p&gt;&#xA;&lt;p&gt;Live Photo 摘要会使用静态照片的尺寸，并在确认配对后显示动态部分（见图 1）。某些 Android 动态照片把短视频嵌在图片里，应用也能识别常见的相关元数据。按空格还可以调用系统 Quick Look，直接查看素材，而不只是根据文件名猜测。&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;&lt;img src=&#34;https://jingyuan-zheng.github.io/img/view-media-info/live-photo.png&#34; alt=&#34;View Media Info 的 Live Photo 摘要界面&#34;&gt;&#xA;&lt;div class=&#34;caption&#34;&gt;图 1：先用紧凑摘要查看 Live Photo 的关键参数。截图来自项目仓库。&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;live-photo-的两个部分要放在一起&#34;&gt;Live Photo 的两个部分要放在一起&#xA;&lt;/h2&gt;&lt;p&gt;从 Apple 照片导出的 Live Photo，往往由静态图片和一段短视频组成。应用会在同一文件夹中根据 ContentIdentifier 匹配它们。配对信息丢失、文件被拆到不同目录，都可能让动态部分无法正确关联。&lt;/p&gt;&#xA;&lt;p&gt;HEIC 等图片也可以展开详细信息，查看相机、镜头、曝光参数、色彩属性、XMP/IPTC 或 GPS 字段（见图 2）。&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;&lt;img src=&#34;https://jingyuan-zheng.github.io/img/view-media-info/heic-details.png&#34; alt=&#34;View Media Info 展开的 HEIC 元数据详情&#34;&gt;&#xA;&lt;div class=&#34;caption&#34;&gt;图 2：摘要里没有需要的字段时，再展开详细信息。&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;缺少某个字段不一定是应用读取失败。截图本来就没有相机参数，编辑导出和聊天软件转发也可能移除原始信息。另外，文件存储的宽高与按方向信息旋转后的显示效果，需要分开理解。&lt;/p&gt;&#xA;&lt;h2 id=&#34;视频与音频也能先看摘要&#34;&gt;视频与音频也能先看摘要&#xA;&lt;/h2&gt;&lt;p&gt;准备剪辑一段视频时，可以先看尺寸、帧率、编码、时长和音轨，再决定用哪个软件处理（见图 3）。如果朋友发来一段无法播放的 MOV，确认编码和音频格式，比反复改文件扩展名更有帮助。&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;&lt;img src=&#34;https://jingyuan-zheng.github.io/img/view-media-info/video-summary.png&#34; alt=&#34;View Media Info 展示视频尺寸、帧率、编码与音轨&#34;&gt;&#xA;&lt;div class=&#34;caption&#34;&gt;图 3：视频摘要把画面和音轨的关键参数放在一起。截图来自项目仓库。&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;音频文件可以显示封面、歌曲与专辑信息，以及采样率、位深和声道等参数（见图 4）。文件本身没有写入的字段不会凭空出现。&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;&lt;img src=&#34;https://jingyuan-zheng.github.io/img/view-media-info/audio-summary.png&#34; alt=&#34;View Media Info 的音频封面和技术参数摘要&#34;&gt;&#xA;&lt;div class=&#34;caption&#34;&gt;图 4：音频摘要适合快速确认曲目信息与格式。截图来自项目仓库。&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;从-finder-右键打开&#34;&gt;从 Finder 右键打开&#xA;&lt;/h2&gt;&lt;p&gt;发布页还提供 Finder 快速操作 ZIP。解压后打开 &lt;strong&gt;View Media Data.workflow&lt;/strong&gt; 并安装，就可以在 Finder 选中文件，通过 &lt;strong&gt;快速操作 → View Media Data&lt;/strong&gt; 查看。&lt;/p&gt;&#xA;&lt;p&gt;这个快速操作在 &lt;code&gt;~/Library/Services&lt;/code&gt; 中包含自己的应用副本，与“应用程序”中的版本独立运行。因此，只更新其中一个副本，不代表另一个也同步更新。&lt;/p&gt;&#xA;&lt;h2 id=&#34;想知道拍摄时间时先分清是哪种日期&#34;&gt;想知道拍摄时间时，先分清是哪种日期&#xA;&lt;/h2&gt;&lt;p&gt;Finder 的创建时间、修改时间，以及媒体中记录的拍摄时间，可能来自不同环节。比如 2020 年拍的照片，今年重新导出到另一台 Mac，文件的某些系统时间会反映复制或导出，而相机写入的原始拍摄字段仍可能保留 2020 年。遇到日期不一致时，先在 Details 查看字段名，再判断它回答的是哪个问题。&lt;/p&gt;&#xA;&lt;p&gt;整理旅行照片时，可以把摘要日期、相机信息和已知行程放在一起看。如果相机本身时区设置有误，元数据也会跟着出错；视频容器里的时间还可能涉及 UTC 与本地显示的差别。应用中的日期显示遵循 Mac 的区域设置，因此两台电脑显示方式不同，不一定代表文件被修改。&lt;/p&gt;&#xA;&lt;p&gt;准备把这些信息发给别人时，先选择自己需要的视图，再点 &lt;strong&gt;Copy Results&lt;/strong&gt;。它复制的是当前显示的结果；只想说明分辨率与格式时，摘要可能已经够用，想报告具体字段缺失时再展开 Details。粘贴后检查内容是否包含位置、设备信息或原路径，留下与问题有关的部分即可。&lt;/p&gt;&#xA;&lt;h2 id=&#34;一组-live-photo-看不到动态怎么查&#34;&gt;一组 Live Photo 看不到动态，怎么查&#xA;&lt;/h2&gt;&lt;p&gt;先把照片和对应 MOV 放回同一个文件夹，再重新打开照片。应用配对依据是媒体里的 ContentIdentifier，而不只是同名文件。把任意一段 MOV 改成相同名称，不会凭空变成它的动态部分；重复导出造成同名时，更应该核对来源。&lt;/p&gt;&#xA;&lt;p&gt;如果照片能显示，动态仍没有关联，可以先单独打开 MOV，确认它是否可播放，再在 Details 检查有关标识。聊天软件发来的静态图片可能已经没有原配对信息；只有一张截图或普通 JPEG，也不应期待工具恢复原来的动态。先分清缺的是文件、标识还是播放支持，后续才知道该重新导出哪一部分。&lt;/p&gt;&#xA;&lt;p&gt;视频方向也要和分辨率分开读。一个竖拍视频可能保存横向的像素排列，再靠方向变换显示成竖幅。工具会处理可识别的显示方向，但 Details 中的原始宽高仍可能与观看时的直觉不同。不要仅凭这一项就断定导出损坏。&lt;/p&gt;&#xA;&lt;h2 id=&#34;预览正常但信息少先检查读取工具&#34;&gt;预览正常但信息少，先检查读取工具&#xA;&lt;/h2&gt;&lt;p&gt;系统能播放视频，不代表已经安装全部元数据读取工具。图片和音频要用 ExifTool，视频和音轨的更多细节可由 ffprobe 补充。如果安装了应用却缺少字段，先检查依赖，再拿一份已知包含信息的原始文件比较。先确认工具能读，再判断文件有没有写。&lt;/p&gt;&#xA;&lt;p&gt;通过 Finder 快速操作启动时，还要记住它内置了独立应用副本。若主应用已更新，快速操作仍显示旧行为，重新下载安装对应工作流，而不是只替换“应用程序”里的版本。语言设置也在下次启动应用时生效，切换后退出再开，才能让菜单和内容一致。&lt;/p&gt;&#xA;&lt;h2 id=&#34;能读出信息不代表信息一定真实&#34;&gt;能读出信息，不代表信息一定真实&#xA;&lt;/h2&gt;&lt;p&gt;应用不会修改媒体、建立长期元数据库或上传素材。不过，将 GPS 坐标转换成地名时可能调用 Apple 系统服务；无法解析地名时，仍可查看原始坐标。&lt;/p&gt;&#xA;&lt;p&gt;元数据可能被编辑，也可能在传输过程中丢失。容器的创建日期不一定等于相机拍摄日期，位置栏为空也不代表文件完全不包含可识别信息。&lt;/p&gt;&#xA;&lt;p&gt;如果要整理整批导出照片，可以接着看 &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/zh/p/gallery-organizer/&#34; &gt;Gallery Organizer&lt;/a&gt;。View Media Info 更适合在整理之前，先把某个文件的情况看清楚。&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
