vlc-unity编译过程
2024年8月25日大约 1 分钟
最近一个项目需要在 Unity 中播放 RTSP 视频流,打算使用 vlc-unity,简单记录一下自行编译过程。
这篇文章在未来的某个时刻,肯定会过期的,看的时候要注意一下。
看文章要思考,不要看到命令就复制,要学会举一反三,自行思考。
本篇文章基本是按照
vlc-unity
的 .gitlab-ci.yml 文件写的,所以请以.gitlab-ci.yml
为准,阅读本文前,请阅读.gitlab-ci.yml
,并注意后续更新。本文以 win64 平台为例,其他平台请自行思考。
基础环境
准备 docker 环境,这里不再赘述。
启动镜像
docker run -it --user root --entrypoint /bin/bash registry.videolan.org/vlc-debian-llvm-msvcrt:20240617101054 -s
然后克隆代码
git clone https://github.com/videolan/vlc-unity.git && cd vlc-unity
git clone https://github.com/videolan/vlc.git && cd vlc
git apply ../patches/disable-activex.patch
编译 VLC
编译 vlc
extras/package/win32/build.sh -c -z -r -x -a x86_64 -i nope -g l
cd win64
make package-win-strip
rm -rf vlc-4.0.0-dev/lua/http
cd ../../
然后把 vlv/win64/vlc-4.0.0-dev/
目录拷贝下来备用。
编译 VLC-UNITY
PKG_CONFIG_PATH=./vlc/win64/_win32/lib/pkgconfig meson setup build_windows --cross-file=cross/windows-x86_64.txt -Dwatermark=false --buildtype release
ninja -C build_windows
cp build_windows/PluginSource/libVLCUnityPlugin-1.dll VLCUnityPlugin.dll
然后把 VLCUnityPlugin.dll
拷贝下来备用。
编译 LIBVLCSHARP
这一部分在 windows 环境上搞就行,当然 Linux 中也可以,这里还是用 Docker
docker run -it --user root --entrypoint /bin/bash mcr.microsoft.com/dotnet/sdk:8.0 -s
git clone https://code.videolan.org/videolan/LibVLCSharp lvs && cd lvs
git checkout -f master
dotnet build src/LibVLCSharp/LibVLCSharp.csproj /p:UNITY=true -c Release
然后把 lvs/src/LibVLCSharp/bin/Release/netstandard2.0/
目录拷贝下来备用。
测试
至此,所有需要的文件就全部编译完成了,克隆 vlc-unity
仓库,将前面编译的文件放入工程中,测试功能是否正常。