找回密码
 加入
搜索
查看: 5128|回复: 10

[AU3基础] 想获得一大堆视频文件的详细信息,没思路....[停帖]

  [复制链接]
发表于 2010-7-14 17:30:55 | 显示全部楼层 |阅读模式
本帖最后由 ransally 于 2010-7-15 09:31 编辑

我有这么个想法,获得一个文件夹中所有视频文件还有图片的详细信息,包括拍摄时间、大小、播放时

间、品质、所在位置等等详细信息,然后这些信息是可以分条操作的,比如我可以依据其中几个信息来选择我

想要的视频或者图片文件进行操作。

但是我不知道应该从哪下手.....

水平不足,正在学习中,此帖暂停
发表于 2010-7-14 17:37:41 | 显示全部楼层
Google 视频文件的数据结构不就好了?~
 楼主| 发表于 2010-7-14 17:39:16 | 显示全部楼层
回复 2# pusofalse


    没用过,没听过,我去查
 楼主| 发表于 2010-7-14 17:50:25 | 显示全部楼层
回复 2# pusofalse


    查了一下,没查到...................是那个视频文件上传软件?
发表于 2010-7-14 17:57:15 | 显示全部楼层
没查到?不可能查不到。你是以什么关键字搜索的呢?
真的,不可能查不到,千万不要认为你是遇到这种问题的第一人。
换别的关键字搜索总比在这发求助强。
发表于 2010-7-14 18:59:21 | 显示全部楼层
http://www.autoitx.com/thread-15230-1-1.html
获取媒体文件信息

MediaInfo可以获得多媒体文件的哪些信息?
内容信息:标题,作者,专辑名,音轨号,日期,总时间……
视频:编码器,长宽比,帧频率,比特率……  
音频:编码器,采样率,声道数,语言,比特率……  
文本:语言和字幕  
段落:段落数,列表  
  
MediaInfo支持哪些文件格式?
视频:MKV, OGM, AVI, DivX, WMV, QuickTime, Real, MPEG-1, MPEG-2, MPEG-4, DVD (VOB)... (编码器:DivX, XviD, MSMPEG4, ASP, H.264, AVC...)  
音频:OGG, MP3, WAV, RA, AC3, DTS, AAC, M4A, AU, AIFF...  
字幕:SRT, SSA, ASS, SAMI...  
典型应用
MediaInfo的典型应用是使用其DLL库,用来提取媒体文件的信息。其特点是,支持的格式全、提取的信息丰富。当然,MediaInfo本身是开源的,其DLL库可以进行二次开发,可以扩充自定义格式,增加自定义功能。对于工程使用,MediaInfo模块和其它功能可以独立,使用上非常便捷,是一个值得推荐的开源工程。
源码获取途径
MediaInfo中文主页:http://mediainfo.sourceforge.net/zh/Support 技术支持普通用户: 你看以通过下面的链接查看更多详细信息: 开发者:
  • 如果你要使用MediaInfo的Dll,这里为你准备了一个 开发工具包
  • 如果你想自己编译MediaInfo的DLL 或 MediaInfo,可以到这里 看看。



------------------------------------------------------------------------------
实测:

只选了三种视频音频格式



测试结果如上

