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] reven - FileFlows

Featured Replies

This is great and works better than expected.  It's not using my nvidia card at all though. I was assuming it would use nvenc/gpu to do the heavy lifting.  Do I need to add anything in the docker config?

 

Edit: I added --runtime=nvidia to the extra parameters but I se no field for the UUID to go into

Edited by Antibios

  • Replies 85
  • Views 33.5k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Did a force update, and that seems to have fixed it.   Thanks!

  • Version: 0.0.1.70 - Fixed issue with new Flows not having default "File Input" - Added InputKeyValue type to editor - BasicNodes: Added Pattern Replacer node which lets you do string/re

  • This is the first docker app I've ever done, so I'm really no expert at it.  I used the first thing that I got working which was that jrottenberg base.  I don't think the vaapi has nvidia hw support (

Posted Images

  • Author
6 hours ago, Antibios said:

This is great and works better than expected.  It's not using my nvidia card at all though. I was assuming it would use nvenc/gpu to do the heavy lifting.  Do I need to add anything in the docker config?

 

Edit: I added --runtime=nvidia to the extra parameters but I se no field for the UUID to go into

I've added instructions how to configure an NVIDIA GPU to the FileFlows wiki.

 

https://github.com/revenz/FileFlows/wiki/Unraid-NVIDIA-Setup

Thank you, working perfectly now.

  • Author
4 hours ago, Antibios said:

Thank you, working perfectly now.

nice.   sadly unraid/docker cant just do this automatically and not something I can make the app just auto configure.   because yes, its bad user experience having to manually configure this.    however... unraid isnt exactly a computer illiterate piece of software so if youre using it youre more advanced than the typical computer user.  so its not unreasonable.  ill also update the docker instructions with the image to point to that wiki page to hopefully make it easier for other users

Thanks for making this tool. I don't see any docker updates, but the webui is telling me there is an update available. 

 

 

NEW VERSION AVAILABLE 0.3.0.376

  • Author
4 minutes ago, kri kri said:

Thanks for making this tool. I don't see any docker updates, but the webui is telling me there is an update available. 

 

 

NEW VERSION AVAILABLE 0.3.0.376

I was literraly just uploading the new builds as you posted this.    
So you can update the docker now to get the latest version.

  • 3 weeks later...

Is there any way to set this up to run multiple encodes at once?  Do I just make duplicate flows?

  • Author
4 hours ago, Antibios said:

Is there any way to set this up to run multiple encodes at once?  Do I just make duplicate flows?

  1. Go to "Nodes"
  2. Edit "Internal Processing Node"
  3. Change "Flow Runners" to how many you want to run at the same time
  4. Save

image.thumb.png.bf858a77e19628c1375e9f7b891b6cc5.png

Love the app was very impressed with my initial testing, but I am having an issue with files not being converted/ignored. I have a simple "convert video" flow. When I add files to be converted, they appear momentarily on the dashboard and then disappear, not even appearing in the "library files" section. When I root through the log files I find this in one:

 

Quote

==============================================================================
===                      PROCESSING NODE OUTPUT START                      ===
==============================================================================
Base URL: http://localhost:5000
Address: INTERNAL_NODE
Making request[GET]: http://localhost:5000/api/node/by-address/INTERNAL_NODE
Waiting on node task
Completed node task
Node SignalrUrl: http://localhost:5000/flow
Making request[GET]: http://localhost:5000/api/library-file/2f233b7d-48ae-469d-8482-236b798319e2
Making request[GET]: http://localhost:5000/api/library/5ca1e8eb-96db-4b69-b56b-2298bbfde72c
Library file does not exist, deleting from library files: /media/SabNZBD/complete/Snowpiercer.S03E02.720p.HEVC.x265-MeGusta.mkv
Making request[DELETE]: http://localhost:5000/api/library-file
Exit Code: 0

==============================================================================
===                       PROCESSING NODE OUTPUT END                       ===
==============================================================================
 

 

My issues are:

 

a) the files definitely exist, are still in the indicated initial folder and are not deleted

 

