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


dee31797

Recommended Posts

3 minutes ago, itimpi said:

The correct forum will be the one you get by clicking on the containers icon in the Dockers tab to get the context sensitive menu and selecting the Support option.

Well then I am in the right place.

 

3 minutes ago, dee31797 said:

Follow the instructions here:

 

 

Yes. I have Unraid nVidia installed.  Thanks.  Was using the card with Plex and decided to use it with handbrake since it now supports nVidia gpu. 

Link to comment
Just now, eds said:

Well then I am in the right place.

 

Yes. I have Unraid nVidia installed.  Thanks.  Was using the card with Plex and decided to use it with handbrake since it now supports nVidia gpu.  

Not only the instructions for installing the nvidia plugin, but setting the UUID as well.  The Handbrake template already includes the runtime and "NVIDIA_VISIBLE_DEVICES" so just ensure you haven't adjusted those. 

Link to comment
Just now, dee31797 said:

Not only the instructions for installing the nvidia plugin, but setting the UUID as well.  The Handbrake template already includes the runtime and "NVIDIA_VISIBLE_DEVICES" so just ensure you haven't adjusted those. 

I did.   I added the UUID and when first installed the docker worked.   I did a test and noticed it was not using nVidia.  Stopped the docker, checked my settings , tried to start the docker again and it would register failed. 

 

It does not like the GPU UUID# from the nVidia page I am giving it.   Not sure why. 

Link to comment
Just now, eds said:

I did.   I added the UUID and when first installed the docker worked.   I did a test and noticed it was not using nVidia.  Stopped the docker, checked my settings , tried to start the docker again and it would register failed. 

 

It does not like the GPU UUID# from the nVidia page I am giving it.   Not sure why. 

When you say " I did a test and noticed it was not using nVidia" what do you mean? You have to select the nvidia codec in order for it to use the Nvidia GPU.

 

handbrake-nvenc-encoder.jpg

Link to comment
1 minute ago, dee31797 said:

When you say " I did a test and noticed it was not using nVidia" what do you mean? You have to select the nvidia codec in order for it to use the Nvidia GPU.

 

handbrake-nvenc-encoder.jpg

Interesting.  Did not see that.   

The test I did was use "watch nvidia-smi" while transcoding.

I can't get the docker started anymore anyway. 

Again, will not accept UUID. 

Link to comment

Please navigate to flash\config\plugins\dockerMan\templates-user

and then post your my-handbrake.xml here or direct message me.

1 minute ago, eds said:

Interesting.  Did not see that.   

The test I did was use "watch nvidia-smi" while transcoding.

I can't get the docker started anymore anyway. 

Again, will not accept UUID. 

 

Link to comment
Just now, eds said:

I'm not seeing this directory.

My apologies, when navigating using windows share it shows up as "flash" but it won't show up if you aren't sharing the flash.

A different way:

ssh or access the unraid CLI

cat  /boot/config/plugins/dockerMan/templates-user/my-HandBrake.xml

copy paste that text here.  Keep in mind "my-HandBrake" is the name you gave the docker , case sensitive.

Link to comment
7 minutes ago, dee31797 said:

My apologies, when navigating using windows share it shows up as "flash" but it won't show up if you aren't sharing the flash.

A different way:

ssh or access the unraid CLI

cat  /boot/config/plugins/dockerMan/templates-user/my-HandBrake.xml

copy paste that text here.  Keep in mind "my-HandBrake" is the name you gave the docker , case sensitive.

Ok.  Here it is:

 

<?xml version="1.0"?>
<Container version="2">
  <Name>HandBrake</Name>
  <Repository>djaydev/handbrake</Repository>
  <Registry>https://hub.docker.com/r/djaydev/handbrake/</Registry>
  <Network>bridge</Network>
  <MyIP/>
  <Shell>sh</Shell>
  <Privileged>false</Privileged>
  <Support>https://forums.unraid.net/topic/77603-virt-manager-intel-gpu-tools-and-more-dockers/</Support>
  <Project>https://handbrake.fr/</Project>
  <Overview>
        Handbrake with Nvidia NVENC access. Requires compatible GPU and Nvidia Unraid plugin installed. No QuickSync support.
        [br][br]
    HandBrake is a tool for converting video from nearly any format to a selection of modern, widely supported codecs.
    [br][br]
    The GUI of the application is accessed through a modern web browser (no installation or configuration needed on client side) or via any VNC client.
    A fully automated mode is also available: drop files into a watch folder and let HandBrake process them without any user interaction.
    [br][br][span][/span]
    For a complete documentation of this container, see
    [a href="https://github.com/jlesage/docker-handbrake/blob/master/README.md"]
    https://github.com/jlesage/docker-handbrake/blob/master/README.md[/a].
    [br][br]
    [span style='color: red;']NOTE:[/span] For the container to have
