现在是一个新的世纪,爱奇艺和优酷等视频网站都启用HTML5了,因此Linux下再也不用愁如何安装 Flash Player的问题了。但是,为什么默认的 Fedora 31 安装环境下,还是无法播放爱奇艺、优酷中的视频?不是HTML5吗,HTML5中的Video标签Firefox不是原生支持吗?
原来,HTML5中要播放视频,还得浏览器来解码。而有些编码器是私有软件,是有版权问题的,如果让浏览器原生支持这种解码器,就需要浏览器开发商支付版权使用费用,价格不菲,类似 Mozilla 这样的自由软件社区每年接受捐赠的那点钱哪够?Google Chrome浏览器安装好之后就能立即观看爱奇艺、优酷视频,是因为谷歌支付了解码器的授权费用,谷歌大财主当然有这个实力(谷歌不仅为常用的私有版权的编解码器支付了费用,老旧的 Flash Player 貌似也是开箱即用,不用用户单独再安装插件?)。
为此,Firefox 采取的方法是,直接使用操作系统中的解码器来实现私有编码视频的播放,因为这些私有解码器对于个人用户一般是免费使用的(是免费的free,但不是自由的free),虽然做不到开箱即用但是也还算方便。在 Linux 下,Firefox 使用的是 ffmpeg(之前的老版本中好像使用的是 gstreamer )。但 Fedora 31 下默认没有安装 ffmpeg(同样是由于版权问题),因此需要用户自行安装。(再说个题外话:为何 Fedora 不直接编写一段 bash 代码,让用户在安装系统时就勾选然后把这个包装好呢?好像还是因为版权问题,因为这么做其实也是违反某些版权协议的)
回到正题,如何安装:
- 添加 rpmfusion 软件源。rpmfusion 软件源是第三方源,它包含了一些 Fedora 以为不是严格意义上的开源软件或者存在其它问题而不愿包含在官方源中的软件。此处为了解决墙的问题,使用了清华大学的 rpmfusion 镜像,见清华大学开源镜像中的说明:https://mirrors.tuna.tsinghua.edu.cn/help/rpmfusion/
sudo dnf install --nogpgcheck \
https://mirrors.tuna.tsinghua.edu.cn/rpmfusion/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
https://mirrors.tuna.tsinghua.edu.cn/rpmfusion/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf makecache
2. 更改以下文件 baseurl 行中的 “http://download1.rpmfusion.org”部分,替换为 “https://mirrors.tuna.tsinghua.edu.cn/rpmfusion”,并且要去掉 baseurl 前面的 # 号,给metalink前面加上#号:
/etc/yum.repo.d/rpmfusion-free.repo
/etc/yum.repo.d/rpmfusion-free-updates.repo
/etc/yum.repo.d/rpmfusion-nonfree.repo
/etc/yum.repo.d/rpmfusion-nonfree-updates.repo
如果你的网络很好,速度没问题,也可以不替换。注意替换时,不要替换debuginfo段的链接,因为清华开源镜像不提供调试符号等占用空间过大的资源的镜像。
3. 安装 ffmpeg:
sudo dnf install ffmpeg
3. 重启 firefox,检查效果。
注意,你可能想要自己克隆 ffmpeg 的源代码自己编译安装,但是我实际试过了,编译安装后命令行能运行 ffmpeg,但是 firefox 中仍然无法播放这些视频,是什么原因我也不知道。
另外,有一个坑需要注意:网站上的问答里可能说到让安装 openh264软件包(Fedora 中 /etc/yum.repo.d/ 下有它的源,但是默认是禁用的,Firefox 的附加组件管理-插件中也有这个,但是默认是没有启用的)。但实际上 Firefox 中的视频播放跟这个软件包一点关系都没有,那个只是用来进行WebRTC视频通话的。ffmpeg 里已经有h264解码支持了。
Leave a Reply