b) the files never appeared in the library files section of the UI at all

 

This is happening with every file

 

Any ideas what could be causing this and how I can fix it? Thanks.

  • Author

most likely its due to mapping being incorrect.   The node tries to map the file locally, it can't find it, it assumes the file has been deleted, it deletes the library file entry.

 

You only need to use an additional processing node if you dont want to use the intenral node on the same machine.   The internal node is a lot easier, since theres nothing to map.

 

But if you want to use an external processing node, then yeah, most likely its the mapping.

This is the internal node. It even says so in the text I quoted. I don't map anything to it apart from what is in the docker template, and that shouldn't affect anything.

  • Author

it is doing this check
            if (file.Exists == false)
            {
                Console.WriteLine("Library file does not exist, deleting from library files: " + file.FullName);
                libfileService.Delete(libFile.Uid).Wait();
                return;
            }

so it is checking that file exists before starting the flow, the file system is reporting that file does not exist, so its deleting it.  is the file name casing exactly right? 
you could try opening the console on the docker image and manually checking that file exists in that path in the docker container.

  • Author
22 hours ago, jjthacker said:

This is the internal node. It even says so in the text I quoted. I don't map anything to it apart from what is in the docker template, and that shouldn't affect anything.

did you have a chance to try the console of the docker to see if that file exists?    also for quicker support use my discord server, im pretty much always available there unless sleeping :)

I've got an idea for a flow, but I don't know how to create it. I have many tv shows, things like BBC panel shows, that come in as 1080p h264, and I'd like to create a flow that covers my entire media library and does the following:

  1. Look over the entire media library, looking for some kind of file in different subfolders, maybe a file called 'file.flow'. The library would look at '/mnt/user/Television'. This file would be at a location like '/mnt/user/Television/Entertainment/Pointless/file.flow', with season folders under '.../Pointless/Season [#]'
  2. When 'file.flow' is found, scan the subfolders of the folder that 'file.flow' was found in for media files (video, audio, etc.) and feed those into a video flow. If the file is not found, ignore that folder.
  3. (Optional) Parse the folder name to exclude the Season folder with the highest number after it, so that the current season stays at maximum quality.
  4. Run the video flow on the video files I have selected, to re-encode them to 720p h265.
  5. (Optional) Notify Plex/Sonarr/Radarr that the file has changed so that it can be re-indexed and analyzed.
  6. (Optional) Write the log from the folder that was processed to '.../Pointless/file.flow'

This would save me from having to create a library for each TV show I want managed by FileFlows, and having to maintain those folders if/when things get moved around.

 

I think I have a rough idea of how it should work, but am either missing something or am thinking beyond what FileFlows can do.

 

I'm also curious about the volume normalization, how does that work?

 

This is an awesome application and I'm looking forward to using it. I use something similar called LaserFiche Forms/Workflow at work for document management, and it's great.

  • Author

1/2.  Theres no current way to look if a file exists from a flow.  I could expose this to the function node though.
3.  Similar thing, no current way to look for other folders.  I could also expose this somehow.  
5. no current way to notify sonarr/plex/radarr directly.  plugins could be written to do this but its not high on my priority list.   plex would be higher, and i have considered it, I just have been busy with more important features atm.   I have briefly looked at the Plex API didnt see how to notify plex of a single file change, only to rescan an entire library.   I need mroe time to investigate this further.   I was going to add a simple node that just used the x-token until I came up with a better solution.

i suggest using fileflows as a man in the middle between a download client and sonarr/radarr.   have a download client download to say /mnt/user/downloads/complete have file flows watch that folder and a move action to /mnt/user/downloads/converted.  then have /mnt/user/download/complete mapped in sonarr/radarr to /mnt/user/downloads/converted.    then sonarr/radarr will get the files after processing, and move it into your library which can then notify plex of the new file.


