Virt-Manager, Intel-GPU-Tools and more Dockers


dee31797

Recommended Posts

8 minutes ago, geekypenguin said:

Sadly it is a file issue.  

 

Conversions using software are fine, but Nvidia processed ones are out of sync for some reason 

For nvidia processed ones there could be a problem with the nvidia script, send me the postprocess log and I'll check it out.

Link to comment
6 minutes ago, dee31797 said:

For nvidia processed ones there could be a problem with the nvidia script, send me the postprocess log and I'll check it out.

Thanks. 

Ive attached two log files, for the same source file. The one timestamped 1418 is the "software" encoded one which works fine, and the one from 1458 is the one using the nvidia script, which has the sync issue

postProcess.07-08-2019-1458.log postProcess.07-08-2019-1418.log

Link to comment
10 minutes ago, mihcox said:

No, i didnt. i have been on software since install this weekend. 

mihcox, I pushed an updated image to see if it fixes it. 

 

If you don't mind please try it out:

Please delete the failed_conversions file in your appdata /recordings-converter/ folder, and then do a update to the container (Unraid docker tab, advanced view, force update).   Send any new postprocess logs.

 

Thanks for helping me improve the docker container!

Link to comment
26 minutes ago, dee31797 said:

mihcox, I pushed an updated image to see if it fixes it. 

 

If you don't mind please try it out:

Please delete the failed_conversions file in your appdata /recordings-converter/ folder, and then do a update to the container (Unraid docker tab, advanced view, force update).   Send any new postprocess logs.

 

Thanks for helping me improve the docker container!

 

Seems to be working, after a force install and reboot a .mp4 file is being filled up. Another question i have, i record most of my tv shows to a different location and was doing this as a test. Does it work recursively, EX.

 

i point the share it "watches" to: /usr/mnt/Media

 

I have .ts files in /usr/mnt/Media/TV/Adult

and /usr/mnt/Media/TV/Kids

 

Will it find and replace those files in their same folder structure?

ex. /usr/mnt/Media/TV/Adult/Guys Grocery Games/S1E1.TS -> /usr/mnt/Media/TV/Adult/Guys Grocery Games/S1E1.mp4

Link to comment
15 minutes ago, geekypenguin said:

Thanks. 

Ive attached two log files, for the same source file. The one timestamped 1418 is the "software" encoded one which works fine, and the one from 1458 is the one using the nvidia script, which has the sync issue

postProcess.07-08-2019-1458.log 16.98 kB · 0 downloads postProcess.07-08-2019-1418.log 480.73 kB · 0 downloads

I believe the sync issue is with the audio codec being aac_latm, I found other people on the web describing the same issue.  None of the channels I have from my provider come like that so I'd never run into this problem before.

 

I'm going to test an updated ffmpeg version and get back to you.  Thanks for sharing all the info.  It will definitely help me make the setup better!

Link to comment
2 minutes ago, dee31797 said:

I believe the sync issue is with the audio codec being aac_latm, I found other people on the web describing the same issue.  None of the channels I have from my provider come like that so I'd never run into this problem before.

 

I'm going to test an updated ffmpeg version and get back to you.  Thanks for sharing all the info.  It will definitely help me make the setup better!

Youre welcome, thanks for making an awesome docker and for being so proactive about tweaking it.

I'll keep an eye out for an update and give it another try, but ill stick with the software option for now :)

Link to comment
3 minutes ago, mihcox said:

 

Seems to be working, after a force install and reboot a .mp4 file is being filled up. Another question i have, i record most of my tv shows to a different location and was doing this as a test. Does it work recursively, EX.

 

i point the share it "watches" to: /usr/mnt/Media

 

I have .ts files in /usr/mnt/Media/TV/Adult

and /usr/mnt/Media/TV/Kids

 

Will it find and replace those files in their same folder structure?

ex. /usr/mnt/Media/TV/Adult/Guys Grocery Games/S1E1.TS -> /usr/mnt/Media/TV/Adult/Guys Grocery Games/S1E1.mp4

Yes it will convert recursively throughout the sub directories, except hidden folders.  For example Plex records in a .grab folder temporarily.   Also, the new files will be saved in the same folder path the .ts is located. 

 

