MediaArea/MediaInfo
GitHub: MediaArea/MediaInfo
MediaInfo 是一款用于便捷、统一地查看视频和音频文件技术参数与标签数据的多媒体元数据工具。
Stars: 1929 | Forks: 189
# MediaInfo README
MediaInfo 提供了一种便捷、统一的方式来显示视频和音频文件中最相关的技术数据和标签数据。
[](https://github.com/MediaArea/MediaInfo/actions/workflows/MediaInfo_Checks.yml) [](https://github.com/MediaArea/MediaInfo/actions/workflows/MediaInfo-Qt_Checks.yml) [](https://github.com/MediaArea/MediaInfo/actions/workflows/MediaInfo-Android_Checks.yml)
## 关于
此代码库包含了 [MediaInfoLib](https://github.com/MediaArea/MediaInfoLib) 的 CLI 和 GUI 源代码。
该 CLI 可在多种桌面操作系统上使用。
如下所示,Windows 和 Linux 有几种不同的 GUI。Android 和 Apple 的操作系统也有各自的 GUI。
| | Windows | Linux |
| ----------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
| **Qt GUI** |
|
|
| **UWP GUI** |
| |
| **VCL GUI** |
| |
| **wxWidgets GUI** |
|
|
该 CLI 和 GUI 支持多种 CPU 架构。
## 如何构建 MediaInfo
### 目录
- [为 Windows 构建](#build-for-windows)
- [前置条件](#prerequisites)
- [构建 Windows CLI](#build-windows-cli)
- [构建 Windows GUI](#build-windows-gui)
- [Qt GUI](#qt-gui)
- [VCL GUI](#vcl-gui)
- [wxWidgets GUI](#wxwidgets-gui)
- [为 macOS 和 Linux 构建](#build-for-macos-and-linux)
- [macOS 下的依赖项](#dependencies-under-macos)
- [Linux 下的依赖项](#dependencies-under-linux)
- [构建 MediaInfo CLI](#build-mediainfo-cli)
- [构建 MediaInfo GUI](#build-mediainfo-gui)
- [构建 MediaInfo Qt GUI](#build-mediainfo-qt-gui)
- [使用 CMake 构建 CLI](#build-cli-with-cmake)
- [为其他操作系统构建](#build-for-other-operating-systems)
### 为 Windows 构建
MediaInfo 可以在 Windows 上针对 x86、x86-64/x64/amd64 和 arm64 CPU 架构进行构建。
#### 前置条件
以下是在 Windows 上构建 CLI 或任何 GUI 所需的通用前置条件。
##### 软件
- Git for Windows ( ) 和/或 GitHub Desktop ( )
- Visual Studio 2022 Community Edition ( ) 或其他版本
- 也可以使用 Visual Studio 2026。在这种情况下,请在整篇指南中使用 `MSVC2026` 目录中的 `.slnx` 文件,而不是 `MSVC2022` 目录中的 `.sln` 文件。
##### 代码库
创建一个空文件夹,并使用 Git 或 GitHub Desktop 克隆以下代码库:
- 此代码库 ()
-
-
-
如果你需要 Curl 或 Graph Plugin,可以分别从 [MediaArea-Utils-Binaries](https://github.com/MediaArea/MediaArea-Utils-Binaries) 和 [MediaInfo-Graph-Plugin-Binaries](https://github.com/MediaArea/MediaInfo-Graph-Plugin-Binaries) 获取。
本指南的其余部分将假定你位于这个新创建的文件夹中。此外,还假定你已经通过打开开发者命令提示符、调用相应的批处理文件或手动添加,将开发工具放入了 `PATH` 环境变量中。
#### 构建 Windows CLI
要使用 Visual Studio IDE 进行构建,请打开 `MediaInfo\Project\MSVC2022\MediaInfo.sln` 并构建 **MediaInfo-CLI** 项目。
要使用命令行进行构建:
```
MSBuild -t:MediaInfo-CLI -p:Configuration=Release;Platform=x64 MediaInfo\Project\MSVC2022\MediaInfo.sln
```
运行 CLI:
```
MediaInfo\Project\MSVC2022\x64\Release\MediaInfo.exe
```
也可以使用构建脚本,其中 `` 可以是 `Win32`、`x64` 或 `ARM64`,`` 可以是 `MSVC2022` 或 `MSVC2026`:
```
.\MediaInfo\Release\Build_CLI_Windows.ps1
```
同样,在运行构建脚本之后,可以使用发布脚本生成类似于官方发布的 zip 压缩包。请注意,此过程需要来自 MediaArea-Utils-Binaries 的 7z 和 Curl。
```
.\MediaInfo\Release\Release_CLI_Windows.ps1
```
#### 构建 Windows GUI
在 Windows 上有使用不同 GUI 框架的多种 GUI。每种 GUI 都有不同的设计和功能集。受支持的 Windows 版本和 CPU 架构取决于所使用的 GUI 框架。
##### Qt GUI
如果你尚未安装 Qt,请安装用于开源用途的 Qt ()。对于 Windows 11,建议使用最新版本或至少 6.11.0 版本。更新翻译文件需要用到 Python。它可以从 Microsoft Store 安装。
运行以下命令来准备前置条件:
```
MSBuild -t:MediaInfoDLL -p:Configuration=Release;Platform=x64 MediaInfoLib\Project\MSVC2022\MediaInfoLib.sln
```
可以通过在 Qt Creator 中打开 `MediaInfo\Project\QMake\GUI\MediaInfoQt.pro` 或使用命令行来构建 Qt GUI:
```
qmake.exe MediaInfo\Project\QMake\GUI\MediaInfoQt.pro -spec win32-msvc "CONFIG+=qtquickcompiler"
jom.exe
```
要使用 Qt Creator 运行 GUI,请按 `Ctrl` + `R`。
要使用命令行运行 GUI,首先需要部署 Qt 依赖项:
```
windeployqt --no-quick-import --no-translations --no-system-d3d-compiler --no-system-dxc-compiler --no-compiler-runtime --no-opengl-sw x64\MediaInfo.exe
```
然后即可运行 GUI:
```
x64\MediaInfo.exe
```
##### VCL GUI
安装 C++Builder 12 Community Edition (),并从 `Tools` > `GetIt Package Manager` 安装以下依赖项:
- VCL Windows Style - Windows11 Dark 1.0,由 Embarcadero Technologies 提供
- EdgeView2 SDK 1.0.2739.1,由 Microsoft 提供
运行以下命令准备依赖项:
```
MSBuild -t:MediaInfoDLL -p:Configuration=Release;Platform=x64 MediaInfoLib\Project\MSVC2022\MediaInfoLib.sln
xcopy /y MediaInfoLib\Project\MSVC2022\x64\Release\MediaInfo.dll MediaInfo\Project\BCB\GUI\Win64x\Release\
xcopy /y "C:\Program Files (x86)\Embarcadero\Studio\23.0\Redist\win64\WebView2Loader.dll" MediaInfo\Project\BCB\GUI\Win64x\Release\
robocopy MediaInfo\Source\Resource\Plugin MediaInfo\Project\BCB\GUI\Win64x\Release\Plugin /mir
call "C:\Program Files (x86)\Embarcadero\Studio\23.0\bin\rsvars.bat"
MSBuild /t:Build /p:Configuration=Release;Platform=Win64x zlib\contrib\BCB\zlib.cbproj
MSBuild /t:Build /p:Configuration=Release;Platform=Win64x ZenLib\Project\BCB\Library\ZenLib.cbproj
```
可以通过在 C++Builder 中打开 `MediaInfo\Project\BCB\GUI\MediaInfo_GUI.cbproj` 或使用命令行来构建 VCL GUI:
```
MSBuild /t:Build /p:Configuration=Release;Platform=Win64x MediaInfo\Project\BCB\GUI\MediaInfo_GUI.cbproj
```
运行 GUI:
```
MediaInfo\Project\BCB\GUI\Win64x\Release\MediaInfo_GUI.exe
```
##### wxWidgets GUI
克隆 以获取所需的 wxWidgets 源代码。
要使用 Visual Studio IDE 进行构建,请打开 `MediaInfo\Project\MSVC2022\MediaInfo.sln` 并构建 **MediaInfo-GUI** 项目。
要使用命令行进行构建:
```
MSBuild -t:MediaInfo-GUI -p:Configuration=Release;Platform=x64 MediaInfo\Project\MSVC2022\MediaInfo.sln
```
运行 GUI:
```
MediaInfo\Project\MSVC2022\x64\Release\MediaInfo-GUI.exe
```
### 为 macOS 和 Linux 构建
首先,你必须创建一个目录,用于存放 MediaInfo 目录,以及 ZenLib 和 MediaInfoLib(如果你决定自行编译它们)。
在本文档中,此目录将被称为 $BUILD_DIR。
#### macOS 下的依赖项
##### MacPorts
部分依赖项可通过 MacPorts 获取。要安装 MacPorts:
```
port install autoconf automake libtool pkgconfig zlib wxWidgets-3.0
```
*MediaArea 工具*
- [libzen](#zenlib)
- [libmediainfo](#mediainfolib)
#### Linux 下的依赖项
##### 列表
*构建工具*
- git
- automake
- autoconf
- libtool
- pkgconfig
- make
- g++
*MediaArea 工具*
- libzen0
- libmediainfo0
*CLI 和 GUI 依赖项*
- zlib
*仅 GUI 依赖项*
- wxwidgets
##### Ubuntu
*构建工具和 CLI/GUI 依赖项*
```
apt-get install git automake autoconf libtool pkg-config make g++ zlib1g-dev
```
*MediaArea 工具*
前往 https://mediaarea.net/fr/MediaInfo/Download/Ubuntu,下载与你的 Ubuntu 版本对应的 libmediainfo0、libmediainfo-dev、libzen0 和 libzen-dev 软件包。然后使用以下命令安装它们:
```
dpkg -i libmediainfo* libzen*
```
*仅 GUI 依赖项*
```
apt-get install libwxgtk3.2-dev
```
##### Fedora
*构建工具和 CLI/GUI 依赖项*
```
sudo yum install git automake autoconf libtool pkgconfig make gcc-c++ zlib-devel
```
*MediaArea 工具*
前往 ,下载与你的 Fedora 版本和 CPU 架构对应的 libmediainfo0、libmediainfo-devel、libzen0 和 libzen-devel 软件包。然后使用以下命令安装它们:
```
sudo yum install libmediainfo*.rpm libzen*.rpm
```
*仅 GUI 依赖项*
```
sudo yum install wxGTK-devel desktop-file-utils
```
##### Debian
*构建工具和 CLI/GUI 依赖项*
```
apt-get install git automake autoconf libtool pkg-config make g++ zlib1g-dev
```
*MediaArea 工具*
前往 ,下载与你的 Debian 版本对应的 libmediainfo0、libmediainfo-dev、libzen0 和 libzen-dev 软件包。然后使用以下命令安装它们:
```
dpkg -i libmediainfo* libzen*
```
*仅 GUI 依赖项*
```
apt-get install libwxgtk3.0-dev
```
##### OpenSUSE
*构建工具和 CLI/GUI 依赖项*
```
zypper install git automake autoconf libtool pkgconfig make gcc-c++ zlib-devel
```
*MediaArea 工具*
前往 ,下载与你的 OpenSuse 版本对应的 libmediainfo0、libmediainfo-devel、libzen0 和 libzen-devel 软件包。然后使用以下命令安装它们:
```
rpm -i libmediainfo* libzen*
```
*仅 GUI 依赖项*
```
zypper install libqt4-devel libQtWebKit-devel update-desktop-files
```
#### 构建 MediaInfo CLI
完成你所处配置的所有前置条件后,即可构建 MediaInfo。我们从 CLI 开始。
```
cd $BUILD_DIR
git clone https://github.com/MediaArea/MediaInfo.git
cd MediaInfo/Project/GNU/CLI
./autogen.sh
```
然后,在 macOS 下:
```
./configure --enable-staticlibs
make
```
在 Linux 下:
```
./configure --enable-shared
make
```
如果同时构建了 ZenLib 和 MediaInfoLib,则可生成静态链接的可执行文件:
```
./configure --enable-staticlibs
make
```
##### 启动 CLI
```
./mediainfo
```
#### 构建 MediaInfo GUI
如果你已经构建了 CLI,则无需再次运行 git。事实上,如果在已存在 MediaInfo 目录的情况下再次运行 git,git 将会报错并退出。
要在 macOS 和 Linux 下编译 MediaInfo GUI:
```
cd $BUILD_DIR
git clone https://github.com/MediaArea/MediaInfo.git
cd MediaInfo/Project/GNU/GUI
./autogen.sh
```
然后,在 macOS 下:
```
export PATH=$PATH:/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3/0/bin
./configure --enable-staticlibs
make
```
在 Linux 下:
```
./configure --enable-shared
make
```
如果同时构建了 ZenLib 和 MediaInfoLib,则可生成静态链接的可执行文件:
```
./configure --enable-staticlibs
make
```
##### 启动 GUI
```
./mediainfo-gui
```
#### 构建 MediaInfo Qt GUI
安装以下依赖项。它们的确切名称取决于你所使用操作系统的软件包仓库。
- qt-base-dev
- qt-svg-dev
- qt-tools-dev-tools
- qt-webengine-dev
- curl(可选)
- graphviz(可选)
然后:
```
qmake MediaInfo/Project/QMake/GUI/MediaInfoQt.pro -spec linux-g++ CONFIG+=qtquickcompiler && make qmake_all
make -j4
```
##### 启动 Qt GUI
```
./mediainfo-gui
```
#### 可选:构建 ZenLib 和 MediaInfoLib
##### ZenLib
在 macOS 和 Linux 下编译 ZenLib:
```
cd $BUILD_DIR
git clone https://github.com/MediaArea/ZenLib.git
cd ZenLib/Project/GNU/Library
./autogen.sh
./configure --enable-static
make
```
##### MediaInfoLib
在 macOS 和 Linux 下编译 MediaInfoLib:
```
cd $BUILD_DIR
git clone https://github.com/MediaArea/MediaInfoLib.git
cd MediaInfoLib/Project/GNU/Library
./autogen.sh
./configure --enable-static
make
```
### 使用 CMake 构建 CLI
首先,确保必要的构建工具已安装并能在命令行中使用:
- Git
- CMake
- C/C++ 构建工具
- Ninja(可选)
要使用 CMake 构建静态链接的 MediaInfo CLI,请创建一个新目录并在其中运行以下命令:
```
git clone https://github.com/MediaArea/MediaInfo.git
cmake -G Ninja -D CMAKE_PREFIX_PATH=./install/ -D CMAKE_INSTALL_PREFIX=./install/ -D CMAKE_BUILD_TYPE=Release -D BUILD_ZENLIB=ON -D BUILD_ZLIB=ON -D ZLIB_BUILD_SHARED=OFF -D ZLIB_BUILD_TESTING=OFF -B build ./MediaInfo/Project/CMake/CLI/
cmake --build build
cmake --install build
```
依赖项将由 CMake 通过 Git 自动获取。
MediaInfo CLI 将位于 `./install/bin/mediainfo`。
### 为其他操作系统构建
其他操作系统的项目文件可以在 `MediaInfo/Source/GUI` 和 `MediaInfo/Project` 中找到。
MediaInfo -
版权所有 (c) MediaArea.net SARL。保留所有权利。
本程序是在 BSD-2-Clause 许可协议条款下的免费软件。
查看[许可协议](https://mediaarea.net/en/MediaInfo/License)了解更多信息
|
|
| **UWP GUI** |
| |
| **VCL GUI** |
| |
| **wxWidgets GUI** |
|
|
该 CLI 和 GUI 支持多种 CPU 架构。
## 如何构建 MediaInfo
### 目录
- [为 Windows 构建](#build-for-windows)
- [前置条件](#prerequisites)
- [构建 Windows CLI](#build-windows-cli)
- [构建 Windows GUI](#build-windows-gui)
- [Qt GUI](#qt-gui)
- [VCL GUI](#vcl-gui)
- [wxWidgets GUI](#wxwidgets-gui)
- [为 macOS 和 Linux 构建](#build-for-macos-and-linux)
- [macOS 下的依赖项](#dependencies-under-macos)
- [Linux 下的依赖项](#dependencies-under-linux)
- [构建 MediaInfo CLI](#build-mediainfo-cli)
- [构建 MediaInfo GUI](#build-mediainfo-gui)
- [构建 MediaInfo Qt GUI](#build-mediainfo-qt-gui)
- [使用 CMake 构建 CLI](#build-cli-with-cmake)
- [为其他操作系统构建](#build-for-other-operating-systems)
### 为 Windows 构建
MediaInfo 可以在 Windows 上针对 x86、x86-64/x64/amd64 和 arm64 CPU 架构进行构建。
#### 前置条件
以下是在 Windows 上构建 CLI 或任何 GUI 所需的通用前置条件。
##### 软件
- Git for Windows (标签:Bash脚本, CLI, GUI, WiFi技术, 元数据, 多媒体, 文件信息, 音视频处理