7 centos 查看程序文件数量_「动手打造家庭媒体网络平台」安装篇-centos搭建DLNA媒体服务...

大家好,我是路程lucky,热爱开发、设计、学习、生活、爱捣鼓的web前后端工程师~

本文的重点是在之前文章提到创建的centos基础上继续搭建DLNA媒体服务。由于centos的系统是从零开始初步安装完成,我们在安装媒体服务时,不可避免出现各种环境依赖问题,本文也会提到常见的centos操作方法如下载文件、解压文件以及如何排查和解决centos的linux环境下依赖文件的安装、编译问题,并且还包含了防火墙设置。另外,本文还会涉及centos下如何将一个应用创建为系统自定义的service服务,毕竟我们的DLNA服务是需要服务器重启之后还能够自动启动的。干货满满,一定会让你有所收获~

引言

根据之前我们的宏伟蓝图动手实现打造家庭媒体平台设计方案,以及全面搭建好的centos服务器为基础,我们开始在centos从零安装核心功能-搭建DLNA媒体服务。本文还是以windows的虚拟机centos环境为基础,这样方便操作、截图,最终物理机也是同样的效果。

「动手打造家庭媒体网络平台」设计篇-灵感需求与架构设计

「动手打造家庭媒体网络平台」基础篇-安装centos系统

基于DLNA的媒体服务软件也有很多,但大家可能没有怎么去搭建和使用,都使用的默认windows、mac自带的媒体服务等。这里,我推荐一款比较好用,跨平台已在windows、Mac、linux都能搭建,基于java语言开发的serviio。官网地址:https://www.serviio.org/。经过我的使用测试,已经在各平台都能运行和使用(Mac、Windows版以后的文章中再拓展实践一下)。java开发的跨平台特性真的是非常不错。

以下我们都以serviio指代DLNA服务器。

安装环境依赖

首先,因为为了我们的实践不至于难以理解,我们还是先了解serviio软件安装大致的必要软件的依赖关系。而后续我们根据系统按照小白用户的视角逐步采坑,分析和解决遇到的问题。

62bb6d80d98a178561d549801c45b105.png

serviio软件centos平台安装依赖流程图

由上图整理出来的关系图可以看出,serviio是依赖于ffmpeg的,ffmpeg大家应该也有了解,跨平台的视频媒体处理软件,几乎各种视频音频处理底层都会使用。而安装ffmpeg时又会出现一些依赖一环接着一环。我们开始逐步摸索。

环境准备

  • centos系统环境
  • serviio安装包:找到官方地址选择linux平台下载地址的url。官方下载页可以找到下载地址。https://www.serviio.org/download/
4694f39c732ba5b97f4e26b373594d8c.png

选择linux环境版本

浏览器找到下载地址,找到url。格式结尾为tar.gz

20bfff154685d624f983a487cde5f55a.png

浏览器中找到下载url地址

留意官网说明,依赖ffmpeg以及lame

9526a16e10e261c0a5370569e59c4ef9.png

留意官网所需依赖防止需要

开始安装

打开我们之前创建的虚拟机centos环境。开始命令行的操作。

step1.尝试使用wget下载serviio安装包

默认没有安装wget,提示命令不存在。执行yum install wget,则开始安装wget工具。

// 安装wget工具yum install wget
7507c23a5fc750ecb8dfcb88abd0b63a.png

安装wget下载工具

1.1.命令下载压缩包文件

进入/lucky目录,执行命令下载压缩包文件。但你会突然发现出现报错。错误原因大致为https为需要CA证书的。下面也提示了可以增加参数忽略证书检查。

wget https://download.serviio.org/releases/serviio-2.1-linux.tar.gz

根据错误提示增加忽略检查证书参数--no-check-certificate。于是成功开始下载文件。

wget https://download.serviio.org/releases/serviio-2.1-linux.tar.gz --no-check-certificate
5fe8ce8c2234fca1b95838a0509e0003.png

wget下载serviio安装包

step2.解压serviio安装包

