Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

[Support] kilrah/nextcloud-ffmpeg with pdlib

Featured Replies

13 hours ago, Kilrah said:

PDLib should now be available with the latest update.

Thank you for adding into your image.

Sadly getting the same issues when I installed manually.

You also need to load the module using the PHP file which is missing from the original image and thus most forks.

When you run the setup it isn't loaded.

image.thumb.png.df9e54e034e7099a4165b92d22474960.png

 

This is when trying to access the Face Recognition option in administration settings.

image.thumb.png.b799826e0126e8ad70277a7a50c73db8.png

 

You can confirm with command: php -m | grep pdlib

This will be blank as the module isn't loaded.

You need to add the following to the php.ini file in accordance with their documentation:

[pdlib]
extension="pdlib.so"

 

You can locate the expected path using: php -i |grep php.ini

There will be no php.ini file and making one causes the image to not start.

I think once that file is sorted it will load, any ideas?

Edited by ados

  • Replies 327
  • Views 51.7k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • docker exec -u root nextcloud chown -R 33:users *  was the correct command. Thanks for you help!

  • Update. The value should be set in ".htaccess" not ".user.ini" And it should be set like this Find the solution by assisted by ChatGPT 🤣

  • chown -R 33:33 /mnt/user/appdata/nextcloud-ffmpeg (adapt as needed) and same on your storage directory if any should get you going

Posted Images

  • Author

Typo in build script had caused the "latest" tag to not be updated. Fixed now, but it's usually recommended to use major version tags (:28, :29,...) on nextcloud to avoid nasty surprises on major version jumps. 

 

Edited by Kilrah

18 hours ago, Kilrah said:

Typo in build script had caused the "latest" tag to not be updated. Fixed now, but it's usually recommended to use major version tags (:28, :29,...) on nextcloud to avoid nasty surprises on major version jumps. 

 

That resolved it, now loads PDLIB and FR works.

To assist those setting this up here is the short steps.

 

1. Once using the latest image open CLI on the host

 

2. Run the following: docker exec -it -u www-data Nextcloud ./occ face:setup --memory 5 GB --model 4

Assign the amount of RAM your willing/able to for image processing.

If your wanting to process higher resolution files especially HEIC than 2 GB+.

 

3. You also need set the PHP memory limit to equal or higher than above. You can do this with config files or a variable which will allow easy changing if needed. PHP_MEMORY_LIMIT and the value is in MB i.e. 5000M

 

4. Login to your NC and enable all the Memories app settings you want and do the same for Recognise.

Don't forget to enable "Index all media automatically (recommended)" in Memories.
Face Recognition settings can be adjusted later if your not happy with the results.

 

5. We need to setup Recognise, run the following using host CLI.

docker exec -it -u www-data Nextcloud ./occ recognize:download-models

docker exec -it -u www-data Nextcloud ./occ recognize:classify

 

6. We need to scan the library manually once and Memories will handle new files from here.

Again using CLI on the host run: docker exec -it -u www-data Nextcloud ./occ memories:index

 

7. Open the Memories app as the user (top bar) and setup your root paths.

These are areas you want Memories to process, allows you to exclude specific files if needed.

 

8. Enable face recognition for your user account (per user) in the user settings.

 

Things to note and general tips.

Make sure you're using CRON or Recognize won't work, find the radio button in basic settings.

To minimise HDD spin ensure your /data directory is your cache SSD.

The file data /var/www/html/data goes to the array of HDDs.

Ensure you have you have configured your Nextcloud config file with ffmpeg and best practice settings.

You can see any missconfigured best practice settings from the overview tab in admin settings.

Edited by ados

  • Kilrah changed the title to [Support] kilrah/nextcloud-ffmpeg with pdlib

Hi guys, I am having an issue installing nextcloud-cronjob. I have Nextcloud-ffmpeg set up and working with NGinx proxy manager and all works well, i have an error saying last job was ran 2 days ago and theres a problem so I have tried to install nextcloud cronjob but get this:

 

