如何在Python中读取电影的exif数据?

2024-09-29 00:17:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用^{}(与python3 -m pip install exifread一起安装)从照片中读取EXIF标记。同一台摄像机使用扩展名.MOV和我可以使用^{}(随brew install exiftool安装)查看的Create DateEXIF字段拍摄视频:

$ exiftool DSC_0002.MOV | grep Date
File Modification Date/Time     : 2020:02:20 18:13:14+00:00
File Access Date/Time           : 2020:03:07 08:11:57+00:00
File Inode Change Date/Time     : 2020:03:04 11:24:51+00:00
Modify Date                     : 2020:02:20 18:13:21
Track Create Date               : 2020:02:20 18:13:21
Track Modify Date               : 2020:02:20 18:13:21
Media Create Date               : 2020:02:20 18:13:21
Media Modify Date               : 2020:02:20 18:13:21
Create Date                     : 2020:02:20 18:13:15
Date/Time Original              : 2020:02:20 18:13:15
Date Display Format             : Y/M/D

我认为exifread是为照片而构建的,因为下面的代码显示了此视频的标记的空列表:

import exifread

f = open("/path/to/file", "rb")
tags = exifread.process_file(f)
print(tags)

一种解决方案是对exiftool进行子流程调用并分析结果:

EXIFTOOL_DATE_TAG_VIDEOS = "Create Date"
EXIF_DATE_FORMAT = "%Y:%m:%d %H:%M:%S"

cmd = "exiftool '%s'" % filepath
output = subprocess.check_output(cmd, shell=True)
lines = output.decode("ascii").split("\n")
for l in lines:
    if EXIFTOOL_DATE_TAG_VIDEOS in l:
            datetime_str = l.split(" : ")[1]
            print(datetime.datetime.strptime(datetime_str,
                                             EXIF_DATE_FORMAT))

如何在没有子流程调用的情况下访问EXIF标记列表


Tags: install标记outputdatetimedatetimecreate照片