我有一个使用带有嵌入式 GPS(gpmd 轨道)的 GoPro Fusion 拍摄的 360 度视频 (.mp4)。
我想将视频分成帧(每秒 1 帧),分成 png 或 jpg 文件,同时保留某些全局元数据,例如相机制造商,但最重要的是时间戳。
视频本身在元数据中只有开始日期/时间和持续时间。
我的想法是首先使用 exiftool 提取元数据,使用 ffmpeg 将视频分解为帧,然后使用 exiftool 根据时间对帧进行地理编码。
虽然我无法使用 ffmpeg 将时间戳添加到单独提取的帧(使用基于帧号和开始日期/时间的偏移量(ffmpeg 仅添加文件创建日期 - 当我运行命令时)。
现在我开始考虑使用自定义脚本根据帧速率进行偏移(例如视频从 12:00 开始,为每个帧创建的时间戳添加 +1 秒。
在我开始之前,我想正确验证 ffmpeg 是否真的可以使用视频的开始时间将捕获时间写入帧中。
基于SO搜索,我尝试了很多标志组合,唉,没有成功,例如
ffmpeg -i VIDEO_7152.mp4 -r 1 -map_metadata 0:g FRAMES/img%04d.png
ffmpeg -i VIDEO_7152.mp4 -r 1 -movflags use_metadata_tag FRAMES/img%04d.png
这是视频文件:https://drive.google.com/file/d/1XspMMI4Vd4eX4yLJ-FAwKOadhYzmjxH1/view?usp=sharing
我在 Windows 上使用 ffmpeg。
这是我从提取的帧中获取的元数据示例:https://gitlab.com/snippets/1978974
你不能从 ffprobe 中提取元数据,然后使用
-metadata
标志在 ffmpeg 上设置时间戳吗?