进入/lucky目录,解压文件。就会在目录下创建serviio-2.1文件夹。

// 解压缩命令tar -xzvf serviio-2.1-linux.tar.gz
fc39f5d2c79811b067c40268eec86ed1.png

解压缩命令

2.1查看解压后内容以及设置文件夹权限可读可写

ls命令可以看到文件夹的目录结构。其中关键的几个目录是

  • bin:执行serviio的主目录。
  • log:日志目录(当程序跑起来就会自动生成了)。可以用来查看日志记录定位问题。
e5b1210c1972c147fb06364036e11888.png

ls查看文件夹目录以及设置文件夹权限可读可写

2.2查看解压后的README.txt官方给与的帮助文件

使用vi README.txt命令可以看官网给出文件中的内容。退出vim模式按 shift + :,输入q退出vim.

这里也能看到官方给与的提示。执行bin/serviio.sh是用来启动的。启动后有控制台访问。

1b2fbc1def399afde821b17014dc55c1.png

查看官方README.txt帮助文件

step3.尝试bin目录下执行命令

bin目录下的文件为两个脚本文件,一个是主程序足够用,一个是浏览器脚本(Linux安装GUI时才有效)。确保文件夹是可读可写可访问否则后续启动会出现权限问题。

98afe8047abee6eae57fed8a821388cc.png

查看bin目录文件

3.1尝试执行主程序

进入bin目录,执行 sudo ./serviio.sh发现报错了,此时就需要到提示的日志文件中查看报错原因。

8b36614647cad457cec7ac6286dd6aa0.png

执行命令报错

3.2排查java基础环境

首先我们就需要排查因为报错执行java,那必然现有java环境。这一点是首先需要明确的。

// 安装javayum install java-1.8.0-openjdk* -y
69c69c28516bc633da5b309e55ade361.png

安装java

成功安装java,查看版本信息

// 查看java版本java -version
ef5bbe246c5865d9a41be5375b16e25f.png

java环境安装完成

3.3查看错误日志

继续执行bin文件夹的命令发现还是报错。于是vim命令查看日志文件,按PageDown往下翻,逐步发现报错问题是没有安装FFMPEG

// 进入log日志cd log// 查看日志文件vi serviio.log
98f0ee8ccfed841f4d48b0b3df1d4bae.png

找到错误原因没有FFMPEG

3.4下载和安装FFMPEG

此时,我们需要类似之前一样,下载对应ffmpeg的tar.gz的包进行安装。这里就快速下载和解压。官网地址:http://ffmpeg.org/,找到对应linux平台压缩包。

// 进入目录cd /lucky // 下载wget http://ffmpeg.org/releases/ffmpeg-4.3.tar.gz// 解压tar -xzvf ffmpeg-4.3.tar.gz

3.4.1安装FFMPEG

进入ffmpeg目录,执行配置和安装。这里可以看出,按一般的 ./configure会出现警告依赖yasm。我们干脆直接增加参数不编译yasm

// 进入ffmpeg文件夹cd ffmpeg-4.3// 执行配置命令,这里ffmpeg一般都会启用share./configure --enable-share --disable-yasm
7f9bc6e8b958f74e9a58b87b918bd8f2.png

进入ffmpeg目录进行编译

3.4.2安装lame音频工具依赖

下载和安装lame,这里和上面方式一样,解压,配置,以及安装。

dada101d18aa28360fcefa21fff37ff4.png

下载lame依赖压缩包官网提供地址

但也不尽如人意,又出现报错。根据报错信息可以发现,没有安装gcc编辑环境。

// 安装gcc编译环境yum install gcc*
7de2124e305ef11edceaf298b95ae09b.png

编译出现了报错,原因为检查gcc没有

重新安装,成功安装了lame依赖包。

3.4.3查看ffmpeg是否能运行

答案是,前途光明,道路曲折。还是出现了报错。但没关系,根据报错信息,解决问题。

提示某个.so文件找不到,执行安装命令安装依赖包。