access to your optical drive(s), you need to allow access to the proper
device (usually /dev/sr0) by adding the parameter
--device DEV in the Extra Parameters field (shown when
Advanced View is enabled). For example, if your optical drive is at
/dev/sr0, you need to add --device /dev/sr0.
  </Overview>
  <Category>MediaApp:Video</Category>
  <WebUI>http://[IP]:[PORT:5800]</WebUI>
  <TemplateURL>https://raw.githubusercontent.com/djaydev/docker-virt-manager/master/UnRaid/template/handbrake.xml</TemplateURL>
  <Icon>https://raw.githubusercontent.com/jlesage/docker-templates/master/jlesage/images/handbrake-icon.png</Icon>
  <ExtraParams>--runtime=nvidia</ExtraParams>
  <PostArgs/>
  <CPUset>20,21,22,23,44,45,46,47</CPUset>
  <DateInstalled>1560134125</DateInstalled>
  <DonateText/>
  <DonateLink/>
  <Description>&#xD;
        Handbrake with Nvidia NVENC access. Requires compatible GPU and Nvidia Unraid plugin installed. No QuickSync support.&#xD;
        [br][br]&#xD;
    HandBrake is a tool for converting video from nearly any format to a selection of modern, widely supported codecs.&#xD;
    [br][br]&#xD;
    The GUI of the application is accessed through a modern web browser (no installation or configuration needed on client side) or via any VNC client.&#xD;
    A fully automated mode is also available: drop files into a watch folder and let HandBrake process them without any user interaction.&#xD;
    [br][br][span][/span]&#xD;
    For a complete documentation of this container, see&#xD;
    [a href="https://github.com/jlesage/docker-handbrake/blob/master/README.md"]&#xD;
    https://github.com/jlesage/docker-handbrake/blob/master/README.md[/a].&#xD;
    [br][br]&#xD;
    [span style='color: red;']NOTE:[/span] For the container to have&#xD;
