• 树莓派(Raspberry Pi)miniDLNA服务搭建


    1. MiniDLNA简介

    MiniDLNA是一种简单、轻量级的MediaTomb替代品,但功能较少。它没有用于管理的web界面,必须通过编辑文本文件进行配置,旨在完全兼容DLNA/UPnP客户端。MiniDNLA守护进程向网络上的客户端提供媒体文件(音乐、图片和视频)。示例客户端包括图腾和xbmc等应用程序,以及便携式媒体播放器、智能手机和电视等设备。

    平板电视大都支持DLNA(Digital Living Network Alliance),一些智能电视可能无法支持直接播放Samba上的媒体,这时在树莓派安装一个MiniDLNA就可以让平板电视直接播放树莓派上的影音资源。

    注:家里已经有NAS,但是感觉总体上影音资料还是太多,懒得去买RAID阵列,用冗余的一些USB硬盘+树莓派来搭建一个日常追剧24小时服务站吧!!!

    2. 安装前提

    在Linux系统上安装,需要以下依赖:

    • libexif
    • libjpeg
    • libid3tag
    • libFLAC
    • libvorbis
    • libsqlite3
    • libavformat (the ffmpeg libraries)

    3. 安装步骤

    # sudo apt-get update
    # sudo apt-get upgrade
    # sudo apt-get install minidlna

    注1:笔者的树莓派安装各种开发环境,可能相对来说库比较全,因此全程顺利。若遇到缺少什么库,请根据提示或者搜索方法安装,或者给笔者留言,会尽量协助大家完成安装。
    注2:卸载命令(sudo apt-get remove --purge minidlna)。

    4. 服务配置

    # sudo vi /etc/minidlna.conf
    … // 省略的就使用默认即可,这里不再copy-paste
    media_dir=A,/mnt/ext/Music
    media_dir=P,/mnt/ext/Pictures
    media_dir=V,/mnt/ext/Videos
    friendly_name=Raspberry Pi
    inotify=yes

    5. 进程配置

    以下是进程配置的一些指令,根据实际需要选择。通常需要以下几个步骤及常用命令:

    1. 测试服务:启动服务/重启服务/服务状态查询/服务配置强制刷新
    2. 部署应用:随机启动
    3. WEB查看状态:http://树莓派IP地址:8200/,比如:http://192.168.78.211:8200/
    4. 手机查看状态:使用DLNA播放器,比如:OPlayer

    # sudo service minidlna start //启动服务
    # sudo service minidlna stop //停止服务
    # sudo service minidlna restart //重启服务
    # sudo /etc/init.d/minidlna status //服务状态查询
    # sudo service minidlna force-reload //服务配置强制刷新
    # sudo update-rc.d minidlna defaults //让MiniDLNA随机启动
    # sudo update-rc.d -f minidlna remove //取消MiniDLNA的开机自动启动

    MiniDLNA状态页raspberrypi MiniDLNA随便放些电影

    6. 参考资料

    【1】Ubuntu Community - MiniDLNA
    【2】Github - MiniDLNA
    【3】UPnP
    【4】DLNA
    【5】Using your Raspberry Pi as a DLNA/UPnP media server
    【6】Raspberry Pi external-storage-configuration

    7. 补充资料

    7.1 配置外置硬盘(媒体库)

    通常情况下,到服务进程配置这边,DLNA服务已经正常工作,但是通常情况下,sd卡容量是有限的,笔者这里就挂了一个300GB的usb硬盘(闲置)来放追剧库。

    1. 安装相关软件包。

    # sudo apt-get install exfat-fuse

    1. 查看自己的硬盘是什么文件格式的,这里介绍两种常用的windows硬盘格式NTFS&FAT32.

    2. 就是将自己硬盘放到/etc/fstab中,随机启动。

    # sudo vi /etc/fstab

    • NTFS格式硬盘,在最后一行添加:

    /dev/sda1 /mnt/usbvideo ntfs-3g defaults,noexec,umask=0000 0 0

    • FAT32格式硬盘,在最后一行添加:

    /dev/sda1 /mnt/myusbdrive auto defaults,noexec,umask=0000 0 0

    注:这里笔者的硬盘只有一个分区。如果有多个分区的小伙伴,请使用df/fdisk/mount等命令多尝试。

    fstab修改后的样子

    1. 重启树莓派

    # sudo reboot

    注1:还有一个关键问题:USB线会导致Raspberry Pi 3B+供电不足(Under Voltage),进而导致USB过载(over-current),最终USB外界硬盘直接丢失链接!!!请重点检查USB线,需要那种粗一点,短一点(能供大电流的)。
    注2:笔者配了一个5V-2A的手机充电器+USB硬盘是本身带外部供电(也是一个5V-2A的手机充电器),基本稳定(测试同时:2个DLNA设备播放+树莓派复制电影操作)。

    7.2 配置samba符号链接

    为了方便将下载文件放置到硬盘中,增加samba符号链接配置。

    $ sudo /etc/samba/smb.conf

    在配置文件中增加以下配置内容:

    [global] 
      follow symlinks = yes
      wide links = yes
      unix extensions  = no
    
    • 1
    • 2
    • 3
    • 4
    • unix extensions是为了在samba里支持符号链接,硬链接等特性,主要给UNIX下的samba客户端使用,对windows客户端没有任何用处,所以在windows客户端访问时需要关掉这个选项,这个是选项是默认启用的。
    • follow symlinks,这个参数控制samba服务器是否会跟随特定samba共享目录(非global选项)里的符号链接,默认是启用的。
    • wide links,这个参数控制是否能够创建一个链接指向samba服务器未共享的目录(samba服务器默认允许创建指向已共享的目录的链接),可能会导致一个安全问题,所以这个参数默认不启用

    注:关于完整的samba配置,请大家参阅samba手册,这里不做展开。

    7.3 配置延时启动脚本

    有些特殊的服务或者由于硬件初始化问题,希望在Linux本身所有系统及服务启动以后,甚至再延迟一段时间,将自己的服务启动起来,可以通过延时启动脚本。

    注:这里笔者的一个硬盘USB电源供电比较慢(且Pi电源也存在一定的问题),所以增加了一个延迟动作。通常情况不需要,只要fstab下加载硬盘即可。
    【1】B+: “usb 1-1-port2: over-current change”
    【2】[Solved] USB not working - Raspberry pi 2

    增加延时启动脚本的方法如下:

    1. 创建需要执行的脚本

    # sudo vim my_service.sh
    # chmod 777 my_service.sh

    #!/bin/sh
    sleep 10
    mount /dev/sda1 /mnt/usbvideo
    
    • 1
    • 2
    • 3
    1. 在rc.local中添加开机自启,在exit 0 前面添加如下代码

    # sudo vim /etc/rc.local

    su pi -c "exec /home/pi/my_service.sh"
    
    • 1
    1. 重启树莓派

    # sudo reboot

    注:当然也可以直接在rc.local脚本中加shell命令。

  • 相关阅读:
    深度学习(三)之LSTM写诗
    pytorch lightning最简上手
    JavaIO之read()和readline
    目标与学习方向
    安装sqli-labs时,mysql 8 报错解决
    【无标题】在feign post中,如何发送 form-url-encoded 数据
    汇编语言实验八-《汇编语言-王爽老师》
    如何使用摩尔信使MThings连接网络设备
    RTX 4090来了!显卡换新,驱动别拉胯
    基于LSTM的分子生成入门
  • 原文地址:https://blog.csdn.net/lida2003/article/details/126747770