I would suggest shifting all this looking for file stuff though into the flow itself.  using a function node you could look at the name of the file to determine what you should do with it.  eg if(Variables.file.fullName.toLower().contains('8 out of 10 cats') return 2; // panel show

 

most of this stuff would be best for the function node since its pretty specific / non generic stuff.  the function node lets you run custom javascript during the flow and exposes some helper objects.

 

Audio normalization just uses ffmpeg (all the video nodes use ffmpeg), and uses the loudnorm filter to normalize it.  I'm not an expert on this, I found how to do this online and just created a node to do it.  Seems to have good results.  All my tv shows I ran through a two pass normalization.   Movies I don't do this too

Edited by reven

Hi, I am trying to get FileFlows working on Unraid with an Intel GPU.

Added --device /dev/dri:/dev/dri to the docker parameters but it still fails with the following error :

 

Quote

 

[AVHWDeviceContext @ 0x55702aebbe00] Failed to initialise VAAPI connection: 1 (operation failed).

[hevc_qsv @ 0x55702aeb7540] Failed to create a VAAPI device.

 

 

Is there anything I am missing?

 

Cheers,

Christophe.

  • Author
8 hours ago, cpecquerie said:

Hi, I am trying to get FileFlows working on Unraid with an Intel GPU.

Added --device /dev/dri:/dev/dri to the docker parameters but it still fails with the following error :

 

 

Is there anything I am missing?

 

Cheers,

Christophe.

Sorry, I'll be of little help here.   I don't have any intel gpus to test and ive never used one, so not sure the parameters needed for the docker container.

The ffmpeg I use is the same one as tdarr, jellyfin 4.3 version.  So if you can find out the parameters needed for tdarr it would likely be the same for FileFlows.

23 hours ago, cpecquerie said:

Hi, I am trying to get FileFlows working on Unraid with an Intel GPU.

Added --device /dev/dri:/dev/dri to the docker parameters but it still fails with the following error :

 

 

Is there anything I am missing?

 

Cheers,

Christophe.

Try using only "--device=/dev/dri" in extra parameters. That's definitely working for me.

 

Do you have the iGPU working in any other docker container?

 

Edited by Spooky83

Thanks for your answers ! I've got iGPU working with Plex so it's strange. I just tried adding "--device=/dev/dri" in extra parameters and it still fails.

I will look into tdarr

  • Author

trying encoding in "H265 Automatic" and "h264 Automatic".  see what ffmpeg commands they produce.

  • Author
1 hour ago, cpecquerie said:

thanks @reven : I've found out why : I have a 4th ben Intel CPU which does not support hevc encoding according to ffmpeg https://trac.ffmpeg.org/wiki/Hardware/QuickSync

lol.  my newest intel cpu is also 4th gen :)  theyre just simply too old.

  • 1 month later...

Has anybody figured out a way to guide a flow based on file age?

For example, I'd like to compress files older than 60 days for archival

 

I'm sure it's possible with a function block (it seems to have file.modified?) but I'm not sure where to start with that.

 

Currently I only use Fileflows to automatically sort audio tracks and add a stereo track if one was missing.

Any ideas why the internal node is ignoring the schedule I've set for it?

I assume I make the hours I want the node to function purple, and the rest is when it sleeps? If so, as I say, its ignoring the schedule I set.

  • Author
On 3/29/2022 at 11:54 AM, Faceman said:

Has anybody figured out a way to guide a flow based on file age?

For example, I'd like to compress files older than 60 days for archival

 

I'm sure it's possible with a function block (it seems to have file.modified?) but I'm not sure where to start with that.

 

Currently I only use Fileflows to automatically sort audio tracks and add a stereo track if one was missing.

This isnt the best place for support, discord is quickest, then github.   I rarely check here tbh.

 

So you can achieve this by using a "Function" node.   with the following code

let diff = new Date() - Variables.file.Modified;
let days = Math.floor(diff / (24 * 60 * 60 * 1000));
Logger.ILog("Days old: " + days);
return days < 60 ? 1 : 2;

image.thumb.png.0d5ebf2f453b7a899bd29017fabd9b34.png
Where output 1 will be less than 60 days old, output 2 is greater than 60 days

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.