CentOS下安装vlc

一、引言

vlc是一跨多媒体播放器,可以播放本地媒体文件和网络串流,帮助我们排查音视频开发过程中遇到的问题。大部分情况下,我们只需要在Windows系统下安装vlc就可以了。但有一种情况是需要在Linux下安装vlc的:我们的音视频拉流软件(比如推流端)运行在Linux系统下,只能通过该Linux系统访问网络串流(比如摄像机的rtsp流),无法通过Windows系统访问这些网络串流。这个时候为了能判断该网络流的视频是否正常,我们就必须在Linux系统下安装vlc。

二、安装vlc

首先根据文章《MobaXterm无法调出图形界面》设置通过X11 Forwarding实现远程显示服务器的图形化程序。设置完后才能在远程连接上的Linux系统中启动vlc,本地Windows系统远程显示该vlc的界面。

根据vlc官网 https://www.videolan.org/vlc/download-redhat.html 所介绍的方法安装vlc软件本体

bash 复制代码
su -
yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
yum install vlc
yum install vlc-core
yum install python-vlc npapi-vlc

安装后用root用户执行vlc命令, 可能会报错:VLC is not supposed to be run as root.Sorry.

修改 VLC 二进制可执行文件(每次VLC升级后,需要重新这两条命令修改可执行文件,并且如果 VLC 程序源码发生调整,该方法可能失效):

bash 复制代码
cp /usr/bin/vlc /usr/bin/vlc.backup
sed -i 's/geteuid/getppid/' /usr/bin/vlc

修改后就可以用root用户执行vlc命令了,但有时候vlc界面上的文字可能会乱码:

可以参考《CentOS gui 图形界面显示文字乱码》解决。

继续在控制台执行vlc命令,打开该Linux系统下的媒体文件:

可能还会报错:failed to open swrast和shaders not supported。然后播放界面黑屏,无法显示视频画面:

这时候得安装OpenGL:

bash 复制代码
yum install -y mesa-libGLES-devel.x86_64 mesa-dri-drivers
yum install mesa-libGL mesa-libGL-devel
yum install mesa-libGLU mesa-libGLU-devel
yum install freeglut freeglut-devel
yum install mesa-libGL-devel mesa-libGLU-devel freeglut-devel

安装完OpenGL后继续打开媒体文件,发现有视频了,但报错:alsa audio output error: cannot open ALSA device "default": 拒绝连接

这时候得在CentOS中安装或者升级alsa声卡,但这个过程非常麻烦,所以建议直接在vlc中把音频设置不启用:"偏好设置" -> "音频",将"启用音频"的勾去掉,"保存"。

重新在vlc中打开媒体文件,就可以看到正常播放视频了:

相关推荐
小李飞刀李寻欢2 分钟前
使用kubeadm部署Kubernetes(k8s)集群的步骤
linux·服务器·ubuntu·kubernetes·k8s
昨日之日20066 分钟前
LatentSync V8版 - 音频驱动视频生成数字人说话视频 更新V1.6版模型 支持50系显卡 支持批量 一键整合包下载
人工智能·音视频
运维成长记13 分钟前
阿里云实践创建实例步骤
linux·运维·服务器·阿里云·云计算
THe CHallEnge of THe BrAve28 分钟前
Linux检验库是否安装成功
linux·运维·服务器
算家计算1 小时前
告别复杂文档解析噩梦!MonkeyOCR 本地部署教程:支持公式/表格多元素结构化
linux·人工智能·开源
知舟不叙2 小时前
基于OpenCV实现视频运动目标检测与跟踪
opencv·目标检测·目标跟踪·音视频
曹勖之2 小时前
ROS2 工作空间中, CMakeLists.txt, setup.py和 package.xml的作用分别是?
xml·linux·服务器·ros2
企鹅侠客3 小时前
ttyd:安全地通过网络共享您的 Linux 终端
linux·运维·ttyd
饭碗、碗碗香3 小时前
【开发常用命令】:服务器与本地之间的数据传输
linux·运维·服务器·笔记·学习
MonkeyBananas4 小时前
在Ubuntu中使用Apache2部署项目
linux·运维·ubuntu