wiliwili 用到的 UI 库是:https://github.com/xfangfang/borealis 可以根据readme直接编译 demo。
- 列表性能或许可以优化一下。
- 可以移除阴影效果,或许可以降低点gpu需求
编译全过程请参考:Github Action Workflow
目前 wiliwili 的 psv 支持在这个分支:https://github.com/xfangfang/wiliwili/tree/dev
项目中提供了依赖库的 VITABUILD 脚本,使用方式参考前面的 workflow,实际上所有步骤都可以参考那个文件。
正好有人做了新版本的 curl:vitasdk/packages#241
编译安装即可。
mpv 调用 ffmpeg 来实现视频播放,所以还需要对 ffmpeg 编译调整一下,搭配 mbedtls一起编译,来支持 https视频链接。(vitasdk 自带的ffmpeg只能播本地文件)
我目前用来测试的编译命令是:(基于 ffmpeg 6.0)
./configure --prefix=$VITASDK/arm-vita-eabi \
--enable-cross-compile \
--cross-prefix=$VITASDK/bin/arm-vita-eabi- \
--disable-shared \
--disable-runtime-cpudetect \
--disable-armv5te \
--disable-programs \
--disable-doc \
--enable-network \
--disable-autodetect \
--disable-encoders \
--enable-demuxer=hls \
--disable-protocols \
--enable-protocol='file,http,tcp,tls,hls,https' \
--enable-static \
--enable-small \
--disable-debug \
--arch=armv7-a \
--cpu=cortex-a9 \
--disable-armv6t2 \
--target-os=none \
--extra-cflags=" -Wl,-q -O2 -ftree-vectorize -fomit-frame-pointer -ffast-math -D_BSD_SOURCE" \
--extra-cxxflags=" -Wl,-q -O2 -ftree-vectorize -fomit-frame-pointer -ffast-math -fno-rtti -fno-exceptions -std=gnu++11 -D_BSD_SOURCE" \
--extra-ldflags=" -L$VITASDK/lib " \
--disable-bzlib \
--disable-iconv \
--disable-lzma \
--disable-sdl2 \
--disable-securetransport \
--disable-xlib \
--disable-avdevice \
--enable-mbedtls --enable-version3 \
--enable-pthreads
sed 's/#define HAVE_GETADDRINFO 1/#define HAVE_GETADDRINFO 0/g' -i config.h
sed 's/#define HAVE_STRUCT_POLLFD 1/#define HAVE_STRUCT_POLLFD 0/g' -i config.h
sed 's/#define HAVE_POLL_H 1/#define HAVE_POLL_H 0/g' -i config.h
make -j8 install
这里编码根据B站情况精简————欢迎有时间的朋友帮忙整理或者测试一下。
编译脚本和官方的主要不同是:
增加了 mbedtls 依赖,添加了 http https 等协议支持,因此也开启了 ffmpeg 的网络支持。
感谢 @fish47 的提示,万分感谢。之前无法播放视频是栈空间不足导致的,增大后 ffmpeg 就能正常使用了。
ffmpeg 编译好之后,就可以编译 mpv 了。
mpv 的代码我的移植版本在:https://github.com/xfangfang/mpv/tree/vita_0_36
编译指令是:
meson setup build --cross-file crossfile.txt \
--default-library static \
-Diconv=disabled -Dlua=disabled \
-Djpeg=disabled -Dlibmpv=true \
-Dsdl2=enabled -Dlibavdevice=disabled \
-Dcplayer=false -Dmanpage-build=disabled \
-Dopensles=disabled -Dhtml-build=disabled \
--prefix=${VITASDK}/arm-vita-eabi/
meson compile -C build --verbose
meson install -C build
貌似 https 访问有点问题,所以临时设置了 -DVERIFY_SSL=OFF; 设置的 CMAKE_CXX_FLAGS 是避免编译时报错和减少输出一些没意义的note
开启了 PSV_BIG_PICTURE,这会使用一套专门为 PSV分辨率 960x544 设计的 UI 参数,关闭时则使用 1280x720 逻辑分辨率直接缩放到 960x544。
mkdir build && cd build
cmake -DPLATFORM_PSV=ON \
-DUSE_SYSTEM_CURL=ON \
-DMPV_NO_FB=ON \
-DVERIFY_SSL=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DDISABLE_OPENCC=ON \
-DPSV_BIG_PICTURE=ON \
-DCMAKE_CXX_FLAGS="-Wno-error=pedantic -Wno-psabi" ..
make -j8
视频播放还可以继续优化,一方面是移除不需要的编码,另外一方面是尝试使用硬解。