e5714439e0828ad99f6a396fdbd4ceac.png

安装缺失的.so依赖包

安装后还是不行,依然缺少包。

0e0866d2eb8e742f7b77040b6201d151.png

此时借助于强大的互联网找到问题应该还是配置问题。

在/etc/ld.so.conf.d文件增加lib文件夹。

// 找到配置文件vi /etc/ld.so.conf// 增加 lib64目录,全局能够找到依赖文件// 按insert键进入编辑模式// 增加路径/usr/local/lib/usr/local/lib64//按:,输入 wq,执行保存文件// 执行ldconfig命令(小写的l),使得配置生效ldconfig
5972f21c9cbb17c6df7a5f2ee1a7be21.png

编辑/etc/ld.so.conf.d文件增加路径

3.4.4ffmpeg终于安装完成安装

bb1721b4406cbff72600ff20c48f4649.png

成功安装ffmpeg

step4.安装serviio为自定义系统服务

按照最初的设计,我们需要把serviio设置为自定义系统服务启动,这样重启也能够自动运行。

4.1创建service文件

一般centos都是可以利用这种方式变为自定义系统服务。关键的是几个要素:1.执行命令路径以及用户,这里可以发现用户为serviio。2.After输入的network.target表明在网络的服务完成后再加载,避免网络还没加载就加载serviio服务导致问题。

// 创建service文件touch /lib/systemd/system/serviio.service// 输入系统服务内容[Unit]Description=Serviio Server DaemonAfter=syslog.target network.target[Service]User=serviioType=simpleExecStart=/lucky/serviio-2.1/bin/serviio.sh[Install]WantedBy=multi-user.target
4c3d8df21d90134eab0b49cbb188dfcf.png

输入serviio启动服务代码

4.2添加用户serviio

4b6da4d162ff5451155c1f800e25d8fd.png

添加用户serviio

4.3启动serviio系统服务

通过systemctl或者service命令,可以以系统服务方式控制serviio服务了。很方便。而且重启以后也会自动执行。

// 重新加载系统配置服务systemctl daemon-reload// 启用serviio服务systemctl enable serviio// 执行serviio服务systemctl start serviio// 查看serviio服务systemctl status serviio// 停止serviio服务systemctl stop serviio
858c3e9292a0d6dde5fd5027373ee13b.png

成功启动服务

step5.防火墙设置

当服务启动后,会发现直接访问是无法访问的。根据经验,linux系统是默认开启防火墙的,确保安全。这里为了测试我们关闭防火墙

// 查看防火墙运行情况systemctl status firewalld.service// 禁用防火墙systemctl disable firewalld.service

查看、关闭防火墙

a080d2062e786ab6085e12ef2266be8a.png

查看、关闭防火墙

step6.浏览器web端访问

此处可以参照体验篇的配置,查看更详细的配置。这里只提及配置过程中出现的异常问题。

「动手打造家庭媒体网络平台」体验篇-媒体服务配置和预览效果

fbeee308d81aa2379d448fc8b6a781c5.png

主界面

5.1排查web端配置无法保存的问题

web界面配置媒体文件夹保存操作时,出现了500报错。经过查看日志发现,报错为不能执行dcraw。经过网络搜索相关知识后发现,dcraw为一个依赖的包文件。

b0253472bd704d99dc6b0dda453f9b05.png

原因是一开始ffmpeg没有正确安装完成只装了主程序,缺少了包,当完全安装后,又可以保存。

总结

感谢您真正有耐心地看完安装篇-搭建DLNA媒体服务。看了本篇在零基础的centos上安装搭建平台遇到了各种问题,但遇到问题,分析问题,解决问题的过程,正是宝贵的财富。真正做好一件事,需要有毅力付出更多的努力,会遇到各种挫折,但我们不能放弃追逐梦想前进的脚步,这也许就是人生。

后续我会从增加离线下载、内网透传等一系列增强功能,围绕着更好地为我们的网络媒体平台添砖加瓦,让生活更科技。