Thats currently how I use the container. I just leave it running at /mnt/user/videos and anytime a tv show or movie is recorded in a sub directory it finds and converts it.  If you run into any issues with that please let me know.

Link to comment
49 minutes ago, mihcox said:

Thanks, thats great. Ill run a few tests and then point it over myself. 

 

Are there any instructions for implimenting a nvidia GPU in this, or is at as simple as changing the setting in the Docker? 

For nvidia,
change the variable "ENCODER" to nvidia in the settings in the Docker
add --runtime=nvidia to "extra parameters" (switch on advanced view)
Click on Add another Path, Port, Variable, Label or Device and change config type to variable.  
then add in the KEY field NVIDIA_DRIVER_CAPABILITIES and in the VALUE field add "all"
Click on Add another Path, Port, Variable, Label or Device and change config type to variable.  
then add in the KEY field  NVIDIA_VISIBLE_DEVICES and in the VALUE field add your GPU UUID

 

edit: this forum post has visual details on add those settings to a container

 

Edited by dee31797
Link to comment
2 minutes ago, ProphetSe7en said:

I cant get my nvidia gpu to work with Handbrake. It works fine with jellybean and other containers, but not with Handbrake. Any tips on where to start looking for errors?

Hi, please attach your template file here.  It's located at flash\config\plugins\dockerMan\templates-user my-HandBrake.xml

Link to comment

Yes it looks that way. I am trying one more time to see if it uses gpu or only cpu.

 

I noticed that when I choose the Nvidia NVEnc the Extra Options is removed. I was told to use "ref=5:bframes=5" in Extra Options for best quality, so now I am wondering if using GPU will give worse quality since I cant use the Extra Options?

Link to comment
6 minutes ago, ProphetSe7en said:

Yes it looks that way. I am trying one more time to see if it uses gpu or only cpu.

 

I noticed that when I choose the Nvidia NVEnc the Extra Options is removed. I was told to use "ref=5:bframes=5" in Extra Options for best quality, so now I am wondering if using GPU will give worse quality since I cant use the Extra Options? 

There's a lot of debate on the internet about nvenc vs software encoding and video quality.  The consensus I find is that software encoding is better quality, but I personally don't notice much of a difference. 

I don't know what "ref=5" does, but "bframes" is not supported by NVENC for HEVC except for RTX cards.  You can reference which Nvidia cards support B-frames here: https://developer.nvidia.com/video-encode-decode-gpu-support-matrix

 

 

 

Link to comment

@dee31797

 

 

Hi, this container is exactly what I've been looking for!

 

Would it be possible to add the ability to schedule the conversions based on time and/or CPU usage?

 

I generally only watch my recorded shows the next day or later. So if possible, I'd like to schedule the conversions to times of the day when I know my server is not likely to have high CPU usage.

 

Alternatively (or additionally), I could set the container to only run conversions if CPU usage has been less than X% for Y minutes?

 

Thanks for all your work!

Link to comment
2 hours ago, rragu said:

@dee31797

 

 

Hi, this container is exactly what I've been looking for!

 

Would it be possible to add the ability to schedule the conversions based on time and/or CPU usage?

 

I generally only watch my recorded shows the next day or later. So if possible, I'd like to schedule the conversions to times of the day when I know my server is not likely to have high CPU usage.

 

Alternatively (or additionally), I could set the container to only run conversions if CPU usage has been less than X% for Y minutes?

 

Thanks for all your work!

Those options would be really tough to implement in the docker image, but one suggestion is to use the user scripts plugin that allows time scheduled jobs.

 

#!/bin/bash
docker start recordings-converter
sleep 8h
docker stop recordings-converter
exit

That script should start the container at the time you set in user scripts, for example 11 p.m., leave it running for 8 hours or until 7 a.m., then stop the container at that time. Sorry I couldn't be of more help.

Edited by dee31797
Link to comment
6 hours ago, dee31797 said:

Hi, can you post your template xml for intel-gpu-tools and/or handbrake?

 

I did not change anything recently in configs for those two, but they stopped working. Not sure when it happened as I don't use them everyday. Tried removing completely and redownloading but still the same.

 

Well, I think I figured it out.

Recent updates to hassio-supervisor broke something with docker networks.

I have setup the containers with br0 network and custom ip and it works fine...

Sorry for the trouble.

 

my-intel-gpu-tools.xml my-HandBrake.xml

