使用AppleScript+QuickTime压缩GoPro视频时保留原时间戳的方法
保留GoPro视频压缩后文件的时间戳方案
方法1:修改现有AppleScript,导出后直接同步时间戳
如果你已经有批量导出的AppleScript,可以在导出完成的逻辑后添加代码,获取原MP4文件的创建/修改时间,同步到新生成的MOV文件。
示例代码片段(嵌入到你的脚本中):
-- 假设你已获取原文件originalFile和导出后的文件exportedFile tell application "Finder" -- 获取原文件的时间戳 set originalCreationDate to creation date of originalFile set originalModificationDate to modification date of originalFile -- 同步到导出文件 set creation date of exportedFile to originalCreationDate set modification date of exportedFile to originalModificationDate end tell
只要确保originalFile是原MP4文件的Finder对象,exportedFile是导出后的MOV文件路径/对象,就能自动同步时间戳。
方法2:用终端命令批量同步时间戳
如果不想修改脚本,可以用终端命令行工具批量处理已导出的MOV文件,前提是原MP4和导出后的MOV文件名一一对应(比如原文件是20240520_143000.mp4,导出后是20240520_143000.mov)。
步骤:
- 安装Xcode命令行工具(未安装过的话执行):
xcode-select --install - 打开终端,进入视频存放文件夹:
cd /path/to/your/videos - 执行批量同步命令:
for mp4 in *.mp4; do mov="${mp4%.mp4}.mov" if [ -f "$mov" ]; then # 获取原MP4的创建和修改时间 create_date=$(GetFileInfo -d "$mp4") modify_date=$(GetFileInfo -m "$mp4") # 设置到MOV文件 SetFile -d "$create_date" "$mov" SetFile -m "$modify_date" "$mov" echo "同步时间戳:$mp4 -> $mov" fi done
若不想依赖Xcode工具,也可使用原生stat和touch命令:
for mp4 in *.mp4; do mov="${mp4%.mp4}.mov" if [ -f "$mov" ]; then # 获取原文件的时间戳(Unix格式) create_time=$(stat -f "%B" "$mp4") modify_time=$(stat -f "%m" "$mp4") # 设置修改时间 touch -mt $(date -r $modify_time +%Y%m%d%H%M.%S) "$mov" # 设置创建时间(需sudo权限) sudo touch -t $(date -r $create_time +%Y%m%d%H%M.%S) "$mov" echo "同步时间戳:$mp4 -> $mov" fi done
方法3:用Automator创建一站式批量处理工作流
偏好可视化操作的话,可通过Automator创建工作流,同时完成导出和时间戳同步:
- 打开Automator,新建“快速动作”或“文件夹动作”
- 添加“查找访达项目”动作,筛选MP4文件
- 添加“用QuickTime Player导出”动作,设置导出格式为1080p MOV
- 添加“设置文件日期”动作,选择“从原始项目复制”,并勾选“创建日期”和“修改日期”
- 保存工作流,选中MP4文件即可一键完成导出+时间戳同步
内容的提问来源于stack exchange,提问作者MadXerxes
相关产品推荐
相关产品推荐

