My recent ARM experience with Ubuntu 22.04 bare (no Docker) and Handbrake custom profiles - I hope it helps somebody. #960
Replies: 5 comments 14 replies
-
hello, I am interested ! :D did you post the script ? best regards :) |
Beta Was this translation helpful? Give feedback.
-
Let me first be clear that I'm a Docker advocate and love Docker, love the concept and love its implementation. So ARM being implemented in Docker is fine with me. I decided that I'd start with the ubuntu-20.04-install.sh install. The Ubuntu 20.04 drivers for my i7-12700k were already deprecated, so I made the decision to use Ubuntu 22.04 as a base, use those drivers, and then update the ubuntu-20.04-install.sh to work on 22.04. I mean, really, how different would it be? Since Docker was the supported method going forward, I decided I'd use the dockerfile script from the ARM dependencies, the dockerfile from ARM itself, and reconcile the modules being installed in all three scripts into a new ubuntu-22.04-install.sh. As it turned out this was actually very easy and very quick. Copy/past the module and delete the duplicate modules. I also decided I wanted to build Handbrake from source to enable QuickSync support and to provide the GUI. This would also allow me to create custom profiles and use them in ARM (so my original post). I decided to do the same for MakeMKV. I broke those out of the ARM script and put together a small script for each; the Handbrake script was a few cut and pastes from their site, and the MakeMKV script I got from the MakeMKV forums. Both scripts build and install with GUI support. From the ubuntu-quicksync script, I decided to create a script to build and install the Intel Media SDK. I commented out the Handbrake and MakeMKV from the ARM script, and I commented out the Docker and pycharm-community installs (not needed for this implementation). None of the core ARM logic or flow was changed, so there was little to debug. I had an issue with some non-displayable characters that got into the new script, probably during the copy/paste that caused the script to keep aborting for no apparent reason, but once I found what the cause was all was well. I had a little cleanup left related to the udev rules and permissions, but everything looked well. First run has a few glitches, but it complete and ARMui was running and I could actually rip and transcode. I wanted to install this on a second machine, so this was going to be the big test. An install from scratch - install Ubuntu, the GPU drivers, install Handbrake, MakeMKV, Media SDK, and then ARM. All using these few scripts. How did it go? Last night from start to finish it too me two hours and everything was up and running and I ripped and transcoded a blu-ray without having to make any changes. For good measure, this morning I wiped the partition and repeated the whole install - Ubuntu 22.04 from ISO, then updates, then GPU driver install, then Handbrake, then MakeMKV, then MediaSDK, then ARM itself. from start to finish this morning it was 1hr 45min. I kicked off a blu-ray rip and headed to work. I've attached the scripts in a .ZIP file. I don't actually see the attachment. If there's an issue, let me know. Here's the process:
At this point, ARMui is running, udev rulls are active, and you should be able to rip. (pun intended) In my original post, I also documented how to now be able to use custom Handbrake profiles and not have a convoluted HB_ARGs field. Any questions or comments, please feel free. Again, I hope this helps somebody. I found it all useful. |
Beta Was this translation helpful? Give feedback.
-
-->I responded to your comment and the maintainer’s question. I attached the scripts and provided detailed instructions. Take a look and if you have any questions or comments, please feel free!! Thanks and hope this helps.
…--> hello,I am interested ! :D
did you post the script ?best regards :)—
|
Beta Was this translation helpful? Give feedback.
-
Thanks very much for this... I need to update my ARM installation (non-docker) and will give this a go... |
Beta Was this translation helpful? Give feedback.
-
<!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
-->Thanks for the feedback! I’m glad this has proved useful for some. Sent from Mail for Windows From: DaniSent: Sunday, December 31, 2023 9:54 AMTo: automatic-ripping-machine/automatic-ripping-machineCc: DZaremba14600; MentionSubject: Re: [automatic-ripping-machine/automatic-ripping-machine] My recent ARM experience with Ubuntu 22.04 bare (no Docker) and Handbrake custom profiles - I hope it helps somebody. (Discussion #960) Thank you for writing this up and providing your scripts! Worked perfectly for me!—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
I just wanted to share my recent experience with ARM. Hopefully this is of help to others and/or the development folks.
I've been able to get ARM running on Ubuntu 22.04 bare (no Docker) which is more recent than 20.04 and I've also been able to easily access Handbrake GUI custom profiles in real-time (no importing/exporting) from the ARM web interface to allow easy selection between multiple custom profiles as needed.
This post is quite long, but its all summed up in the last 10 lines or so. Hope its a contribution that helps.
I have about 340/350 blu-ray and 4k disks I want to put into JellyFish.
My hardware is two i7-12700k systems with 64 meg. Each has an ASUS 4k blu-ray drive, one SATA attached, one attached via SATA to USB3.
I installed Ubuntu 20.04 onto a partition, ran the docker-setup.sh script for an ARM docker install and all seemed well. The only issue was getting QuickSync working.
I used the ubuntu-quicksync.sh script and got Quicksync to work one time, but it stopped working. I reinstalled everything and could never get it working again. ARM itself worked fine, just not Quicksync.
I wondered if it was my system, so I decided to take a different tack to troubleshoot. I decided to not use docker and run ARM on top of Ubuntu. I know it's not supported but thought I'd give it a try.
I decided to use Ubuntu 22.04 as a base and go from there. Here's how it turned out.
I took the ubuntu-20.04-install.sh, used that as a base. I commented out the MakeMKV and Handbrake installs, I'll handle those later. I took the Dockerfile from ARM dependencies and basically merged the lists of modules and python libraries into ubuntu-20.04-install.sh to form a master list. I ran this merged/modified ubuntu-20.04-install.sh and, aside from some odd, non-displayable characters that terminated the script prematurely (only seen when I edited the .sh in nano and removed them), the script ran fine and ARM was running! Because it had terminated, the rules for the blu-ray disk didn't seem to work correctly. I added them in manually and it worked! Probably an issue with the script terminating. I built and installed Handbrake (with GUI and QuickSync support) and MakeMKV manually from source and Voila! everything was working on a Ubuntu 22.04 base outside of Docker!.
I then decided to do this all over again, this time scripting everything and seeing if it would run to completion without failing.
I created a script to install the appropriate Ubuntu 22.04 Intel graphics driver for the i7-12700K.
I created a script to build and install Handbrake with GUI and Quicksync support from source.
I created a script to build and install MakeMKV from source (actually this script came from the MakeMKV forum).
I created a script to build and install the Intel Media SDK from source.
I double checked the ubuntu-20.04-install.sh (I made sure the ARM user got added to the groups video, render, sudo, root, and arm). This last script requires requirements.txt in the same directory.
Last night I decided I'd run all this again from scratch and make sure it all works and is repeatable.
One Ubuntu install from .ISO, and then run 5 scripts.
I installed Ubuntu 22.04 from .iso onto a clean partition. I updated the system after the initial boot.
I ran the script to install the Intel graphics driver for Ubuntu 22.04.
I ran the script to build and install Handbrake GUI with QuickSync support. (this also installs everything required to build this project from source).
I ran the script to build and install MakeMKV.
I ran the script to build and install the Intel Media SDK.
I ran the script ubuntu-20.04-install.sh to install ARM.
End result - no aborts, no deal breaker errors, no issues. ARM was accessed via the browser and was running fine!!
This now got me thinking - Can I create custom profiles in Handbrake for various configurations and easily access them from ARM?
I sure can!! I go into Handbrake GUI, create a custom profile and save it. I loaded the 'Roku 1080p30 Surround' profile, changed a few settings such as framerate, encoder, output format, RF (constant quality) and the audio passthrough settings, and then saved it as a custom preset named 'Roku 1080p30 Surround Custom'.
To use it in ARM, I set the HB_PRESET to 'Roku 1080p30 Surround Custom' (without the quotes) and set the HB_ARGS_BD to '--preset-import-gui' (again without the quotes) and just that, nothing else, and voila! the custom preset is now used!
By having only --preset-import-gui on the HB_ARGS_BD line, I can change the HB_PRESET to any preset I want, including other custom presets, and be able to use any number of preset settings by changing only the HB_PRESET line. (also, any other command line args used in addition to --preset-import-gui, such as --quality 18.0 will override whatever is in the custom preset, for a quick change). This is great for changing settings between Blu-ray disks and 4K/HDR disks which may require different settings.
You can also do things like process with TRANSCODE FALSE and manually run Handbrake GUI manually with the custom profile on SuperFast to check how certain settings will work or check that audio passthrough is working or that GPU acceleration is working.
How might the developers use this for the Docker image? Well, there is a HandBrake Docker image that allows access to the Handbrake Docker GUI through a browser (https://github.com/jlesage/docker-handbrake). This could probably (?), easily (?) be integrated into the ARM docker image and allow easy access to multiple custom Handbrake profiles from the ARM interface. It could allow more custom settings instead of using the HB_ARGS_BD line which can get clumsy when used with a lot of settings and/or wanting to switch settings for different projects or needs.
So, in conclusion, ARM can now run on Ubuntu 22.04 as a base without docker if anyone wants to, and its a newer version of Ubuntu than 20.04. Also, ARM can have access to multiple custom Handbrake profiles quite easily.
Thanks for listening and I hope this helps somebody down the road.
And thanks for a great project in ARM - Automatic Ripping Machine.
PS - any suggestions on settings in Handbrake for Blu-ray and 4K HDR disks video and audio related to processing 340 or so disks going forward would be most welcome.
Thanks.
David
Beta Was this translation helpful? Give feedback.
All reactions