docker run
  -d
  --name='Nextcloud-cronjob'
  --net='bridge'
  -e TZ="Europe/London"
  -e HOST_OS="Unraid"
  -e HOST_HOSTNAME="NAS"
  -e HOST_CONTAINERNAME="Nextcloud-cronjob"
  -e 'NEXTCLOUD_CONTAINER_NAME'='Nextcloud-ffmpeg'
  -e 'NEXTCLOUD_CRON_MINUTE_INTERVAL'='15'
  -e 'NEXTCLOUD_EXEC_USER'='www-data'
  -e 'NEXTCLOUD_EXEC_SHELL'='bash'
  -l net.unraid.docker.managed=dockerman
  -l net.unraid.docker.icon='https://github.com/kilrah/unraid-docker-templates/raw/main/icons/nextcloud-cronjob.png'
  -v '/var/run/docker.sock':'/var/run/docker.sock':'ro'
  -v '':'/cron-scripts':'ro' 'rcdailey/nextcloud-cronjob'

docker: invalid spec: :/cron-scripts:ro: empty section between colons.
See 'docker run --help'.

The command failed.

 

My Nextcloud-ffmpeg and my NGinx are pretty much set to default and I left the settings on nextcloud-cronjob on the defaults as well. Any ideas?

 

Edited by Connor19
incomplete

1 hour ago, Connor19 said:

Hi guys, I am having an issue installing nextcloud-cronjob. I have Nextcloud-ffmpeg set up and working with NGinx proxy manager and all works well, i have an error saying last job was ran 2 days ago and theres a problem so I have tried to install nextcloud cronjob but get this:

 

docker run
  -d
  --name='Nextcloud-cronjob'
  --net='bridge'
  -e TZ="Europe/London"
  -e HOST_OS="Unraid"
  -e HOST_HOSTNAME="NAS"
  -e HOST_CONTAINERNAME="Nextcloud-cronjob"
  -e 'NEXTCLOUD_CONTAINER_NAME'='Nextcloud-ffmpeg'
  -e 'NEXTCLOUD_CRON_MINUTE_INTERVAL'='15'
  -e 'NEXTCLOUD_EXEC_USER'='www-data'
  -e 'NEXTCLOUD_EXEC_SHELL'='bash'
  -l net.unraid.docker.managed=dockerman
  -l net.unraid.docker.icon='https://github.com/kilrah/unraid-docker-templates/raw/main/icons/nextcloud-cronjob.png'
  -v '/var/run/docker.sock':'/var/run/docker.sock':'ro'
  -v '':'/cron-scripts':'ro' 'rcdailey/nextcloud-cronjob'

docker: invalid spec: :/cron-scripts:ro: empty section between colons.
See 'docker run --help'.

The command failed.

 

My Nextcloud-ffmpeg and my NGinx are pretty much set to default and I left the settings on nextcloud-cronjob on the defaults as well. Any ideas?

 

Your variables seem messed up(especially  for  the scripts path), you can try to delete it and re-create it. 

Here is my setup:

image.thumb.png.104f330ac7437dfd5cca809565aa5be1.png

I see, when you say delete and recreate, what is it exactly that I should delete and Recreate?

You could delete and recreate the whole Nextcloud-cronjob docker(remove):

image.png.a1c5c99b0760b6de60afe83c64d72a42.png

 

Or you can try to fix the scripts path variable. It looks like you have an empty Container path and /cron-scripts in the Host Path:

 

image.thumb.png.7beeabad74cac2782f7edc93124d7479.png

 

You can always save a backup of your docker template just in case:

root@NAS:/boot/config/plugins/dockerMan/templates-user# ls my-Nextcloud-cronjob.xml

my-Nextcloud-cronjob.xml

 

 

Edited by foo_fighter

  • Author

  

On 6/29/2024 at 8:12 PM, Connor19 said:

Hi guys, I am having an issue installing nextcloud-cronjob. I have Nextcloud-ffmpeg set up and working with NGinx proxy manager and all works well, i have an error saying last job was ran 2 days ago and theres a problem so I have tried to install nextcloud cronjob but get this:

 

You're likely on an older unraid version where empty paths were not accepted anymore but not being automatically stripped yet. There was a plugin to fix that for that version, but you should probably just update unraid instead.

Edited by Kilrah

Thanks for the response, I was on 6.12.8 and updating it to 6.12.10 did indeed allow me to install the Nextcloud-Cronjob container. Though I am now faced with 3 errors that I cant shift.

1 - The Cronjob container is installed and I left everything on default, however what seems to happen is every 15 mins I hear the fans spin up so something is happening however the Nextcloud overview still says that a cron job hasnt been executed in 4 days. I have screenshotted below the nextcloud-cronjob log.

2 - Another error on my overview is "The database is missing some indexes. Due to the fact that adding indexes on big tables could take some time they were not added automatically. By running "occ db:add-missing-indices" those missing indexes could be added manually while the instance keeps running. Once the indexes are added queries to those tables are usually much faster. Missing optional index "schedulobj_lastmodified_idx" in table "schedulingobjects"." - How do I get rid of this? I have tried entering the command in the main terminal and the console of the nextcloud-ffmpeg container but to no avail.

3 - Final error I am seeing is "Your "trusted_proxies" setting is not correctly set, it should be an array of IP addresses - optionally with range in CIDR notation. For more details see the documentation ↗." I have also screenshotted below how the proxies look in my config as dont know how to rectify

 

Thanks very much and sorry for being a nuisance!

 

trusted proxies.png

cron3.png

Edited by Connor19

  • Author

You have set nextcloud scheduling to cron, right? You get a php out of memory error, so you might need to increase it, PHP_MEMORY_LIMIT on the NC container (see first post).

First post also mentions how to run occ commands.

trusted_proxies as it says in the error has to be the ip address, not a name

 

I am using Cron yes, I will tackle the proxy issue afterwards but as for the first issue with the PHP error I hope I am getting this right, I added a variable to the container as screenshotted below but I am getting a similar error. As for running the command in terminal I am also getting an error there too, forgive the ignorance as I am out of my depth here. Also regarding the trusted proxies, is it the IP address and port of the NGinx webui that I should put?

dbadd.png

cont variable.png

phperror.png

Edited by Connor19

  • Author
16 minutes ago, Connor19 said:

I added a variable to the container as screenshotted below

First post says to put it in Extra parameters, not as a variable. Should work as a variable but then you must remove the -e.

 

17 minutes ago, Connor19 said:

As for running the command in terminal I am also getting an error there too

You removed the "php" before occ.

17 minutes ago, Connor19 said:

is it the IP address and port of the NGinx webui that I should put?

IP address of NPM, no port.

Both other issues are sorted now so thank you very much, just the OCC one I am struggling with, so I did the PHP before OCC but get this:

dbindices2.png

Edited by Connor19

Sorted it! I removed the sh from the command and that did it! :D Thanks for the assistance

Hi,

Currently I have a problem getting hardware transcoding to work.

My environment is as follows:

  • Unraid 6.12.10
  • AMD Ryzen 3 PRO 4350G with Radeon Graphics
  • latest Radeon TOP plugin
  • kilrah/nextcloud-ffmpeg:latest
  • /dev/dri is passed through into the container

 

When trying to play a video, the log file reader says "memories: Transcode failed: Transcoder returned 408 "

 

vainfo says:

root@ZWB2-SRV01:~# docker exec -it Nextcloud vainfo 
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: can't connect to X server!
libva info: VA-API version 1.17.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: va_openDriver() returns -1
vaInitialize failed with error code -1 (unknown libva error),exit

 

In Memories configuration transcoding, and acceleration with VA-API are activated. Every check is listed green.

 

 

I also tried an external transcoder as described here.

Again every check green.

But then the log of the go-vod container isn't able to find the file to transcode:

2024/07/01 10:35:06 Starting go-vod 0.2.5 on :47788
2024/07/01 10:35:22 &{Version:0.2.5 Configured:true VersionMonitor:true Bind::47788 FFmpeg:/usr/local/bin/ffmpeg FFprobe:/usr/local/bin/ffprobe TempDir:/tmp/go-vod ChunkSize:3 LookBehind:3 GoalBufferMin:1 GoalBufferMax:4 StreamIdleTime:60 ManagerIdleTime:60 QF:24 VAAPI:true VAAPILowPower:false NVENC:false NVENCTemporalAQ:false NVENCScale:cuda UseTranspose:false ForceSwTranspose:false UseGopSize:false}
2024/07/01 10:35:23 /mnt/Share/PATH TO VIDEO.mp4: No such file or directory

2024/07/01 10:35:23 Error creating manager exit status 1

In this case the log file reader says: "memories Transcode failed: Transcoder returned 500"

 

 

Any ideas what can be done to get transcoding working?

  • Author

Only the Intel VA drivers are installed, not AMD since I can't really test that.

 

Try opening a console into the container and

apt update

apt install mesa-va-drivers

 

See if it works afterwards

 

34 minutes ago, psychofaktory said:

But then the log of the go-vod container isn't able to find the file to transcode:

You'd probably need to make sure that path is mapped 1:1 into the go-vod container

23 minutes ago, Kilrah said:

Try opening a console into the container and

apt update

apt install mesa-va-drivers

Thanks for the information.

Tried this, but got this error:

$ apt update
Reading package lists... Done
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/

$ apt install mesa-va-drivers 
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?

 

The same from unraid console:

root@ZWB2-SRV01:~# docker exec -it Nextcloud apt update
Reading package lists... Done
E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/

 

 

26 minutes ago, Kilrah said:

You'd probably need to make sure that path is mapped 1:1 into the go-vod container

Double checked this.
The relative paths are identical in both containers.

9 minutes ago, psychofaktory said:
54 minutes ago, Kilrah said:

You'd probably need to make sure that path is mapped 1:1 into the go-vod container

Double checked this.
The relative paths are identical in both containers.

 

OK. Thanks to your input I played a bit around this and figured out, that both (host paths and container paths) needs to be identically on both containers. I have now adjusted this and it works!!

 

Thank you very much!

 

  • Author
45 minutes ago, psychofaktory said:

Tried this, but got this error:

Weird, should work...

But I'm confident that's what's missing, just update your NC container with the update that was just pushed and built-in transcode should now work on AMD.

Edited by Kilrah

20 minutes ago, Kilrah said:

But I'm confident that's what's missing, just update your NC container with the update that was just pushed and built-in transcode should now work on AMD.

Did the update an tried to set back the connection address from the external go-vod transcoder to internal.

Then I got this error which wasn't present before:

failed to connect to go-vod: cURL error 7: Failed to connect to 127.0.0.1 port 47788 after 0 ms: Couldn't connect to server (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for http://127.0.0.1:47788/config%2Fconfig/config. 

 

  • Author

Might need to restart the container after changing so the binary is started?

 

Now tested and working on a Ryzen 5700U APU.

Edited by Kilrah

Now it's working for me too.

Hi, me again with some slight issues. Firstly sometimes when I boot my Nas I can’t get into Nextcloud, I normally have to mess about restarting apps and messing in Nginx to try to get it going, though this doesn’t happen every time. It’s happening right now so I can’t get into the webUI at the moment. Secondly even when it does work, cron jobs don’t run by default, I have to manually restart the cron job docker container to get that going for some reason as it’s stopped by default despite auto start being on. Below are some log screenshots to see if there’s any red flags in there 

IMG_8947.jpeg

IMG_8946.jpeg

IMG_8948.jpeg

IMG_8945.jpeg

  • Author

Cronjob container needs to be started after the nextcloud one, mariadb before both (already is).

RIght I wasnt aware that you could change the startup order, after doing so all is working and my issue has been resolved, thanks again! :D

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.