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 - 如何保存创建日期的主要内容,如果未能解决你的问题,请参考以下文章
PHP FFMPEG - 将.mov转换为.mp4(H264)
ffmpeg-将iPhone mov文件转换为用于javafx2的mp4