坚持原创,坚持动手实践,那么持续关注我,给予创造的动力,还给你一片广袤的天空。我是路程lucky,分享和实践专业技能,为美好生活和未来而努力奋斗。

相关文章

「动手打造家庭媒体网络平台」设计篇-灵感需求与架构设计

「动手打造家庭媒体网络平台」基础篇-安装centos系统

「动手打造家庭媒体网络平台」体验篇-媒体服务配置和预览效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/442624.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python 逻辑回归准确率是1_python数据分析(三)——逻辑回归之学生成绩预测

Python数据分析项目——学生成绩预测一.数据源阿里云天池公开数据集:学生成绩预测数据集https://tianchi.aliyun.com/dataset/dataDetail?dataId6785特征(Features)介绍:Gender: 性别Nationality: 国籍PlaceofBirth:出生地StageI…

向量数量积公式_多法 | 向量数量积相关最值问题的常见处理方法

近日QQ群更新的部分内容如下高中11大类86个易错点全梳理(185页Word)恒成立涉及10大类40小类题型梳理(100页Word)高中数学10大专题100个考点配例题全梳理2020高考真题分类汇编理科(14讲Word)2019年江苏高考数学题根系列(50份Word)2020届江苏高三上期中期末分类汇编(12讲Word)202…

kettle增加字段报错_【实战】使用 Kettle 工具将 mysql 数据增量导入到 MongoDB 中

每一个成功人士的背后,必定曾经做出过勇敢而又孤独的决定。放弃不难,但坚持很酷~最近有一个将 mysql 数据导入到 MongoDB 中的需求,打算使用 Kettle 工具实现。本文章记录了数据导入从 0 到 1 的过程,最终实现了每秒钟快速导入约 …

增量同步_使用Kettle工具进行增量数据同步

增量同步的方式有很多种,我使用的是: 快照表 触发器需求:当主库库表发生增删改时,从库库表与主库库表数据保持一致。环境:1、Mysql2、kettle 7.1思路:1、在主库中,将需要同步的库表新建快照表,…

mysql in优化_MySQL的一次优化记录 (IN子查询和索引优化)

这两天实习项目遇到一个网页加载巨慢的问题(10多秒),然后定位到是一个MySQL查询特别慢的语句引起的:SELECT *FROM (SELECT DISTINCT t.vc_date, t.c_bankno, t.vc_bankacco, t.vc_moneytype, t.en_totalbala, t.en_usablebala, t1.vc_nameinbank, date_f…

mysql sqlite转换_数据库转换工具(SqliteToMysql)

SqliteToMysql是一款用于SQLITE和MYSQL之间的数据库转换工具。它能够将SQLITE数据转换成MYSQL数据库,让用户自主配置转换条件,满足用户的数据库格式需要。。相关软件软件大小版本说明下载地址SqliteToMysql是一款用于SQLITE和MYSQL之间的数据库转换工具。…

mysql 查看集群状态_MySQL数据库集群正确配置步骤

类型:电子教程大小:8.5M语言:中文 评分:8.3标签:立即下载对MySQL数据库集群进行正确配置的实际操作步骤,以及对其概念的讲述,如果你对其相关的实际操作有兴趣了解的话,以下的文章将会…

oschina mysql limit_MySQL 用 limit 为什么会影响性能?

点击上方“武培轩”,选择“设为星标”技术文章第一时间送达!一,前言首先说明一下MySQL的版本:mysql> select version();-----------| version() |-----------| 5.7.17 |-----------1 row in set (0.00 sec)表结构:m…

在mysql中建立聚簇索引_给我一分钟,让你彻底明白MySQL聚簇索引和非聚簇索引...

推荐阅读:吊打面试官!MySQL灵魂100问,你能答出多少?MySQL的InnoDB索引数据结构是B树,主键索引叶子节点的值存储的就是MySQL的数据行,普通索引的叶子节点的值存储的是主键值,这是了解聚簇索引和非…

根据从日期控件选定的时间以表格形式显示数据_VB项目开发FlexGrid控件使用讲解...

FlexGrid控件使用介绍大家好,在VB开发管理系统中,FlexGrid控件使用是非常普遍的。用FlexGrid ActiveX控件可以在 Visual Basic的窗体中创建一个电子数据表格,也可称之为网格。FlexGrid ActiveX控件可以在网格中显示任何类型的表格式数据&…

mysql爆内存_线上MySQL数据库机器内存爆掉原因分析与解决

本文主要向大家介绍了线上MySQL数据库机器内存爆掉原因分析与解决,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。现象:阿里金融某业务的MySQL机器的内存每隔几天就会增长,涨上去后,却不下来。累积后内…

mysql atlas更新问题_Atlas几种常见故障解决(不定期更新)

1)使用atlas却发现“读库闲置,框架还是去主库读写数据”配置完atlas之后,发现使用jdbc框架的话,读库和写库各司其职,但是使用mybatis框架之后,就发现框架的读写都去了主库,把读库放置一边,那么这…