access to your optical drive(s), you need to allow access to the proper&#xD;
device (usually /dev/sr0) by adding the parameter&#xD;
--device DEV in the Extra Parameters field (shown when&#xD;
Advanced View is enabled). For example, if your optical drive is at&#xD;
/dev/sr0, you need to add --device /dev/sr0.&#xD;
  </Description>
  <Networking>
    <Mode>bridge</Mode>
    <Publish>
      <Port>
        <HostPort>7803</HostPort>
        <ContainerPort>5800</ContainerPort>
        <Protocol>tcp</Protocol>
      </Port>
      <Port>
        <HostPort>7903</HostPort>
        <ContainerPort>5900</ContainerPort>
        <Protocol>tcp</Protocol>
      </Port>
    </Publish>
  </Networking>
  <Data>
    <Volume>
      <HostDir>/mnt/user/Multimedia/</HostDir>
      <ContainerDir>/storage</ContainerDir>
      <Mode>ro</Mode>
    </Volume>
    <Volume>
      <HostDir>/mnt/user/transcode/</HostDir>
      <ContainerDir>/watch</ContainerDir>
      <Mode>rw</Mode>
    </Volume>
    <Volume>
      <HostDir>/mnt/user/Multimedia/ConvertedVideos</HostDir>
      <ContainerDir>/output</ContainerDir>
      <Mode>rw</Mode>
    </Volume>
    <Volume>
      <HostDir>/mnt/user/appdata/HandBrake</HostDir>
      <ContainerDir>/config</ContainerDir>
      <Mode>rw</Mode>
    </Volume>
  </Data>
  <Environment>
    <Variable>
      <Value>all</Value>
      <Name>NVIDIA_DRIVER_CAPABILITIES</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>GPU-7640c227-e710-985a-c836-e49421ad19a5 </Value>
      <Name>NVIDIA_VISIBLE_DEVICES</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>Very Fast 1080p30</Value>
      <Name>AUTOMATED_CONVERSION_PRESET</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>mp4</Value>
      <Name>AUTOMATED_CONVERSION_FORMAT</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>1</Value>
      <Name>AUTOMATED_CONVERSION_KEEP_SOURCE</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>/output</Value>
      <Name>AUTOMATED_CONVERSION_OUTPUT_DIR</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value/>
      <Name>AUTOMATED_CONVERSION_OUTPUT_SUBDIR</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>99</Value>
      <Name>USER_ID</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>100</Value>
      <Name>GROUP_ID</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>000</Value>
      <Name>UMASK</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value/>
      <Name>APP_NICENESS</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>1280</Value>
      <Name>DISPLAY_WIDTH</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>768</Value>
      <Name>DISPLAY_HEIGHT</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>0</Value>
      <Name>SECURE_CONNECTION</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value/>
      <Name>X11VNC_EXTRA_OPTS</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>5</Value>
      <Name>AUTOMATED_CONVERSION_SOURCE_STABLE_TIME</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>10</Value>
      <Name>AUTOMATED_CONVERSION_SOURCE_MIN_DURATION</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>5</Value>
      <Name>AUTOMATED_CONVERSION_CHECK_INTERVAL</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>5</Value>
      <Name>AUTOMATED_CONVERSION_MAX_WATCH_FOLDERS</Name>
      <Mode/>
    </Variable>
    <Variable>
      <Value>0</Value>
      <Name>AUTOMATED_CONVERSION_NO_GUI_PROGRESS</Name>
      <Mode/>
    </Variable>
  </Environment>
  <Labels/>
  <Config Name="Storage" Target="/storage" Default="/mnt/user" Mode="ro" Description="This location contains files from your host that need to be accessible by the application.&amp;lt;br&amp;gt;Container path: /storage" Type="Path" Display="always-hide" Required="true" Mask="false">/mnt/user/Multimedia/</Config>
  <Config Name="Watch Directory" Target="/watch" Default="" Mode="rw" Description="This is the watch folder of the automatic video converter.  Any video copied into this folder will be automatically converted by HandBrake.&amp;lt;br&amp;gt;Container path: /watch" Type="Path" Display="always" Required="false" Mask="false">/mnt/user/transcode/</Config>
  <Config Name="Output Directory" Target="/output" Default="" Mode="rw" Description="This is the default output folder for converted videos.  Also used by the automatic video converter.&amp;lt;br&amp;gt;Container path: /output" Type="Path" Display="always" Required="true" Mask="false">/mnt/user/Multimedia/ConvertedVideos</Config>
  <Config Name="Host Key 6" Target="NVIDIA_DRIVER_CAPABILITIES" Default="" Mode="" Description="Container Variable: NVIDIA_DRIVER_CAPABILITIES" Type="Variable" Display="always" Required="false" Mask="false">all</Config>
  <Config Name="Host Key 7" Target="NVIDIA_VISIBLE_DEVICES" Default="" Mode="" Description="GPU UUID retrieved from Nvidia plugin settings" Type="Variable" Display="always" Required="false" Mask="false">GPU-7640c227-e710-985a-c836-e49421ad19a5 </Config>
  <Config Name="Automatic Video Converter: Preset" Target="AUTOMATED_CONVERSION_PRESET" Default="Very Fast 1080p30" Mode="" Description="Preset used by the automatic video converter.  Name of all available presets can be seen via the HandBrake GUI." Type="Variable" Display="always" Required="false" Mask="false">Very Fast 1080p30</Config>
  <Config Name="Automatic Video Converter: Format" Target="AUTOMATED_CONVERSION_FORMAT" Default="mp4" Mode="" Description="Video container format used by the automatic video converter for output files.  This is typically the video filename extension." Type="Variable" Display="always" Required="false" Mask="false">mp4</Config>
  <Config Name="Automatic Video Converter: Keep Source Files" Target="AUTOMATED_CONVERSION_KEEP_SOURCE" Default="1" Mode="" Description="Set to 0 to remove successfully converted videos from the watch folder, 1 to keep them." Type="Variable" Display="always" Required="false" Mask="false">1</Config>
  <Config Name="Automatic Video Converter: Output directory" Target="AUTOMATED_CONVERSION_OUTPUT_DIR" Default="/output" Mode="" Description="Root directory where converted videos should be written." Type="Variable" Display="always" Required="false" Mask="false">/output</Config>
  <Config Name="Automatic Video Converter: Output Subdirectory" Target="AUTOMATED_CONVERSION_OUTPUT_SUBDIR" Default="" Mode="" Description="Subdirectory of the output folder into which converted videos should be written.&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Leave value empty to save converted videos directly into &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;/output/&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Use the special value &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;SAME_AS_SRC&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; to use the same subfolder as the source.  For example, if the video source file is &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;/watch/Movies/mymovie.mkv&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;, the converted video will be written to &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;/output/Movies/&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;.&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;Use any subfolder name.  For example, setting the value &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;Home/Movies&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; will make converted videos written to &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;/output/Home/Movies&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt;/&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;" Type="Variable" Display="always" Required="false" Mask="false"/>
  <Config Name="Config Directory" Target="/config" Default="/mnt/user/appdata/handbrake" Mode="rw" Description="This is where the application stores its configuration, log and any files needing persistency.&amp;lt;br&amp;gt;Container path: /config" Type="Path" Display="advanced-hide" Required="true" Mask="false">/mnt/user/appdata/HandBrake</Config>
  <Config Name="User ID" Target="USER_ID" Default="99" Mode="" Description="ID of the user the application runs as." Type="Variable" Display="advanced-hide" Required="true" Mask="false">99</Config>
  <Config Name="Group ID" Target="GROUP_ID" Default="100" Mode="" Description="ID of the group the application runs as." Type="Variable" Display="advanced-hide" Required="true" Mask="false">100</Config>
  <Config Name="Umask" Target="UMASK" Default="000" Mode="" Description="Mask that controls how file permissions are set for newly created files. The value of the mask is in octal notation." Type="Variable" Display="advanced" Required="false" Mask="false">000</Config>
  <Config Name="Niceness (priority)" Target="APP_NICENESS" Default="" Mode="" Description="Priority at which the application should run.  A niceness value of -20 is the highest priority and 19 is the lowest priority.&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;NOTE:&amp;lt;/b&amp;gt; Setting a negative value requires additional permissions.  Thus, &amp;lt;i&amp;gt;&amp;lt;b&amp;gt;--cap-add=SYS_NICE&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt; must be added in &amp;lt;i&amp;gt;Extra Parameters&amp;lt;/i&amp;gt; (shown when &amp;lt;i&amp;gt;Advanced View&amp;lt;/i&amp;gt; is enabled)." Type="Variable" Display="advanced" Required="false" Mask="false"/>
  <Config Name="Display Width" Target="DISPLAY_WIDTH" Default="1280" Mode="" Description="Width (in pixels) of the application's window." Type="Variable" Display="advanced" Required="false" Mask="false">1280</Config>
  <Config Name="Display Height" Target="DISPLAY_HEIGHT" Default="768" Mode="" Description="Height (in pixels) of the application's window." Type="Variable" Display="advanced" Required="false" Mask="false">768</Config>
  <Config Name="Secure Connection" Target="SECURE_CONNECTION" Default="0" Mode="" Description="Whether or not an encrypted connection should be used to access the application's GUI.  Set to &amp;lt;i&amp;gt;&amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt; to encrypt the connection.&amp;lt;br&amp;gt;&amp;lt;span style='color: red;'&amp;gt;&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; When enabling the secure connection, security parameters needs to be generated.  This &amp;lt;b&amp;gt;one-time&amp;lt;/b&amp;gt; operation is done during container startup.  Depending on your system, this could take a few minutes.  GUI of the application won't be available until the operation completes." Type="Variable" Display="advanced" Required="false" Mask="false">0</Config>
  <Config Name="Extra x11vnc Options" Target="X11VNC_EXTRA_OPTS" Default="" Mode="" Description="Extra options to pass to the x11vnc server running in the Docker container.&amp;lt;br&amp;gt;&amp;lt;span style='color: red;'&amp;gt;&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt; For advanced users. Do not use unless you know what you are doing." Type="Variable" Display="advanced" Required="false" Mask="false"/>
  <Config Name="Automatic Video Converter: Source File Stable Time" Target="AUTOMATED_CONVERSION_SOURCE_STABLE_TIME" Default="5" Mode="" Description="Time (in seconds) during which properties (e.g. size, time, etc) of a video file in the watch folder need to remain the same.  This is to avoid processing a file that is being copied." Type="Variable" Display="advanced" Required="false" Mask="false">5</Config>
  <Config Name="Automatic Video Converter: Minimum Title Duration" Target="AUTOMATED_CONVERSION_SOURCE_MIN_DURATION" Default="10" Mode="" Description="Minimum title duration (in seconds).  Shorter titles will be ignored.  This applies only to video disc sources (ISO file, &amp;lt;i&amp;gt;VIDEO_TS&amp;lt;/i&amp;gt; folder or &amp;lt;i&amp;gt;BDMV&amp;lt;/i&amp;gt; folder)." Type="Variable" Display="advanced" Required="false" Mask="false">10</Config>
  <Config Name="Automatic Video Converter: Check Interval" Target="AUTOMATED_CONVERSION_CHECK_INTERVAL" Default="5" Mode="" Description="Interval (in seconds) at which the automatic video converter checks for new files." Type="Variable" Display="advanced" Required="false" Mask="false">5</Config>
  <Config Name="Automatic Video Converter: Number of Watch Folders" Target="AUTOMATED_CONVERSION_MAX_WATCH_FOLDERS" Default="5" Mode="" Description="Maximum number of watch folders handled by the automatic video converter." Type="Variable" Display="advanced" Required="false" Mask="false">5</Config>
  <Config Name="Automatic Video Converter: Disable Progress in GUI" Target="AUTOMATED_CONVERSION_NO_GUI_PROGRESS" Default="0" Mode="" Description="Set to 1 to disable display of the video conversion progress in HandBrake GUI." Type="Variable" Display="advanced" Required="false" Mask="false">0</Config>
  <Config Name="WEB Port for GUI" Target="5800" Default="7803" Mode="tcp" Description="Port used to access the application's GUI via the web interface." Type="Port" Display="advanced-hide" Required="true" Mask="false">7803</Config>
  <Config Name="VNC Port for GUI" Target="5900" Default="7903" Mode="tcp" Description="Port used to access the application's GUI via the VNC protocol.  Optional if no VNC client is used." Type="Port" Display="advanced-hide" Required="false" Mask="false">7903</Config>
