菜鸟科技网

MediaInfo命令行如何快速提取媒体文件信息?

MediaInfo 是一款强大的多媒体文件分析工具,它能够提供音视频文件的详细技术信息,包括编码格式、分辨率、比特率、帧率、声道数、字幕轨道等,除了图形界面版本,MediaInfo 还提供了功能丰富的命令行版本(MediaInfo CLI),适合批量处理、自动化脚本以及服务器环境下的使用,本文将详细介绍 MediaInfo 命令行的使用方法、常用参数、输出格式及实际应用场景。

MediaInfo命令行如何快速提取媒体文件信息?-图1
(图片来源网络,侵删)

MediaInfo 命令行基础

MediaInfo 命令行的可执行文件通常为 mediainfo(Linux/macOS)或 MediaInfoCLI.exe(Windows),其基本语法结构为:

mediainfo [选项] <文件路径>

基本信息查询

直接运行 mediainfo 文件名 即可输出文件的完整信息,默认格式为“文本视图”,包含 General、Video、Audio、Subtitles 等多个部分,每个部分详细列出了对应轨道的参数。

mediainfo video.mp4

输出示例:

General
Format                                   : MPEG-4
Format profile                           : Base Media
Codec ID                                 : isom (isom/iso2/avc1/mp41)
File size                                : 25.5 MiB
Duration                                 : 1mn 30s
Overall bit rate                         : 2 348 kb/s
...
Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Codec ID                                 : avc1
Bit depth                                : 8 bits
Width                                    : 1 920 pixels
Height                                   : 1 080 pixels
Frame rate                               : 25.000 FPS
...

输出格式控制

MediaInfo 支持多种输出格式,通过 --Output 参数指定:

MediaInfo命令行如何快速提取媒体文件信息?-图2
(图片来源网络,侵删)
  • 文本视图(默认)mediainfo --Output="General; %Duration% seconds" video.mp4
    输出文件的时长(秒)。

  • CSV 格式mediainfo --Output="CSV" video.mp4
    适合表格处理,字段间用逗号分隔。

  • XML 格式mediainfo --Output="XML" video.mp4
    适合程序解析,结构化数据输出。

  • JSON 格式mediainfo --Output="JSON" video.mp4
    现代开发中常用,便于直接集成到代码中。

    MediaInfo命令行如何快速提取媒体文件信息?-图3
    (图片来源网络,侵删)
  • 自定义字段mediainfo --Output="Video; %Width%x%Height%: %FrameRate% FPS" video.mp4
    输出视频的分辨率和帧率,1920x1080: 25.000 FPS

递归与批量处理

  • 递归目录mediainfo --Output="CSV" /path/to/videos/ > report.csv
    分析指定目录下所有文件并生成 CSV 报告。

  • 文件列表输入cat files.txt | xargs -I {} mediainfo --Output="JSON" {} > output.json
    通过管道或文件列表批量处理。

高级参数与功能

信息筛选与深度控制

  • 指定轨道类型mediainfo --Output="Video" video.mp4
    仅输出视频轨道信息。

  • 完整信息mediainfo --Full "video.mp4"
    显示所有可用信息,包括非标准标签。

  • 语言设置mediainfo --Language=eng "video.mp4"
    输出英文标签(默认为系统语言)。

输出重定向与日志

  • 保存到文件mediainfo "video.mp4" > info.txt
    将结果保存到文本文件。

  • 错误日志mediainfo "video.mp4" 2> error.log
    捕获错误信息到日志文件。

实用脚本示例

示例1:批量提取视频分辨率

for file in *.mp4; do
  echo "$file: $(mediainfo --Output="Video; %Width%x%Height%" "$file")"
done

示例2:检查音频编码是否为 AAC

if [[ "$(mediainfo --Output="Audio; %Codec%" "$file")" == "AAC" ]]; then
  echo "File $file has AAC audio."
fi

输出字段详解

MediaInfo 支持数百种输出字段,常用字段如下表所示:

字段类别 字段标识符 说明
General %Format% 容器格式(如 MP4、MKV)
%FileSize% 文件大小(字节)
%Duration% 时长(毫秒)
Video %Width% 视频宽度(像素)
%Height% 视频高度(像素)
%FrameRate% 帧率(FPS)
%BitRate% 比特率(bps)
Audio %Codec% 音频编码(如 AAC、MP3)
%Channel(s)% 声道数(如 2=立体声)
%SamplingRate% 采样率(Hz)

实际应用场景

  1. 媒体资产管理
    生成视频库的元数据报告,便于检索和分类。

  2. 转码前检查
    脚本自动检查视频编码、分辨率是否符合转码要求。

  3. 合规性验证
    确认视频是否满足特定平台的技术规范(如 YouTube 的 1080p@30fps 要求)。

  4. 故障排查
    分析损坏文件的元数据,定位问题轨道。

相关问答 FAQs

Q1: 如何通过 MediaInfo 命令行提取视频文件的编码格式?
A1: 使用以下命令即可提取视频编码格式:

mediainfo --Output="Video; %Codec%" video.mp4

输出可能为 AVC(H.264)或 HEVC(H.265)。

Q2: MediaInfo 命令行如何输出 JSON 格式并指定特定字段?
A2: 通过 --Output 参数结合 JSON 格式和字段标识实现,

mediainfo --Output="{\"Format\":\"%Format%\",\"Resolution\":\"%Width%x%Height%\"}" video.mp4

输出结果为:{"Format":"MPEG-4","Resolution":"1920x1080"}

分享:
扫描分享到社交APP
上一篇
下一篇