说实话,管理你的 Plex 媒体可能会很麻烦。特别是当你一次性想要添加大量新内容,或者你一直在不断添加新内容时!这就是 Monitr 的用武之地。
下载电影或电视剧,或者翻录 CD/DVD/蓝光光盘,现在是将新媒体添加到你的 Plex 服务器上最困难的部分。不再需要手动放置文件或拼凑媒体的正确元数据。Monitr 使向 Plex 服务器添加新媒体变得更加容易。只需确保将新文件添加到指定的“下载”目录即可! Monitr 会将它准确地放置在 Plex 想要的位置,并适当地命名它,以便 Plex 可以识别它并找到其正确的元数据匹配项。
它的工作原理是监视指定的“下载”目录,每当向该目录添加新的视频、音频或字幕文件时,Monitr 会自动将其移动到应有的位置,然后 Plex 负责其余的工作!
你还可以配置 Monitr 以自动将媒体转码为 Plex Direct Play/Stream 能够播放的格式。 这意味着 Plex 无需即时转码媒体,并且有助于在观看电影或电视节目时降低 CPU 负载。
它使用 Apple 的 Swift 语言(以及少量 C 语言,用于 Linux 上的一些东西)支持 Linux 或 macOS 操作系统。它还有一些依赖项,例如 ruby(如果你启用了转换功能)。
# transcode_video dependency installation (only needed if you're going to enable automatic media conversion)
sudo add-apt-repository ppa:stebbins/handbrake-releases
sudo add-apt-repository ppa:jonathonf/ffmpeg-3
sudo apt-get remove handbrake* ffmpeg && sudo apt autoremove
sudo apt-get update
sudo apt-get install -y ruby handbrake-cli ffmpeg mkvtoolnix mp4v2-utils libav-tools x264 x265
# transcode_video installation (only needed if you're going to enable automatic media conversion)
sudo gem install video_transcoding
# Swiftenv installation (makes installing and updating swift super easy)
git clone https://github.com/kylef/swiftenv.git ~/.swiftenv
echo 'export SWIFTENV_ROOT="$HOME/.swiftenv"' >> ~/.bash_profile
echo 'export PATH="$SWIFTENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(swiftenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
# Plex-Monitr and swift installation
git clone https://github.com/Ponyboy47/Plex-Monitr.git
cd Plex-Monitr
swiftenv install $(cat .swift-version)
swift build
swift run monitr
# Homebrew installation (To install swiftenv and also the transcode_video dependencies)
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# transcode_video dependencies and installation (only needed if you're going to enable automatic media conversion)
brew install handbrake ffmpeg mkvtoolnix mp4v2 && gem install video_transcoding
# Makes installing and updating swift super easy
brew install kylef/formulae/swiftenv
# Plex-Monitr and swift installation
git clone https://github.com/Ponyboy47/Plex-Monitr.git
cd Plex-Monitr
swiftenv install $(cat .swift-version)
swift build
swift run monitr
cd ~/Plex-Monitr
rm Package.{resolved,pins}
# If config changes have been made, you will need to regenerate and save your new config
rm ~/.config/monitr/settings.json
git pull
swiftenv install $(.swift-version)
swift package update
swift build
swift run monitr
有很多方法可以配置你的 Monitr。 像任何 CLI 应用程序一样,可以同时使用这些参数中的任何一个来创建你需要的精确 Monitr。
-h
或 --help
-v
或 --version
-f
或 --config
此默认值为 ~/.config/monitr/settings.json。
-p
或 --plex-dir
如果未指定,则使用 /var/lib/plexmediaserver/Library(Ubuntu 上的默认位置)。
-d
或 --download-dirs
如果未指定,则使用 ~/Downloads(这是我在 Ubuntu 上保留自己的下载文件的地方)。
注意:这可以是逗号分隔的要监视的路径列表。
--home-video-download-dirs
如果未指定,则使用 ~/HomeVideos。
注意:这可以是逗号分隔的要监视的路径列表。
-c
或 --convert
默认为 false。
-i
或 --convert-immediately
默认为 true
如果为 true,则在将文件移动到其相应的 Plex 目录之前转换文件
-a
或 --convert-cron-start
默认为 "0 0 * * *" (每天午夜)
有关 Cron 格式的信息,请参见 https://en.wikipedia.org/wiki/Cron
-z
--convert-cron-end
默认为 "0 8 * * *" (每天早上 8 点)
有关 Cron 格式的信息,请参见 https://en.wikipedia.org/wiki/Cron
注意:如果此时正在运行作业,它将运行到完成,但不会启动新的转换
--convert-threads
默认为 1
注意:初步性能测试表明,使用多个线程仍将在相同的时间内转换相同数量的文件。 单个线程将非常快速地转换一个文件,而多个线程同时转换多个文件,但是每个文件的转换速度都较慢。 总的来说,转换一批文件往往需要相同的时间。
--delete-original
默认为 false
注意:如果为 false,则未转换的媒体文件将与转换后的媒体文件一起放置在 plex 位置。 原始文件的文件名末尾(但在文件扩展名之前)将附加“ - original”。
--abr
或 --average-bitrate-rcs
默认为 false
注意:要确定是否应使用此选项,请运行 transcode-video --help
并阅读有关 --abr 选项的信息。
--x265
默认为 false
注意:要确定是否应使用此选项,你可能需要查看 此链接,如果你尝试在转换时大幅减小文件大小并且可以使用 h265 转换器。
如果你需要我公开 transcode-video 命令的其他选项,请创建一个新问题,我可以很容易地做到这一点。
-t
或 --target
可以多次使用
注意:要确定是否/如何使用此选项,请运行 transcode-video --help
并阅读有关 --target 选项的信息。
--speed
或 --transcode-speed
默认为 medium
注意:有效选项为 default、quick 或 veryquick。 速度越快,文件越大,质量可能会降低。
quick 选项通常会产生 70-80% 更快的转码速度,而质量几乎没有可察觉的变化。
veryquick 选项通常具有 100-120% 更快的转码速度,质量差异略微明显,并且文件明显更大。
--x264-preset
默认为 medium
注意:有效选项为 veryslow、slower、slow、default、fast、faster、veryfast。
预设越快,质量越低,文件大小越大。
--convert-video-container
默认为 mp4,因为它是各种 Plex 设备中最常用的 DirectPlay 支持的容器
--convert-video-codec
默认为 h264,因为它是 Plex 中 DirectPlay 最常用的支持编解码器
--convert-audio-container
默认为 aac(目前)
注意:我没有计划提供大量音频文件转换支持。 我知道 Plex 通常支持流式传输 aac,这就是我使用 aac 的原因,但是我对 Plex 音频流传输的了解不如我对视频流传输的要求了解得多。
--convert-audio-codec
默认为 aac,因为它是 Plex 中 DirectPlay 最常用的支持编解码器
--convert-video-subtitle-scan
默认为 false
注意:这是 transcode_video 工具中的一项实验性功能。 如果出现问题,你最终可能会将错误的字幕轨道刻录到视频中。 请参阅 @donmelton 在他的 transcode_video 中有关此功能的文档。 如果你要使用此功能,强烈建议你不要使用 --delete-original
标志,以确保安全。
--convert-language
默认为 eng
注意:使用 ISO 639-2 语言代码,我只在此项目中包含了一小部分。 如果你需要添加一个,请提交一个 issue
--convert-video-max-framerate
默认为 30.0
--convert-temp-dir
默认为 /tmp/monitrConversions
--delete-subtitles
默认为 false
-s
或 --save-settings
默认为 false
当前设置保存在 --config-file
路径中(默认为 ~/.config/monitr/settings.json)
注意:如果为 true,则后续 monitr 实例将从 --config-file
选项加载设置文件,并使用其配置值而不是通常的默认值。
--level
或 --log-level
默认值为 error
注意:有效选项为 error、warn、warning、info、debug、verbose。
-o
或 --log-file
默认为 nil,这意味着日志仅写入 stdout。
注意:如果设置,并且日志记录级别为 debug 或 verbose,则日志将写入指定的文件以及 stdout。