如何更改mysql服务名_技术小百科 |【云小课】数据复制服务如何实现对象名映射...

数据复制服务(Data Replication Service,简称DRS)是一种易用、稳定、高效、用于数据库在线迁移和数据库实时同步的云服务。数据复制服务提供了在线迁移、备份迁移、数据同步、数据订阅和多活灾备等多种功能。数据复制服务支持哪些对象名映射数据复制服务的数据同步功…

python 二维强度图_荐 python数据分析matplotlib库使用之二维图形绘制

本篇内容会在后期不定时更新什么是matplotlibmatplotlib是最流行的python底层绘图库,主要做数据可视化图表。为什么要学习matplotlib能将数据进行可视化,更直观的呈现使数据更加客观,更具有说服力二维图绘制matplotlib库的基本使用之折线图导…

python数据爬虫代码_python如何示例爬虫代码

python爬虫代码示例的方法:首先获取浏览器信息,并使用urlencode生成post数据;然后安装pymysql,并存储数据到MySQL即可。python爬虫代码示例的方法:1、urllib和BeautifuSoup获取浏览器信息from urllib import requestre…

kali linux查看网卡_CentOS7.6安装无线网卡驱动|Linux如何安装网卡驱动|Linux如何让配置网卡...

此前提到,Thinkpad E490安装CentOS7.6遇到内核崩溃的问题,解决之后,安装CentOS7.6操作系统成功。安装时发现,系统能够检测到有线网卡,但无法检测到无线网卡,说明CentOS7.6对此无线网卡的支持不足&#xff0…

python本地编译器_Python学习札记(0)——Python开发环境搭载及推荐几款Python编译器...

1、进入网址:http://www.python.org/download/#id102、选择版本:其中有两个Python版本,一个为3.0以上版本,一个为2.7版本,主要区别有一些特定的软件只支持2.7版本其中的两个windows版本为:Python 3.3.3 Win…

如何将mysql的数据库渲染到页面_vue.js实现数据库的JSON数据输出渲染到html页面功能示例...

本文实例讲述了vue.js实现数据库的JSON数据输出渲染到html页面功能。分享给大家供大家参考,具体如下:1、首先通过json.php把数据库给输出为json格式的数据[{"id":1,"resname":"百度","resimg":"http://www…

java模块_Java 9 揭秘(2. 模块化系统)

文 by / 林本托Tips做一个终身学习的人。在此章节中,主要介绍以下内容:在JDK 9之前Java源代码用于编写,打包和部署的方式以及该方法的潜在问题JDK 9中有哪些模块如何声明模块及其依赖关系如何封装模块什么是模块路径什么是可观察的模块如何打…

java reader_Java之字符输入流,Reader类的简单介绍

各位小伙伴们大家好,在之前的文章中,小编介绍了Java之文件复制的简单介绍,多是一些关于字节的知识,这次小编要介绍的是字符输入流Reader类,具体如下:java.io.Reader:字符输入流,是字符输入流的最…