<p>好吧,我设法提取了我需要的所有数据和更多!<a href="https://stackoverflow.com/a/15043503/1800213">This answer on Stack Overflow</a>让我想到尝试MediaInfo来提取元数据。</p>
<p>为此,我再次切换回Python 3。我还必须将<code>MediaInfoDLL3.py</code>中的第22行改为<code>MediaInfoDLL_Handler = WinDLL("C:\Program Files (x86)\MediaInfo\MediaInfo_i386.dll")</code></p>
<p>这是我使用的代码:</p>
<pre><code>import os
os.chdir(os.environ["PROGRAMFILES"] + "\\mediainfo") # The folder where you installed MediaInfo
from MediaInfoDLL3 import MediaInfo, Stream
MI = MediaInfo()
def get_mediainfo_from(directory):
for file in os.listdir(directory):
MI.Open(directory + file)
file_extension = MI.Get(Stream.General, 0, "FileExtension")
duration_string = MI.Get(Stream.Video, 0, "Duration/String3") # Length. "Duration" for ms
fps_string = MI.Get(Stream.Video, 0, "FrameRate")
width_string = MI.Get(Stream.Video, 0, "Width")
height_string = MI.Get(Stream.Video, 0, "Height")
aspect_ratio_string = MI.Get(Stream.Video, 0, "DisplayAspectRatio")
frames_string = MI.Get(Stream.Video, 0, "FrameCount")
local_created_date_string = MI.Get(Stream.General, 0, "File_Created_Date_Local") # Date of copying
local_modified_date_string = MI.Get(Stream.General, 0, "File_Modified_Date_Local") # Date of filming
if file_extension == "MP4":
print("Extension: "+file_extension)
print("Length: "+duration_string)
print("FPS: "+fps_string)
print("Width: "+width_string)
print("Height: "+height_string)
print("Ratio: "+aspect_ratio_string)
print("Frames: "+frames_string)
print("Created Date: "+local_created_date_string)
print("Modified Date: "+local_modified_date_string)
else:
print("{} ain't no MP4 file!".format(file))
MI.Close()
get_mediainfo_from("C:\\Users\\Nick\\Desktop\\test\\") # The folder with video files
# print(MI.Option("Info_Parameters")) # Show list of available metadata tags
</code></pre>
<p>结果是:</p>
<ul>
<li>分机:MP4</li>
<li>长度:00:00:37.940</li>
<li>浮点数:100000</li>
<li>宽度:1280</li>
<li>身高:960</li>
<li>比率:1.333</li>
<li>框架:3794</li>
<li>创建日期:2015-01-07 15:25:11.678</li>
<li>修改日期:2014-12-13 19:28:14.000</li>
</ul>
<p>希望这能帮助别人!</p>