ffmpeg 从 MOV 转换为 mp4 - 如何保存创建日期

Posted

技术标签:

【中文标题】ffmpeg 从 MOV 转换为 mp4 - 如何保存创建日期【英文标题】:ffmpeg conversion from MOV to mp4 - how to conserve creation date 【发布时间】:2020-06-13 12:41:23 【问题描述】:

Windows 10 1909,最新更新。

我正在帮助一位朋友将他的照片和视频从一个 Apple ID 转移到另一个。 我已使用 iCloud for PC 将所有项目下载到我的 PC。然后我继续将所有照片重新上传到新的 Apple ID。 2'000 个视频是 MOV,我无法上传到 iCloud。我似乎需要将它们转换为 mp4 才能上传。

我已使用以下批次将所有 MOV 转换为 mp4

FOR /F "tokens=*" %%G IN ('dir /b *.MOV') DO ffmpeg -i "%%G" -f mp4 -vcodec copy -acodec mp3 "%%~nG.mp4"

这很好,我设法将(现在)mp4 上传到 iCloud。不幸的是,所有 mp4 现在都将昨天的日期作为创建日期。在 iCloud(和 iPad)中,所有视频现在都显示为 12.6.2020 的创建日期,并且不可能找到特定的视频。照片的上下文也丢失了。

问题:

有什么方法可以(批量)将 2'000 MOV 转换为 mp4,同时保留创建日期? 或者:有没有办法将原始 MOV 文件上传到 iCloud?

【问题讨论】:

【参考方案1】:

您可以使用touch 之类的实用程序或使用 powershell 将时间戳从源 mov 复制到目标 mp4。使用触摸,当您使用相同的 for 循环时,它看起来像 touch "%%~nG.mp4" -r "%%G"

【讨论】:

感谢@wimh,同时我找到了一种使用 ffmpeg 的方法 问题含糊不清,显然是关于creation_time MP4 元数据,但这个答案将解决文件本身的时间问题。【参考方案2】:

以下似乎有效:

FOR /F "tokens=*" %%G IN ('dir /b *.MOV') DO ffmpeg -i "%%G" -f mp4 -map_metadata 0 -vcodec copy -acodec mp3 "Converted\%%~nG.mp4"

-map_metadata 0 将全局元数据从 MOV 传输到 mp4 文件。 mp4 现在有正确的创建日期,iCloud 会根据正确的日期对它们进行排序(至少是我上传的前 50 个)

【讨论】:

以上是关于ffmpeg 从 MOV 转换为 mp4 - 如何保存创建日期的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg 没有将一些 mov 视频转换为 mp4

PHP FFMPEG - 将.mov转换为.mp4(H264)

ffmpeg-将iPhone mov文件转换为用于javafx2的mp4

FFMpeg创建脚本来转换文件夹[重复]

使用 avconv 从 .mov 转换为 .mp4(或 h264)

ffmpeg mov 到 mp4:不够快