Edited by mihu
Link to comment
3 minutes ago, mihu said:

 

I did not change anything recently in configs for those two, but they stopped working. Not sure when it happened as I don't use them everyday. Tried removing completely and redownloading but still the same.

my-intel-gpu-tools.xml 3.42 kB · 1 download my-HandBrake.xml 15.35 kB · 0 downloads

For Handbrake, you should also ask this over at it's support forum: https://forums.unraid.net/topic/57420-support-djoss-handbrake/

 

I suspect the issue is your container is having issue accessing the /dev/dri/renderD128.  It's usually a permission issue so I suggest start there.  This is probably not proper linux protocol or best security practice, but I change the permissions to 777 when I troubleshoot this on my system.

# show current permissions so you can change it back if you want
ls -la /dev/dri
# change perms
chmod 777 /dev/dri/*

 

Link to comment
2 hours ago, dee31797 said:

For Handbrake, you should also ask this over at it's support forum: https://forums.unraid.net/topic/57420-support-djoss-handbrake/

 

I suspect the issue is your container is having issue accessing the /dev/dri/renderD128.  It's usually a permission issue so I suggest start there.  This is probably not proper linux protocol or best security practice, but I change the permissions to 777 when I troubleshoot this on my system.


# show current permissions so you can change it back if you want
ls -la /dev/dri
# change perms
chmod 777 /dev/dri/*

 

 

This has something to do with some network setting. I tried same setup on my test server and it works fine with all the recent hassio_supervisor changes, so it's not it's fault as i have thought before.

Using IP address like: 192.168.0.7:7800 doesnt work, it returns code 1006.

Using unraid domain name works: somerandomgeneratedtext.unraid.net:7800 works and returns the web ui fine.

It's all weird for me. ;D

Screenshot (8).png

Edited by mihu
added image
Link to comment

I can't get intel-gpu-tools to work, it won't even finish starting properly. It sends a KILL/exit signal and stops itself. Log attached. Any ideas?

 

Edit: Had the wrong value for userid. I mistakenly wrote "root" instead of "0". Changed to 0 and that resolved it.

 

[s6-init] making user provided files available at /var/run/s6/etc...exited 0.
[s6-init] ensuring user provided files have correct perms...exited 0.
[fix-attrs.d] applying ownership & permissions fixes...
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts...
[cont-init.d] 00-app-niceness.sh: executing...
[cont-init.d] 00-app-niceness.sh: exited 0.
[cont-init.d] 00-app-script.sh: executing...
[cont-init.d] 00-app-script.sh: exited 0.
[cont-init.d] 00-app-user-map.sh: executing...
[cont-init.d] 00-app-user-map.sh: exited 0.
[cont-init.d] 00-clean-logmonitor-states.sh: executing...
[cont-init.d] 00-clean-logmonitor-states.sh: exited 0.
[cont-init.d] 00-clean-tmp-dir.sh: executing...
[cont-init.d] 00-clean-tmp-dir.sh: exited 0.
[cont-init.d] 00-set-app-deps.sh: executing...
[cont-init.d] 00-set-app-deps.sh: exited 0.
[cont-init.d] 00-set-home.sh: executing...
[cont-init.d] 00-set-home.sh: exited 0.
[cont-init.d] 00-take-config-ownership.sh: executing...
[cont-init.d] 00-take-config-ownership.sh: exited 0.
[cont-init.d] 00-xdg-runtime-dir.sh: executing...
[cont-init.d] 00-xdg-runtime-dir.sh: exited 0.
[cont-init.d] 10-certs.sh: executing...
[cont-init.d] 10-certs.sh: exited 0.
[cont-init.d] 10-cjk-font.sh: executing...
[cont-init.d] 10-cjk-font.sh: exited 0.
[cont-init.d] 10-nginx.sh: executing...
s6-applyuidgid: usage: s6-applyuidgid [ -z ] [ -u uid ] [ -g gid ] [ -G gidlist ] [ -U ] prog...
[cont-init.d] 10-nginx.sh: exited 100.
[services.d] stopping services
[services.d] stopping s6-fdholderd...
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] syncing disks.
[s6-finish] sending all processes the TERM signal.
[s6-finish] sending all processes the KILL signal and exiting.

 

Edited by scud133b
Link to comment

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...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.