</Container>

Link to comment
6 minutes ago, eds said:

Ok.  Here it is: 

Your UUID entry has a space, return, or some invisible string on the end.

delete and readd:

Switch the handbrake docker template to advanced mode in the unraid GUI

Click remove next to the UUID

Click on Add another Path, Port, Variable, Label or Device and change config type to variable.  then add in the KEY field

add to KEY field NVIDIA_VISIBLE_DEVICES

add to the value field your UUID but ensure you only copy and paste the text only, or type it in manually.

click save, it should start up

Link to comment
1 hour ago, dee31797 said:

Your UUID entry has a space, return, or some invisible string on the end.

delete and readd:

Switch the handbrake docker template to advanced mode in the unraid GUI

Click remove next to the UUID

Click on Add another Path, Port, Variable, Label or Device and change config type to variable.  then add in the KEY field

add to KEY field NVIDIA_VISIBLE_DEVICES

add to the value field your UUID but ensure you only copy and paste the text only, or type it in manually.

click save, it should start up

Cannot believe I missed that.  

I'd been so focused on space at the head of the UUID, but you're right. 

Removed the errant space at the end and it booted right up. 

Thanks.

Link to comment
On 6/8/2019 at 1:59 AM, ptr727 said:

Hi, I am trying to take snapshots of my VM's, but I get an error: "Snapshots of a pflash based firmware is not supported".

 

