@@ -11,59 +11,107 @@ VP9 解码器播放。
1111- 从默认 key 文件读取密钥,适合在文件管理器里双击打开。
1212- 基于时间轴拖动进度。
1313
14- ## 安装
14+ ## 构建
15+
16+ ### Linux
17+
18+ ``` sh
19+ cmake -S . -B build
20+ cmake --build build
21+ ctest --test-dir build --output-on-failure
22+ ```
23+
24+ ### Windows (MSYS2 / MinGW64)
25+
26+ 在 MSYS2 的 ** MINGW64** shell 里安装依赖并构建:
1527
16- 构建完成后将libusm_plugin.dll放入以下路径:
28+ ``` sh
29+ pacman -S --needed mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake \
30+ mingw-w64-x86_64-pkgconf mingw-w64-x86_64-ninja \
31+ mingw-w64-x86_64-libvpx mingw-w64-x86_64-vlc
1732
33+ cmake -S . -B build -G Ninja
34+ cmake --build build
35+ ctest --test-dir build --output-on-failure
1836```
19- # VLC Windows版默认安装路径:
20- C:\Program Files\VideoLAN\VLC\plugins\demux(经测试暂不可用)
2137
22- # MSYS2版VLC默认安装路径:
23- C:\msys64\mingw64\lib\vlc\plugins\demux
38+ 从 MINGW64 shell 构建时 ` pkg-config ` 会自动找到 ` vlc-plugin ` 和 ` vpx ` ,无需手动配置
39+ 路径。若在其它环境构建,用环境变量 ` PKG_CONFIG_PATH ` 或 ` -DCMAKE_PREFIX_PATH ` 指定。
40+
41+ ## 安装
42+
43+ ### Arch 包
44+
45+ ``` sh
46+ cd packaging/arch
47+ PKGDEST=../.. makepkg -f
48+ cd ../..
49+ sudo pacman -U vlc-plugin-usm-0.1.0-3-x86_64.pkg.tar.zst
2450```
2551
26- 安装后若不识别请手动删除 ` plugins.dat ` 并使用
52+ 安装后 VLC 的插件缓存会由 pacman hook 自动更新。
53+
54+ ### Windows
55+
56+ 把构建出的 ` libusm_plugin.dll ` 放进 VLC 的 ` plugins/demux ` 目录:
57+
58+ - MSYS2 版 VLC:` C:\msys64\mingw64\lib\vlc\plugins\demux\ `
59+ - 官网版 VLC:` C:\Program Files\VideoLAN\VLC\plugins\demux\ `
60+
61+ > 注意:本插件依赖 libvpx,MSYS2 构建出的 DLL 会动态链接 ` libvpx-1.dll ` 以及
62+ > mingw 运行时(` libgcc_s_seh-1.dll ` 、` libwinpthread-1.dll ` )。MSYS2 版 VLC 因为
63+ > 这些 DLL 在 ` mingw64\bin ` (已在 PATH 上)能正常加载;官网版 VLC 不自带这些 DLL,
64+ > 直接拷过去会因找不到依赖而静默加载失败。让官网版可用的方案仍在完善中。
65+
66+ 安装后若不识别,删除缓存 ` plugins.dat ` 并重建:
67+
2768``` powershell
28- & "C:\Program Files\VideoLAN\VLC\vlc-cache-gen.exe" ./ plugins
69+ & "C:\Program Files\VideoLAN\VLC\vlc-cache-gen.exe" "C:\Program Files\VideoLAN\VLC\ plugins"
2970```
30- 重建缓存。~~ (貌似没用)~~
3171
3272## 配置密钥
3373
34- ~~ 推荐把 key 写到默认配置文件里,这样双击文件打开时也能自动解密:~~
74+ 推荐把 key 写到 VLC 配置目录下的默认文件里,这样双击文件打开时也能自动解密。
75+
76+ Linux:
3577
3678``` sh
3779mkdir -p ~ /.config/vlc
3880printf ' 0x7F4551499DF55E68\n' > ~ /.config/vlc/usm-keys.txt
3981```
4082
41- ~~ 默认读取顺序:~~
83+ Windows(官网版 VLC):
84+
85+ ``` powershell
86+ New-Item -ItemType Directory -Force "$env:APPDATA\vlc" | Out-Null
87+ Set-Content "$env:APPDATA\vlc\usm-keys.txt" "0x7F4551499DF55E68"
88+ ```
4289
43- ~~ 1. ` $XDG_CONFIG_HOME/vlc/usm-keys.txt ` ~~
44- ~~ 2. ` ~/.config/vlc/usm-keys.txt ` ~~
90+ 默认读取顺序:
4591
46- ~~ key 文件支持十进制或 ` 0x ` 前缀的十六进制;多个 key 可以用逗号、分号、
47- 空白或换行分隔。` # ` 后面的内容会当作注释。~~
48- (Windows下未经测试)
92+ - Windows:` %APPDATA%\vlc\usm-keys.txt `
93+ - Linux:` $XDG_CONFIG_HOME/vlc/usm-keys.txt ` ,否则 ` ~/.config/vlc/usm-keys.txt `
4994
95+ key 文件支持十进制或 ` 0x ` 前缀的十六进制;多个 key 可以用逗号、分号、空白或换行
96+ 分隔。` # ` 后面的内容会当作注释。配置多个 key 时,插件会用 libvpx 试解码自动选出
97+ 能正确解密的那个。
5098
5199也可以启动时临时传 key:
52100
101+ ``` sh
102+ vlc --usm-keys 0x7F4551499DF55E68 /path/to/movie.dat
103+ ```
104+
53105``` powershell
54- & "\path\to\vlc \vlc.exe" --usm-keys 0x7F4551499DF55E68 \path\to\movie.dat
106+ & "C:\Program Files\VideoLAN\VLC \vlc.exe" --usm-keys 0x7F4551499DF55E68 C: \path\to\movie.dat
55107```
56108
57109或者指定一个自定义 key 文件:
58110
59- ``` powershell
60- & "\path\to\ vlc\vlc.exe" --usm-key-file \ path\to\ usm-keys.txt \ path\to\ movie.dat
111+ ``` sh
112+ vlc --usm-key-file / path/to/ usm-keys.txt / path/to/ movie.dat
61113```
62114
63- ## 构建
64- ~~ 我不知道,我用vscode cmake插件构建的~~
65- 构建前请先修改 ` CMakeList' 中的 'set(ENV{PKG_CONFIG_PATH} "") ` 为你自己的 ` pkgconfig ` 路径
66-
67115## 已知限制
68116
69117- 当前只输出视频流,没有输出音频流。
0 commit comments