█任务
批量提取MP4、AVI、RMVB、H.264、FLV、MP3、WAV、MPEG、FLAC、3GP、JPG、PNG、PSD等格式视频、音频、图片文件(以下简称目标文件)的基础元数据信息(如编码格式、码率、帧率、帧数、采样率、分辨率、比例等),并将其导出到Excel表格、txt文本或csv文本数据表等文件中。
█思路
1、ffprobe可获取视频、音频、图像元数据信息,并将其以固定格式导出,适合正则表达式提取关键信息。
2、简单的循环命令可实现遍历文件和调用ffprobe批量提取文件信息,经过简单处理后传递给正则表达式命令,即可将关键信息匹配提取并导出至文件。
█工具
1、ffprobe(可通过安装ffmpeg来使用ffprobe,也可以直接调用ffprobe独立程序)
2、powershell或其他主流语言环境命令行终端。(用于调用ffprobe配合循环命令实现批量提取文件信息和导出等文件管理功能,推荐使用powershell,因为大部分win系统桌面端预装自带powershell,并且在linux和macOS平台也可安装)
3、在移动端(手机),安卓Android和苹果iOS系统可分别通过termux和pythonista等终端模拟器,使用python、linux等命令调用ffprobe,思路类似)。
█代码
(一)代码说明
1、以powershell环境为例。
2、以目标文件在一个文件夹中的情况为例。在文件管理器打开目标文件夹,直接在地址栏键入“powershell”(没有双引号),打开powershell。(也可以cd命令进入目标文件所在文件夹)
3、对于目标文件数量较少的情况,可借助[System.Windows.Clipboard]类的GetFileDropList()实现点选文件获取信息的简便操作:
在资源管理器中选择目标文件,ctrl+c复制,在powershell中即可通过Get-ChildItem @([System.Windows.Clipboard]::GetFileDropList())命令获取选择的文件的列表,后续操作及命令参照下文完整代码。
4、对于目标文件跨文件夹的情况,分享3种简单的思路:
(1)直接在ls命令path参数键入多个文件(夹)路径。
(2)gc命令读取预制作的含文件(夹)路径的文本文件(txt或其他文本格式),再传递给ls命令。(gc是Get-Content命令的别称