From google it looks like this may be because of UEFI based firmware:

https://www.redhat.com/archives/virt-tools-list/2017-September/msg00008.html

 

Any ideas how to get snapshots working, even if using UEFI?

2019-06-05 (2).png

I couldn't find a way to do it with libvert either, which is a pity.

 

While it requires using the command line, I think (someone please correct me if I'm wrong) that the only way to it is with btfrs snapshots. It means the file system needs to be btfrs also though, typically your cache is formatted as such.

 

See:

 

Link to comment
  • 2 weeks later...

Handbrake with HW encoding support? *THANK YOU* just set it up, while my 8 core 16 thread server went to 60% CPU usage and my 1060GTX jumped to 11%, it was encoding at 600+ FPS.

thinking the CPU was high and maybe not using the NVIDIA card, i tried a non NVEC codec.. 200 FPS and 100% CPU jumping the server to 75 degrees C within seconds..

yep, she uses a bit of CPU, but not anywhere near as much as CPU only encoding!

Link to comment
4 hours ago, radfx said:

Handbrake with HW encoding support? *THANK YOU* just set it up, while my 8 core 16 thread server went to 60% CPU usage and my 1060GTX jumped to 11%, it was encoding at 600+ FPS.

thinking the CPU was high and maybe not using the NVIDIA card, i tried a non NVEC codec.. 200 FPS and 100% CPU jumping the server to 75 degrees C within seconds..

yep, she uses a bit of CPU, but not anywhere near as much as CPU only encoding!

The CPU load you saw is from Handbrake using software decoding.  Handbrake only uses the GPU for encoding.

If you want to experience Nvidia hardware decoding and encoding you can try ffmpeg directly:

docker run --rm --runtime=nvidia -v "/unraid/videos:/input:rw" -e 'NVIDIA_DRIVER_CAPABILITIES'='all' -e 'NVIDIA_VISIBLE_DEVICES'='GPU-UUID-from-nvidia-pluginXXXX' djaydev/ffmpeg-ccextractor \
ffmpeg -hwaccel nvdec -i "/input/oldvideo.ts" -c:v hevc_nvenc -c:a copy "/input/newvideo.mp4"

Running that from Unraid's command line, and changing the "/videos/test" to the folder where your video for transcoding resides should produce a new mp4 with much less CPU load.

 

Using ffmpeg directly can get annoying when trying to control the file size, video quality, deinterlacing etc., which is what makes Handbrake so awesome popular (Handbrake uses ffmpeg). 

  • Like 1
Link to comment
The CPU load you saw is from Handbrake using software decoding.  Handbrake only uses the GPU for encoding.
If you want to experience Nvidia hardware decoding and encoding you can try ffmpeg directly:
docker run --rm --runtime=nvidia -v "/unraid/videos:/input:rw" -e 'NVIDIA_DRIVER_CAPABILITIES'='all' -e 'NVIDIA_VISIBLE_DEVICES'='GPU-UUID-from-nvidia-pluginXXXX' djaydev/ffmpeg-ccextractor \ffmpeg -hwaccel nvdec -i "/input/oldvideo.ts" -c:v hevc_nvenc -c:a copy "/input/newvideo.mp4"

Running that from Unraid's command line, and changing the "/videos/test" to the folder where your video for transcoding resides should produce a new mp4 with much less CPU load.
 
Using ffmpeg directly can get annoying when trying to control the file size, video quality, deinterlacing etc., which is what makes Handbrake so awesome popular (Handbrake uses ffmpeg). 


Ahh that makes sense!
Yeah handbrake is awesome but the videos I have been encoding have been double the size so there are some tweaks I need to sort out, thanks for the tips with FFmpeg


Sent from my iPhone using Tapatalk
Link to comment
13 hours ago, radfx said:


Ahh that makes sense!
Yeah handbrake is awesome but the videos I have been encoding have been double the size so there are some tweaks I need to sort out, thanks for the tips with FFmpeg


Sent from my iPhone using Tapatalk

A recommendation for better file sizes:

In Handbrake GUI video tab select Video Encoder H.265 NVenc, Profile main, and Level 5.0.

Lastly, The slider to the right of Video Encoder set to CQ: 23.

 

With hardware encoding you lose a bit of quality, so if those settings don't look good to you in the new video, slide CQ:22 and on down until you're happy with the quality.

  • Like 2
Link to comment
A recommendation for better file sizes:
In Handbrake GUI video tab select Video Encoder H.265 NVenc, Profile main, and Level 5.0.
Lastly, The slider to the right of Video Encoder set to CQ: 23.
 
With hardware encoding you lose a bit of quality, so if those settings don't look good to you in the new video, slide CQ:22 and on down until you're happy with the quality.


Will give these settings a try, thank you!


Sent from my iPhone using Tapatalk
Link to comment
  • 2 weeks later...

Hey i was trying to install this docker but im getting this error.

Command:root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='HandBrake' --net='bridge' -e TZ="Asia/Calcutta" -e HOST_OS="Unraid" -e 'NVIDIA_DRIVER_CAPABILITIES'='all' -e 'NVIDIA_VISIBLE_DEVICES'='GPU-XXXX-XXXX-XXXX-XXXX-XXXX' -e 'AUTOMATED_CONVERSION_PRESET'='Very Fast 1080p30' -e 'AUTOMATED_CONVERSION_FORMAT'='mp4' -e 'AUTOMATED_CONVERSION_KEEP_SOURCE'='1' -e 'AUTOMATED_CONVERSION_OUTPUT_DIR'='/output' -e 'AUTOMATED_CONVERSION_OUTPUT_SUBDIR'='' -e 'USER_ID'='99' -e 'GROUP_ID'='100' -e 'UMASK'='000' -e 'APP_NICENESS'='' -e 'DISPLAY_WIDTH'='1280' -e 'DISPLAY_HEIGHT'='768' -e 'SECURE_CONNECTION'='0' -e 'X11VNC_EXTRA_OPTS'='' -e 'AUTOMATED_CONVERSION_SOURCE_STABLE_TIME'='5' -e 'AUTOMATED_CONVERSION_SOURCE_MIN_DURATION'='10' -e 'AUTOMATED_CONVERSION_CHECK_INTERVAL'='5' -e 'AUTOMATED_CONVERSION_MAX_WATCH_FOLDERS'='5' -e 'AUTOMATED_CONVERSION_NO_GUI_PROGRESS'='0' -p '7803:5800/tcp' -p '7903:5900/tcp' -v '/mnt/user':'/storage':'ro' -v '/mnt/user/Window share/Handbrake/Watch/':'/watch':'rw' -v '/mnt/user/Window share/Handbrake/Output/':'/output':'rw' -v '/mnt/user/appdata/HandBrake':'/config':'rw' --runtime=nvidia 'djaydev/handbrake' 

/usr/bin/docker: Error response from daemon: Unknown runtime specified nvidia.
See '/usr/bin/docker run --help'.

The command failed.

 

Could anyone guide me in the right direction.

Link to comment
15 hours ago, Max said:

Hey i was trying to install this docker but im getting this error.

Command:root@localhost:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='HandBrake' --net='bridge' -e TZ="Asia/Calcutta" -e HOST_OS="Unraid" -e 'NVIDIA_DRIVER_CAPABILITIES'='all' -e 'NVIDIA_VISIBLE_DEVICES'='GPU-XXXX-XXXX-XXXX-XXXX-XXXX' -e 'AUTOMATED_CONVERSION_PRESET'='Very Fast 1080p30' -e 'AUTOMATED_CONVERSION_FORMAT'='mp4' -e 'AUTOMATED_CONVERSION_KEEP_SOURCE'='1' -e 'AUTOMATED_CONVERSION_OUTPUT_DIR'='/output' -e 'AUTOMATED_CONVERSION_OUTPUT_SUBDIR'='' -e 'USER_ID'='99' -e 'GROUP_ID'='100' -e 'UMASK'='000' -e 'APP_NICENESS'='' -e 'DISPLAY_WIDTH'='1280' -e 'DISPLAY_HEIGHT'='768' -e 'SECURE_CONNECTION'='0' -e 'X11VNC_EXTRA_OPTS'='' -e 'AUTOMATED_CONVERSION_SOURCE_STABLE_TIME'='5' -e 'AUTOMATED_CONVERSION_SOURCE_MIN_DURATION'='10' -e 'AUTOMATED_CONVERSION_CHECK_INTERVAL'='5' -e 'AUTOMATED_CONVERSION_MAX_WATCH_FOLDERS'='5' -e 'AUTOMATED_CONVERSION_NO_GUI_PROGRESS'='0' -p '7803:5800/tcp' -p '7903:5900/tcp' -v '/mnt/user':'/storage':'ro' -v '/mnt/user/Window share/Handbrake/Watch/':'/watch':'rw' -v '/mnt/user/Window share/Handbrake/Output/':'/output':'rw' -v '/mnt/user/appdata/HandBrake':'/config':'rw' --runtime=nvidia 'djaydev/handbrake' 

/usr/bin/docker: Error response from daemon: Unknown runtime specified nvidia.
See '/usr/bin/docker run --help'.

The command failed.

 

Could anyone guide me in the right direction.

Did you install nvidia plugin and load the drivers?

 

If not please visit

 

Link to comment
9 hours ago, dee31797 said:

Did you install nvidia plugin and load the drivers?

 

If not please visit

 

you were right my friend actually i thought that i will install the docker, set it up and everything first then whenever i get the time to put my gtx 750 in will just put the card in and write gpu uuid. but it looks like that without loading the drivers and that uuid you can't even install the docker.

but theirs one thing i would like to ask you guys is that some how even on veryfast1080p30 preset, the max speed i can achieve is around 65 fps but doesn't that makes this even slower than even those intel igpu with quick sync. i dont expect much from my old gtx 750 but still i thought it would atleast be on par with intel quicksync.

Link to comment
1 minute ago, Max said:

you were right my friend actually i thought that i will install the docker, set it up and everything first then whenever i get the time to put my gtx 750 in will just put the card in and write gpu uuid. but it looks like that without loading the drivers and that uuid you can't even install the docker.

but theirs one thing i would like to ask you guys is that some how even on veryfast1080p30 preset, the max speed i can achieve is around 65 fps but doesn't that makes this even slower than even those intel igpu with quick sync. i dont expect much from my old gtx 750 but still i thought it would atleast be on par with intel quicksync.

Please visit:

 

Link to comment
4 minutes ago, dee31797 said:

Please visit:

 

ohh don't worry about that i made sure i was using h.264(NVENC) and i even checked through nvidia-smi during encoding, i could see my gpu being used, though it never goes above 35%.

Link to comment
6 minutes ago, Max said:

ohh don't worry about that i made sure i was using h.264(NVENC) and i even checked through nvidia-smi during encoding, i could see my gpu being used, though it never goes above 35%. 

After you've selected NVENC the speed is based on the decode speed of your CPU, encode performance of the GPU, and the quality settings used.  When I change the settings to NVENC, the quality automatically changes to CQ: 15 which is pretty high.  Try lowering to quality to CQ: 23 or so.  If that doesn't help then I believe the bottleneck is one of the first two factors.

Link to comment
22 minutes ago, dee31797 said:

After you've selected NVENC the speed is based on the decode speed of your CPU, encode performance of the GPU, and the quality settings used.  When I change the settings to NVENC, the quality automatically changes to CQ: 15 which is pretty high.  Try lowering to quality to CQ: 23 or so.  If that doesn't help then I believe the bottleneck is one of the first two factors.

yeah thats what i thought but i didn't thought it would be this bad as i used to game on this and my g2020 never bottlenecked my gtx 750 so i thought it should be fine or atlest it wont be this bad.

just tried these same settings with gtx 1070ti on windows on my main rig that can encode at more than 250 fps!! while siting at only 12% usage but even on that machine which has i7 4790k cpu usage still goes above 80% with NVenc.

Looks like its time for cpu upgrade, i just didn't thought that even decode will be so cpu heavy.😅

Link to comment
31 minutes ago, Max said:

yeah thats what i thought but i didn't thought it would be this bad as i used to game on this and my g2020 never bottlenecked my gtx 750 so i thought it should be fine or atlest it wont be this bad. 

just tried these same settings with gtx 1070ti on windows on my main rig that can encode at more than 250 fps!! while siting at only 12% usage but even on that machine which has i7 4790k cpu usage still goes above 80% with NVenc. 

Looks like its time for cpu upgrade, i just didn't thought that even decode will be so cpu heavy.😅

While not as easy as Handbrake, you can decode and encode with your GTX 750 on unraid with ffmpeg.

 

docker run --rm --runtime=nvidia -v "/unraid/your/videos:/input:rw" -e 'NVIDIA_DRIVER_CAPABILITIES'='all' -e 'NVIDIA_VISIBLE_DEVICES'='GPU-UUID-from-nvidia-pluginXXXX' djaydev/ffmpeg-ccextractor \
ffmpeg -hwaccel nvdec -i "/input/oldvideo.ts" -c:v hevc_nvenc -c:a copy "/input/newvideo.mp4"

Edit, I don't know if GTX 750 has nvdec components or not

Edited by dee31797
  • Like 1
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.