AU3调用MediaInfo.dll源码:
#include<Array.au3>
$sRL=_GetInfoArray('1.flv')
_ArrayDisplay($sRL)
Func _GetInfoArray($sMediaFile)
Local $sRL[1]
$sDLL = DllOpen("MediaInfo.dll")
$sHandle = DllCall($sDLL, "ptr", "MediaInfo_New")
$Open_Result = DllCall($sDLL, "int", "MediaInfo_Open", "ptr", $sHandle[0], "wstr", $sMediaFile)
;获取文件格式
DllCall($sDLL, "wstr", "MediaInfo_Option", "ptr", 0, "wstr", "Inform", "wstr", "General;%Format/String%")
$Inform = DllCall($sDLL, "wstr", "MediaInfo_Inform", "ptr", $sHandle[0], "int", 0)
$sRL[0] = $Inform[0]
;获取视频格式
DllCall($sDLL, "wstr", "MediaInfo_Option", "ptr", 0, "wstr", "Inform", "wstr", "General;%Video_Format_List%")
$Inform = DllCall($sDLL, "wstr", "MediaInfo_Inform", "ptr", $sHandle[0], "int", 0)
_ArrayAdd($sRL, $Inform[0])
;获取音频格式
DllCall($sDLL, "wstr", "MediaInfo_Option", "ptr", 0, "wstr", "Inform", "wstr", "General;%Audio_Format_List%")
$Inform = DllCall($sDLL, "wstr", "MediaInfo_Inform", "ptr", $sHandle[0], "int", 0)
_ArrayAdd($sRL, $Inform[0])
;获取音频编码
DllCall($sDLL, "wstr", "MediaInfo_Option", "ptr", 0, "wstr", "Inform", "wstr", "General;%Audio_Codec_List%")
$Inform = DllCall($sDLL, "wstr", "MediaInfo_Inform", "ptr", $sHandle[0], "int", 0)
_ArrayAdd($sRL, $Inform[0])
;获取视频编码
DllCall($sDLL, "wstr", "MediaInfo_Option", "ptr", 0, "wstr", "Inform", "wstr", "General;%Video_Codec_List%")
$Inform = DllCall($sDLL, "wstr", "MediaInfo_Inform", "ptr", $sHandle[0], "int", 0)
_ArrayAdd($sRL, $Inform[0])
;获取总码率
DllCall($sDLL, "wstr", "MediaInfo_Option", "ptr", 0, "wstr", "Inform", "wstr", "General;%BitRate/String%")
$Inform = DllCall($sDLL, "wstr", "MediaInfo_Inform", "ptr", $sHandle[0], "int", 0)
_ArrayAdd($sRL, $Inform[0])
;获取视频码率
DllCall($sDLL, "wstr", "MediaInfo_Option", "ptr", 0, "wstr", "Inform", "wstr", "Video;%BitRate/String%")
$Inform = DllCall($sDLL, "wstr", "MediaInfo_Inform", "ptr", $sHandle[0], "int", 0)
_ArrayAdd($sRL, $Inform[0])
;获取音频码率
DllCall($sDLL, "wstr", "MediaInfo_Option", "ptr", 0, "wstr", "Inform", "wstr", "Audio;%BitRate/String%")
$Inform = DllCall($sDLL, "wstr", "MediaInfo_Inform", "ptr", $sHandle[0], "int", 0)
_ArrayAdd($sRL, $Inform[0])
;获取视频分辨率
DllCall($sDLL, "wstr", "MediaInfo_Option", "ptr", 0, "wstr", "Inform", "wstr", "Video;%Width%")
$Inform = DllCall($sDLL, "wstr", "MediaInfo_Inform", "ptr", $sHandle[0], "int", 0)
$sWidth = $Inform[0]
DllCall($sDLL, "wstr", "MediaInfo_Option", "ptr", 0, "wstr", "Inform", "wstr", "Video;%Height%")
$Inform = DllCall($sDLL, "wstr", "MediaInfo_Inform", "ptr", $sHandle[0], "int", 0)
$sHigh = $Inform[0]
If $sHigh <> '' And $sWidth <> '' Then
_ArrayAdd($sRL, $sWidth & ' X ' & $sHigh)
Else
_ArrayAdd($sRL, '')
EndIf
;获取视频刷新率
DllCall($sDLL, "wstr", "MediaInfo_Option", "ptr", 0, "wstr", "Inform", "wstr", "Video;%FrameRate/String%")
$Inform = DllCall($sDLL, "wstr", "MediaInfo_Inform", "ptr", $sHandle[0], "int", 0)
_ArrayAdd($sRL, $Inform[0])

;删除Handle和DLL
$sHandle = DllCall($sDLL, "none", "MediaInfoList_Delete", "ptr", $sHandle[0])
DllClose($sDLL)
Return $sRL
EndFunc ;==>_GetInfoArray
所需MediaInfo.dll最新官方版本(方便大家不用再上官网找)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1威望 +2 金钱 +100 贡献 +10 收起 理由
afan + 2 + 100 + 10

查看全部评分

发表于 2010-7-14 19:02:22 | 显示全部楼层
剩下的就是GUi设计、数组操作、Listview操作、字符串控制了
如果楼主这些都不懂
那我劝你就先把这些基本知识逐个掌握了再提问吧
纯文字换代码,你觉得等价吗?
别人的时间也是时间啊!!!
 楼主| 发表于 2010-7-15 09:06:13 | 显示全部楼层
回复 5# pusofalse


   受教了
 楼主| 发表于 2010-7-15 09:14:24 | 显示全部楼层
回复 7# lynfr8


    谢谢!我没想到你们会帮我这么多,因为没有思路,所以发帖

   没有想过要以纯文字换代码,谢谢你们帮忙!
发表于 2010-9-6 06:01:03 | 显示全部楼层
收藏!不错。。
发表于 2012-1-29 20:26:20 | 显示全部楼层
完美解码就是调用这个  以前也关注过 官方说明很详细
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-30 23:35 , Processed in 0.094817 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表