안녕하세요? 전에 두목님께서 아래의 글을 올려주신 적이 있죠..
https://cafe.naver.com/mk802/25352
라이브러리 이동 후, 트랜스코딩 자체가 죽어버린다는 문제입니다.
저도 용량이 부족하다보니 옮겨야하는데..
음.. 로그를 찍어보니 아래와 같습니다.
1. 로그
13 Dec 07, 2019 17:46:19.790 [0x7fdb65aaab80] WARN - [FFMPEG] - Error loading external lib: /srv/dev-disk-by-label -2tb/plex/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/395e79c-2735-linux-x86_64/libmpe g4_decoder.so: failed to map segment from shared object
14 Dec 07, 2019 17:46:19.790 [0x7fdb65aaab80] WARN - [FFMPEG] - Error loading external lib: /srv/dev-disk-by-label -2tb/plex/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/395e79c-2735-linux-x86_64/libwma v2_decoder.so: failed to map segment from shared object
15 Dec 07, 2019 17:46:19.790 [0x7fdb65aaab80] WARN - [FFMPEG] - Error loading external lib: /srv/dev-disk-by-label -2tb/plex/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/395e79c-2735-linux-x86_64/libmsm peg4v3_decoder.so: failed to map segment from shared object
16 Dec 07, 2019 17:46:19.790 [0x7fdb65aaab80] WARN - [FFMPEG] - Error loading external lib: /srv/dev-disk-by-label -2tb/plex/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/395e79c-2735-linux-x86_64/libh26 4_decoder.so: failed to map segment from shared object
17 Dec 07, 2019 17:46:19.790 [0x7fdb65aaab80] WARN - [FFMPEG] - Error loading external lib: /srv/dev-disk-by-label -2tb/plex/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/395e79c-2735-linux-x86_64/libwmv 1_decoder.so: failed to map segment from shared object
18 Dec 07, 2019 17:46:19.790 [0x7fdb65aaab80] WARN - [FFMPEG] - Error loading external lib: /srv/dev-disk-by-label -2tb/plex/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/395e79c-2735-linux-x86_64/libmpe g2video_decoder.so: failed to map segment from shared object
19 Dec 07, 2019 17:46:19.790 [0x7fdb65aaab80] WARN - [FFMPEG] - Error loading external lib: /srv/dev-disk-by-label -2tb/plex/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/395e79c-2735-linux-x86_64/libaac _encoder.so: failed to map segment from shared object
20 Dec 07, 2019 17:46:19.790 [0x7fdb65aaab80] WARN - [FFMPEG] - Error loading external lib: /srv/dev-disk-by-label -2tb/plex/plexmediaserver/Library/Application Support/Plex Media Server/Codecs/395e79c-2735-linux-x86_64/libac3 _encoder.so: failed to map segment from shared object
ffmpeg 라이브러리를 로딩하지 못한다고 합니다. 도대체 왜 그럴까요..
경로도 똑같이 있는데..
확인해 보니.. noexec 옵션이 omv 디스크 마운트 기본 옵션입니다. 해당 옵션을 빼주셔야합니다.
2. noexec 옵션 빼기
/dev/md0 on /srv/dev-disk-by-label-2tb type xfs (rw,noexec,relatime,attr2,inode64,sunit=1024,swidth=2048,usrquota,grpquota)
일단 OMV 웹 UI에서는 어떻게 빼는지 잘 모르겠습니다. 그래서 fstab 을 직접 수정합니다.
root@openmediavault:~# cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sdb2 during installation
UUID=59571589-3680-470c-88f1-8d8b1a780d6c / ext4 noatime,nodiratime,discard,errors=remount-r0 1
# /boot/efi was on /dev/sdb1 during installation
UUID=C3F3-148F /boot/efi vfat umask=0077 0 1
# swap was on /dev/sdb3 during installation
UUID=4fd290dd-ef9e-40ee-939b-2b3aaea6c20f none swap sw 0 0
# >>> [openmediavault]
/dev/disk/by-label/2tb /srv/dev-disk-by-label-2tb xfs defaults,nofail,usrquota,grpquota,inode64 0 2
/dev/disk/by-label/500gb /srv/dev-disk-by-label-500gb xfs defaults,nofail,usrquota,grpquota,inode64 0 2
# <<< [openmediavault]
재부팅 후 마운트를 보면 noexec 가 빠진것을 보실 수 있습니다.
/dev/md0 on /srv/dev-disk-by-label-2tb type xfs (rw,relatime,attr2,inode64,sunit=1024,swidth=2048,usrquota,grpquota)
이후 트랜스코딩이 정상 작동합니다. ㄷㄷㄷ
3. 라이브러리 이동 방법
1. 심링크 방법
/var/lib/plexmediaserver 폴더를 그대로 다른곳으로 옮깁니다.
mkdir 을 통해 /var/lib/plexmediaserver 폴더를 생성합니다.
ln -s /path/to/move/plexmediaserver /var/lib/plexmediaserver 로 지정합니다.
2. systemd script 직접 수정
root@openmediavault:~# cat /lib/systemd/system/plexmediaserver.service
[Unit]
Description=Plex Media Server
After=network.target network-online.target
[Service]
Environment="PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR=/srv/dev-disk-by-label-2tb/plex/plexmediaserver/Library/Application Support"
Environment=PLEX_MEDIA_SERVER_HOME=/usr/lib/plexmediaserver
Environment=PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCS=64
Environment=PLEX_MEDIA_SERVER_TMPDIR=/tmp
ExecStartPre=/bin/sh -c '/usr/bin/test -d "${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}" || /bin/mkdir -p "${PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR}"'
ExecStart=/bin/sh -c '\
PLEX_MEDIA_SERVER_INFO_VENDOR="$(grep ^NAME= /etc/os-release | awk -F= "{print \\$2}" | tr -d \\" )" \
PLEX_MEDIA_SERVER_INFO_DEVICE="PC" \
PLEX_MEDIA_SERVER_INFO_MODEL="$(uname -m)" \
PLEX_MEDIA_SERVER_INFO_PLATFORM_VERSION="$(grep ^VERSION= /etc/os-release | awk -F= "{print \\$2}" | tr -d \\" )" \
LD_LIBRARY_PATH=/usr/lib/plexmediaserver/lib \
"/usr/lib/plexmediaserver/Plex Media Server"'
Type=simple
User=plex
Group=plex
Restart=on-failure
RestartSec=5
StartLimitInterval=60s
StartLimitBurst=3
[Install]
WantedBy=multi-user.target
꼭 경로를 Application Support 까지 써주셔야 합니다!!!!
4. 추가적인 문제 해결
1. 죽어도 HW 트랜스코딩이 안될경우..
최근 Plex 서버에서 IHD_drv.so 를 사용하는 경우가 있습니다. 이는 intel media driver 를 쓰는 것으로 j3455 j4105 등의 셀레론 시스템에서는 지원이 되지 않습니다.
root@openmediavault:/usr/lib/plexmediaserver/lib/dri# ls
i965_drv_video.so iHD_drv_video.so
i965_drv_video.so 파일을 iHD_drv_video.so 로 덮어 쓰시길 바랍니다.
2. 죽어도 HW 트랜스코딩이 또 안될경우..
plex 계정이 video 그룹에 추가가 되지 않은 경우입니다. adduser plex video 를 통해 해결하세요.
3. 파일 복사간 이것저것 하다가 퍼미션이 꼬인경우..
root@openmediavault:~# chown plex:plex /srv/dev-disk-by-label-2tb/plex/plexmediaserver/ -R
plex:plex 로 맞춰주시길 바랍니다.
감사합니다.
'서버 > 리눅스 서버' 카테고리의 다른 글
docker image rootfs 만들기 (2) | 2019.12.20 |
---|---|
rclone web-gui 아직 쓸만하지는 않습니다. (0) | 2019.12.08 |
Visual Studio Code Server 설치하기 (codeserver) (0) | 2019.11.23 |
Chrome Remote Desktop Headless 설치하기 (2) | 2019.11.18 |
OMV5 cockpit 적응기 (KVM / QEMU / LibVirt) (0) | 2019.11.18 |
댓글