解决群晖wordpress videopack插件无法转码视频、视频播放不正常问题
一、需求来源
书接上文,我已经在群晖上部署了wordpress并能够上传大视频,但是原始视频太大了,想用插件实现上传即转码,所以找到了videopack插件,但是转码一直失败,后来发现是群晖自带的ffmpeg不支持libx264所以无法转码,现在我尝试解决一下
二、问题现象
1.videopack插件无法转码
使用wordpress经典编辑器创建或编辑一篇文章,进入视频上传界面,选择一个已经上传好的视频,用videopack插件进行转码,提示Loading转码中

然后报错Unknown encoder "libx264",对应的分辨率后面显示Canceled。

进入videopack设置界面检查ffmpeg设置

往下找,找到ffmpeg的测试结果,发现确实是libx264的问题

查阅了大佬的资料,发现是群晖默认的ffmpeg不支持libx264,问题定位成功。
2.视频播放不正常
对于手机拍摄视频,在播放时有很奇怪的BUG
- 左手横屏拿手机拍摄的视频:全屏后上下翻转
- 竖屏拿手机横屏拍摄的视频:全屏后是横屏,而且视频被拉伸(拉宽到全屏);不全屏的话电脑上的播放器是个横屏的,只显示视频中间的部分,上下不显示
看来是mp4里保存了旋转信息,但是播放时播放器处理不正确,而且BUG的复现条件也很奇怪
- 使用wp自带播放器的话,我电脑正常,我的手机(鸿蒙6,拍摄视频的手机)不正常;
- 使用videopack播放器的话,我的手机正常,电脑和我媳妇的手机不正常……
兼容性真是难搞啊……
三、无法转码问题解决过程记录
参考大佬的资料,要给群晖更新ffmpeg,但是群晖DSM7.1之后移除了常见型号的视频处理功能(无语,浪费核显的性能啊魂淡,还把我一直在用的video station移除了),所以官方也不在乎ffmpeg的更新了(也许)。还好大佬给出了解决方案:
1.添加社区源
打开群晖的【套件中心】,点击【设置- 套件来源 - 编辑】,名称自定义填写,地址填写
https://packages.synocommunity.com/

确定保存
2.安装ffmpeg
在套件中心搜索ffmpeg,这里我选择安装最新版的ffmpeg 7

提示要进行一些操作,看意思是后台要运行一些CLI命令来安装视频驱动?点【是】……反正白裙不怕出问题,有官方服务兜底

提示我们这个套件未经过官方验证,点击【同意】

安装中……

我这里又重复提示了一次,再次点击【同意】,稍等片刻,安装完成

3.验证videopack转码功能,失败
再次进入videopack设置界面检查ffmpeg设置,还是不行啊?

SSH登录到群晖上研究半天,发现是安装的ffmpeg7的命令是【ffmpeg7】,而【ffmpeg】命令还是系统自带的4.1.9

4.使用ffmpeg7替换系统的ffmpeg
要不咱把系统自带的ffmpeg改成指向ffmpeg7的链接试试?说干就干
(1)考虑到系统里【/usr/bin/ffmpeg】是一个可执行的二进制文件,为了防止替换出问题,先进行备份
XXX@DS220plus:/usr/bin$ ll | grep ffmpeg
-rwxr-xr-x 1 root root 271376 Sep 27 2023 ffmpeg
XXX@DS220plus:/usr/bin$ sudo mv ffmpeg ffmpeg.bak
(2)然后找到ffmpeg7的真实路径,一通好找(找了PATH变量里的每一个路径),终于在/usr/local/bin里找到了线索
XXX@DS220plus:/usr/local/bin$ ll | grep ffmpeg
lrwxrwxrwx 1 root root 40 Oct 29 23:27 ffmpeg7 -> /var/packages/ffmpeg7/target/bin/ffmpeg7
lrwxrwxrwx 1 root root 40 Oct 29 23:27 ffprobe -> /var/packages/ffmpeg7/target/bin/ffprobe
可以看到,ffmpeg7实际的路径是/var/packages/ffmpeg7/target/bin/ffmpeg7
(3)创建链接,为了以后能想起来替换了系统的ffmpeg,还是在系统自带ffmpeg文件路径/usr/bin/下创建吧
XXX@DS220plus:/usr/bin$ sudo ln -s /var/packages/ffmpeg7/target/bin/ffmpeg7 ffmpeg
XXX@DS220plus:/usr/bin$ ll | grep ffmpeg
lrwxrwxrwx 1 root root 40 Oct 29 23:52 ffmpeg -> /var/packages/ffmpeg7/target/bin/ffmpeg7
-rwxr-xr-x 1 root root 271376 Sep 27 2023 ffmpeg.bak
XXX@DS220plus:/usr/bin$ ffmpeg
ffmpeg version 7.0.2-5 Copyright (c) 2000-2024 the FFmpeg developers<...>
替换成功!

5.再次验证videopack转码功能,成功!
(1)先看videopack插件自带的测试,输出不一样了,没有报错,码率都出来了,应该是成功了

(2)再到视频上传界面测试,转码进度条都出来了,看来是没问题

转码完成,YES!

(3)播放效果
保存文章并打开,视频播放下方出现了小齿轮,点击可以选择清晰度。

四、视频播放不正常问题不完美解决记录
1.设置videopack播放器和自动转码
既然videopack搞好了,还能转码,还有个“Replace original with same resolution H.264”(使用相同分辨率的H.264替换原始视频)的功能,那么使用这个功能重新给视频转一次码能否解决播放不正常的问题呢?
尝试播放转码后的视频,问题确实少了,但是竖屏视频还是存在问题:不全屏的话电脑上的播放器是个横屏的,只显示视频中间的部分,上下不显示。
遂研究了一下vidoepack的配置,最后改了如下设置(截图中改了的地方全凭印象了……):
- 自动对上传的视频转码,用1080P替换原始视频,并生成480P的视频用于移动网络播放
- 默认播放480P视频
- 视频播放器不拉伸视频(虽然对全屏无效,但是后面发文章时可以设置高度,勉强可看)
- 视频播放器宽高比使用视频的比例
- 开启变速、快进快退等播放器按钮



2.发文章时指定视频宽高
使用经典编辑器,在视频插入界面提前设置好播放器的宽高(不太智能,虽然麻烦点,但是能解决问题),然后插入视频

插入后的编辑界面

实际文章中已经能够按照设置的播放器宽高进行显示

五、美中不足
(1)插入竖屏视频要手动设置播放器比例,而且这个只能用经典编辑器,不太方便
(2)竖屏视频在电脑上的全屏还是有问题,不过手机上正常,能满足老婆和老人的需求
更多推荐



所有评论(0)