所以,我的所有个人家庭照片的硬盘今天都崩溃了。
我不想花几百美元专业地收回一切。
我设法使用Easeus数据恢复软件恢复了一切(我认为) 我编写了一个应用程序,通过每张照片并提取 日期和时间Exif数据然后将其应用于文件日期和时间。
现在我必须对视频剪辑做同样的事情。
有谁知道如何做到这一点? 是否有任何库可以让程序员访问videofile Exif 等效的日期和时间数据?
答案 0 :(得分:1)
PSLookupPropertyHandlerCLSID
API + IPropertyStore
界面可让您快速访问视频/音频/图像文件的元数据,Windows本身具有识别功能。
资源管理器使用此API在详细信息视图中填充列,您还可以使用this post中的应用程序快速检查文件与提及的API,无论它是否有用:
按文件路径访问属性的C ++代码段将是:
CLSID ClassIdentifier = CLSID_NULL;
__C(PSLookupPropertyHandlerCLSID(CStringW(pszPath), &ClassIdentifier));
CComPtr<IPropertyStore> pPropertyStore;
__C(pPropertyStore.CoCreateInstance(ClassIdentifier));
// NOTE: Initializing Property Handlers
// http://msdn.microsoft.com/en-us/library/windows/desktop/cc144131%28v=vs.85%29.aspx
const CComQIPtr<IInitializeWithStream> pInitializeWithStream = pPropertyStore;
__D(pInitializeWithStream, E_NOINTERFACE);
CComPtr<IStream> pStream;
__C(SHCreateStreamOnFileEx(CStringW(pszPath), STGM_READ, FILE_ATTRIBUTE_NORMAL, FALSE, NULL, &pStream));
__C(pInitializeWithStream->Initialize(pStream, STGM_READ));
DWORD nPropertyCount = 0;
__C(pPropertyStore->GetCount(&nPropertyCount));
// TODO: Access individual properties
当然,这不完全是EXIF。 EXIF值映射到获取的属性集合以及相应的视频文件属性。此API对静态文件和音频文件也有效。