本文中需要的工具:
minidlna
DLNA 旨在解决个人 PC ,消费电器,移动设备在内的无线网络和有线网络的互联互通,使得数字媒体和内容服务的无限制的共享和增长成为可能。DLNA 的口号是 Enjoy your music, photos and videos, anywhere anytime。
minidlna 是一款软件用于实现 DLNA。
FFmpeg 的名称来自 MPEG 视频编码标准,前面的“FF”代表“Fast Forward”,FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。可以轻易地实现多种视频格式之间的相互转换。
VLC media player
VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。
克隆地址:https://git.ffmpeg.org/ffmpeg.git 或 https://github.com/FFmpeg/FFmpeg
进入临时目录
cd /tmp
minidlna 下载
地址在:https://sourceforge.net/projects/minidlna/
如,1.3.2:
wget -O minidlna-1.3.2.tar.gz https://sourceforge.net/projects/minidlna/files/minidlna/1.3.2/minidlna-1.3.2.tar.gz/download
克隆 ffmpeg
如果使用最新版本编译 minidlna 失败,尝试降到 5 或 4版本。
# 克隆 ffmpeg 最新版 git clone https://git.ffmpeg.org/ffmpeg.git # 克隆 5.1 版 git clone -b release/5.1 https://git.ffmpeg.org/ffmpeg.git # 使用 4.4 版本 # git checkout release/4.4
手动安装依赖
在编译之前,你需要手动安装依赖:
yum install sqlite sqlite-devel -y yum install libexif libexif-devel -y yum install libid3tag libogg-devel -y yum install libogg libogg-devel -y yum install libvorbis libvorbis-devel -y yum install flac flac-devel -y
编译 ffmpeg
# 进入 ffmpeg 目录,准备编译 # 克隆来自 ffmpeg.org cd ffmpeg # 克隆来自 github.com # cd FFmpeg # 配置并构建共享库 ./configure --enable-shared make && make install # 查询 libavformat 位置 whereis libavformat.so # 结果返回类似: /usr/local/lib/libavformat.so # 编辑 ld.so.conf vi /etc/ld.so.conf # 增加 libavformat 路径,并保存 /usr/local/lib/ # 刷新动态链接库缓存 ldconfig
编译 minidlna
# 解压 minidlna tar -zxvf minidlna-1.3.2.tar.gz cd minidlna-1.3.2 ./configure make && make install cp minidlna.conf /etc/minidlna.conf
配置 minidlna
配置说明,参见 MiniDLNA 1.2.1 中文配置
调整可检测文件数量
当目录下文件太多时,即便重新刷新缓存也不行。这时,需要设置特定进程可以监视的文件数量:
vi /etc/sysctl.conf # 修改或增加 fs.inotify.max_user_watches=524288
另外,有时候并不能正常识别目录下的所有文件。因为它是触发式的,也就是说,目录中有变动才会更新。
手动启动
minidlnad # pkill minidlnad 结束进程 # minidlnad -r 刷新文件缓存 # minidlnad -R 重新构建缓存文件
另外,别忘了,在防火墙中开放 8200 端口。
开机自动启动
vi /etc/rc.local # 增加 minidlnad # 确保 /etc/rc.local 文件可执行,使用 chmod +x /etc/rc.local
最后:
打开 VLC ,在“视图”菜单中,选择播放列表或按 Ctrl+L。
在左侧中,选择“通用即插即播(Upnp)”。
之后,等待右侧列表刷新。
相关链接:
minidlna
FFmpeg
VLC media player
ffmpeg 编译参数详解
ldconfig 命令
MiniDLNA 1.2.1 中文配置
Why is the minidlna database not being refreshed?