如果您只想使用GStreamer,请访问下载页面。 我们为Windows、macOS、Android和iOS提供预构建的二进制文件。
Cerbero是开源项目的跨平台构建聚合器,为不同的平台、架构和发行版构建和创建本机包。它支持本机编译和交叉编译,可以在macOS、Linux和Windows上运行。
如果您:
但是,如果您是想要处理GStreamer代码本身的开发人员 在Linux、Windows或macOS上,使用gst-build要方便得多。 请参阅使用介子构建。
Cerbero为所有平台提供无融资创业设施,但它仍然需要一个最低基础来引导。
在Linux,您只需要一个python>=3.6的发行版。Cerbero将 使用您的包管理器安装所有其他必需的包 引导程序。
在macOS上,您需要安装以下软件:
Cerbero将在引导期间构建所有其他所需的包。
由于所需的包,Windows上的初始设置有点长 必须手动安装。您需要安装的详细步骤是 在页面的底部。
要使用Cerbero构建GStreamer,您首先需要下载Cerbero:
$ git clone gitlab.freedesktop/gstreamer/cerbero
这将构建最新的未发布GStreamer代码。
尽管存在setup.py
,但此工具不需要安装。它是 通过cerbero-uninstalled
脚本调用,该脚本应该被调用为 ./cerbero-uninstalled
,或者你可以创建一个别名到它在你的.bashrc
文件。
您可以通过签出该标签来构建特定版本,例如git checkout 1.18.4
。构建发布标签将导致Cerbero使用该版本 获取gstream er食谱时,tarball而不是git存储库 建筑。
您还可以构建最新的未发布的“稳定分支”代码,例如 1.18你会做:git checkout 1.18
,或git clone -b 1.18 [...]
,这将 在构建gstream er配方时获取相应的稳定分支。
您还可以使用git工作树,这在构建时可能更方便 几个不同版本的gstream er,因为构建工件总是去 进入git存储库内的build
目录。
在第一次使用cerbero之前,您需要运行bootstrap命令。此命令使用包管理器(如果可用)安装构建系统中缺失的部分,并在为Windows/MinGW或Android构建时下载必要的工具链。
请注意,这需要一段时间(在Windows上需要几个小时甚至更长时间)。
$ ./cerbero-uninstalled bootstrap
在Linux和macOS上,这将使用sudo
对系统进行更改。
然后引导过程将安装或构建构建GStreamer所需的所有软件包。
要生成GStreamer二进制文件,请使用以下命令:
$ ./cerbero-uninstalled package gstreamer-1.0
这将获取和构建所有必需的GStreamer组件并为您的发行版创建包,然后将它们放在Cerbero源目录中。
可以使用以下命令检索要构建的支持包列表:
$ ./cerbero-uninstalled list-packages
包由0个(如果是元包)或更多组件组成,如果需要,可以单独构建。这些组件定义为单独的配方,可以列出:
$ ./cerbero-uninstalled list
要构建单个配方及其依赖项,请执行以下操作:
$ ./cerbero-uninstalled build <recipe_name>
或者在不构建其依赖项的情况下构建或强制重建配方,请使用:
$ ./cerbero-uninstalled buildone <recipe_name>
要擦拭一切并从头开始:
$ ./cerbero-uninstalled wipe
构建完成后,所有配方构建的二进制文件将安装在内部 Cerbero源代码树中build
目录中的自动检测前缀。
如果您使用Cerbero交叉编译到iOS、Android、Cross-MinGW或UWP,则必须选择适当的配置文件并将其传递给所有步骤:引导、构建、打包等。
例如,如果你在Linux,你想为Android Universal构建,你必须运行:
# Bootstrap for Android Universal on Linux
$ ./cerbero-uninstalled -c config/cross-android-universal.cbc bootstrap
# Build everything and package for Android Universal
$ ./cerbero-uninstalled -c config/cross-android-universal.cbc package gstreamer-1.0
以下是每台目标机器的配置文件列表:
目标 | 配置文件 |
---|---|
MinGW 32位 | cross-win32.cbc |
MinGW 64位 | cross-win64.cbc |
安卓通用 | cross-android-universal.cbc |
安卓ARM64 | cross-android-arm64.cbc |
安卓ARMv7 | cross-android-armv7.cbc |
安卓x86 | cross-android-x86.cbc |
安卓x86_64 | cross-android-x86-64.cbc |
目标 | 配置文件 |
---|---|
macOS系统框架 | osx-x86-64.cbc |
iOS通用 | cross-ios-universal.cbc |
iOSARM64 | cross-ios-arm64.cbc |
iOSARMv7 | cross-ios-armv7.cbc |
iOSx86 | cross-ios-x86.cbc |
iOS | cross-ios-x86-64.cbc |
在Windows上,配置文件用于选择架构,变体用于选择工具链(MinGW、MSVC、UWP):
目标 | 配置文件 | 变体 |
---|---|---|
MinGW x86 | win32.cbc | |
MinGWx86_64 | win64.cbc | |
MSVC x86 | win32.cbc | 视觉工作室 |
MSVCx86_64 | win64.cbc | 视觉工作室 |
UWP x86 | win32.cbc | uwp |
UWPx86_64 | win64.cbc | uwp |
UWP ARM64 | cross-win-arm64.cbc | uwp |
UWP Universal | cross-uwp-universal.cbc | (隐式uwp) |
示例用法:
# Target MinGW 32-bit
$ ./cerbero-uninstalled -c config/win32.cbc package gstreamer-1.0
# Target MSVC 64-bit
$ ./cerbero-uninstalled -c config/win64.cbc -v visualstudio package gstreamer-1.0
# Target UWP, x86_64
$ ./cerbero-uninstalled -c config/win64.cbc -v uwp package gstreamer-1.0
# Target UWP, Cross ARM64
$ ./cerbero-uninstalled -c config/cross-win-arm64.cbc -v uwp package gstreamer-1.0
# Target UWP, All Supported Arches
$ ./cerbero-uninstalled -c config/cross-uwp-universal.cbc package gstreamer-1.0
Cerbero可以将其引导和打包命令拆分为对CI设置有用的阶段。例如,您可能想要进行任何系统设置(例如安装包),并在构建CI映像时获取所有源以缓存它们:
$ ./cerbero-uninstalled fetch-bootstrap
$ ./cerbero-uninstalled fetch-package gstreamer-1.0
# This will use "sudo"
$ ./cerbero-uninstalled bootstrap --system=yes --toolchains=no --build-tools=no --offline
然后在您的CI作业中,您将不需要root来执行其余步骤:
$ ./cerbero-uninstalled bootstrap --system=no --toolchains=yes --build-tools=yes --offline
# When building a non-tagged commit, this will update the git repos for all gstreamer recipes
$ ./cerbero-uninstalled fetch-package gstreamer-1.0
$ ./cerbero-uninstalled package gstreamer-1.0 --offline
有关更多灵感,请参阅GStreamer的GitLab CI设置。
Cerbero通过variants
控制可选和特定于平台的功能。你 可以通过运行以下命令查看可用变体的完整列表:
$ ./cerbero-uninstalled --list-variants
一些变体默认启用,而另一些则不启用。您可以通过执行以下操作之一来启用特定变体:
-v
参数调用cerbero-uninstalled
,例如:$ ./cerbero-uninstalled -v variantname [-c ...] package gstreamer-1.0
~/.cerbero/cerbero.cbc
并添加variants = ['variantname']
在 底部。如果文件不存在,请创建它。多个变体可以用逗号分隔,也可以用多个-v
参数,例如以下是等效的:
$ ./cerbero-uninstalled -v variantname1,variantname2 [-c ...] package gstreamer-1.0
$ ./cerbero-uninstalled -v variantname1 -v variantname2 [-c ...] package gstreamer-1.0
要显式禁用变体,请改用novariantname
。
在同一变体多次启用/禁用的情况下,命令行上的最后一个条件将生效。例如,如果noVariantname是最后一个,则禁用Variantname。
从版本1.15.2开始,Cerbero内置了对构建Qt5的支持 QML GStreamer插件。您可以通过 启用qt5变体。
您还必须告诉Cerbero您的Qt5安装前缀在哪里。你可以做到的 通过设置QMAKE
环境变量指向qmake
,您 要使用,f. ex./path/to/Qt5.12.0/5.12.0/ios/bin/qmake
当构建Android通用与Qt<5.14,而不是QMAKE
,你 必须设置指向目录的QT5_PREFIX
环境变量 在包含所有android目标的前缀f. ex中。 /path/to/Qt5.12.0/5.12.0
。
接下来,运行package
:
$ export QMAKE='/path/to/Qt5.12.0/5.12.0/<target>/bin/qmake'
$ ./cerbero-uninstalled -v qt5 [-c ...] package gstreamer-1.0
这将尝试构建Qt5 QML插件,如果找不到Qt5或无法构建插件,则会出错。插件将自动添加到输出的包中。
注意:输出的包将不包含Qt5库的副本。您必须在自己构建应用程序时链接到它们。
从版本1.15.2开始,Cerbero内置了对为英特尔和英伟达构建和打包硬件编解码器的支持。如果启用了适当的变体,插件要么会被构建,要么Cerbero会在不可能的情况下出错。
对于Intel,要启用的变体 是intelmsdk
,它将构建msdk
插件。
您必须设置INTELMEDIASDKROOT
var以指向您的英特尔媒体SDK前缀,或者您必须具有 SDK的pkgconfig前缀在PKG_CONFIG_PATH
在Windows上,INTELMEDIASDKROOT
由安装程序自动设置。在Linux, 如果您需要设置此项,则必须将其设置为指向以下目录 包含mediasdkinclude
和lib64
目录。
对于VA-API,要启用的变体 是vaapi
,它将构建gstream er-vaapi插件 如果可能,启用选项。
自1.17.1以来,nvcodec
插件不需要访问Nvidia Video SDK 或CUDA SDK。它现在在运行时加载所有内容。因此,它现在已启用 默认情况下在所有平台上。
从版本1.15.2开始,Cerbero支持构建所有GStreamer配方, 所有强制依赖项(如glib、libffi、zlib等),以及一些外部的 与Visual Studio的依赖关系。您必须通过启用 的visualstudio变体:
$ python ./cerbero-uninstalled -v visualstudio package gstreamer-1.0
如果您已经有Cerbero版本,强烈建议运行wipe
切换到使用Visual Studio构建之前的命令。
一些需要外部依赖的插件将被自动禁用,当 以这种模式运行。
目前,大多数使用Meson(btype = BuildType.MESON
)的配方和那些 将can_msvc
配方属性设置为True
的 工作室。
重要提示:在Windows上使用cerbero和GCC/MinGW工具链 需要64位操作系统。该工具链仅适用于64位 它可以生成32位或64位二进制文件。
这些步骤是在Windows上使用Cerbero所必需的。
下载Windows可执行安装程序 并运行它。
在第二页,默认值很好
第三页,您必须选择以下选项:
启用或安装. NET3.5.1框架
在Windows 10上,从系统设置中的PATH变量中删除Windows应用商店路径条目。否则,Cerbero将尝试使用虚拟的Windows Store版本的Python
下载Git for Windows安装程序并运行它。
第一页是许可证
下一页是Select Components
,默认值很好,启用您喜欢的任何其他选项
Next Choosing the default editor used by Git
,选择您喜欢的任何内容
Next Adjusting your PATH environment
,您必须选择如屏幕截图所示
NextChoosing HTTPS transport backend
,默认没问题
NextConfiguring the line ending conversions
,您必须选择如屏幕截图所示
NextConfiguring the terminal emulator
,默认没问题
NextConfiguring extra options
,默认没问题
Git将安装在C:Program FilesGit
。
下载mingw-get-setup可执行安装程序并运行它。
第一页,保持所有选项不变
第二页将下载最新的包装目录和基本包装
完成后,MinGW安装管理器将打开,在基本设置下选择以下软件包:
然后,单击Installation
菜单并选择Apply Changes
。MSYS将 安装在C:MinGW
。
重要提示:安装后,您必须在桌面上创建一个快捷方式 C:MinGWmsys1.0msys.bat
,它将运行MinGW shell。你必须从里面运行Cerbero。
注意:Cerbero不使用MSYS附带的MinGW编译器工具链。 我们下载自己的定制GCC工具链 <a i=4>引导期间。
注意:MSYS与MSYS2不同 GStreamer项目不支持在MSYS2中运行Cerbero 环境。东西可能会工作,也可能会坏掉,你可以保留碎片。
这是正确生成使用MinGW构建的食谱的导入库所必需的。支持社区构建和专业构建。
安装Visual Studio时必须安装最新的Windows 10 SDK,如下所示。您不需要任何较旧的Windows SDK。
如果要为UWP(又名通用Windows平台)构建,则必须使用VS 2017或更新版本,并且还必须选择通用Windows平台工作负载:
您可以在以下位置找到所有版本的Visual Studio:visualstudio.microsoft/vs/older-downloads/
CMake:ake/cmake/resources/software.html
WiX3.11.1安装:github/wixtoolset/wix3/releases/tag/wix3111rtm
您应该将cerbero git目录添加到防病毒软件中排除的文件夹列表中,否则当Autotools执行重命名和删除等文件操作时,您将获得随机构建失败。它还会将您的构建速度减慢约3-4倍。
Cerbero必须在明GW shell中运行,可从主菜单访问 或桌面。如果不是,请在桌面上创建一个快捷方式到C:MinGWmsys1.0msys.bat
您的$HOME
路径不能包含空格。如果您的Windows用户名 包含空格,您可以在/home
中创建一个新目录并执行:
如果您使用的是Windows 10,也强烈建议在Windows设置中启用“开发人员模式”,如下所示。
$ echo 'export HOME=/home/newdir' > ~/.profile
然后重新启动shell并键入cd
以转到新的主目录。
请注意,在shell内部,/
被映射到C:Mingwmsys1.0
© 2021, Nirbheek Chauha
本文发布于:2025-04-08 03:25:00,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/1744053926585030.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |