https://www.youtube.com/watch?v=NYiW3aO3l18
Our new single Aeolus's Son is out now, on every platform!
#snatcher #punkrock #rockgarage #newsingle #sisyphus #jazzbass #fendermustang #postpunk #dancepunk #discovermusic #indierock

https://www.youtube.com/watch?v=NYiW3aO3l18
Our new single Aeolus's Son is out now, on every platform!
#snatcher #punkrock #rockgarage #newsingle #sisyphus #jazzbass #fendermustang #postpunk #dancepunk #discovermusic #indierock

So, spent most of the day getting Handbrake compiled with the `svt-av1-psyex` and `svt-av1-essential` forks of the SvtAv1 encoder. However, I did win that battle and both are now available in the `sisyphus-client` containers. Definitely a pain in the ass, but it's nice to have options depending on what you want to use. Also updated the documentation to make sure I don't forget which is which.
I still need to implement some pipelines to build these, but holy crap the Handbrake compiles take forever to finish.
https://git.jamesthebard.net/jweatherly/-/packages/container/sisyphus-client/latest
The madness continues. I'm working on getting Handbrake compiled with support for the SvtAv1 `psyex` fork, and after quite a few attempts and fixing a few patches I have it working. This will end up in the final `sisyphus-client:latest` container assuming the current tests pass. I have something similar I need to do with the `sisyphus-client:latest-essential` container with the `essential` SvtAv1 fork as well, but things are looking good.
After breaking out `strace` and just a ton of other stuff I finally figured out what was going on. A single encoder option was invalid which caused the workers to crash before even writing the file in the data directory. Fixing the setting cleared up the issue and made everything happy.
What caused this rabbithole initially was `av1an` eating itself when trying to put the video and audio stuff together at the end of an encode. Unfortunately the `audio.mkv` file it was trying to mux into the container kept causing `mkvmerge` to fail because the audio file was empty. _This_ was caused by bad audio encoder options being passed to `ffmpeg`.
I made sure I documented both of these and I'm currently running test videos before calling it 100% good.
I think this might be the most frustrating thing I've dealt with: the `av1an` encoder not being able to create files in the client container. Definitely has free space, the user is running in the container as `root` (also does the this as a regular user) but absolutely refuses to run.
The mystery continues.
Time to put the newly rewritten server into action. Broke out my totally stock firmware LG WH16NS60 drive, and started in on some Bluray TV episode sets. Currently ripping at ~9.2X which definitely helps out.
Think I'm gonna target AV1 via `av1an` and use the `svt-av1-psyex` encoder. Already have the subtitles and attachments though I'll have to offset the subs by 1000ms for everything to work out.
I'm done with the server for the time being, got everything working the way I want it to and the performance is where I wanted it to be at before starting some client work.
https://git.jamesthebard.net/jweatherly/sisyphus-server-golang/releases
Almost 600 lines of OpenAPI documentation later and I'm done. I think I'll package the `/doc` endpoint with the Docker images since I can just copy over the static directory and have it live in the container. I'll add directions on how to add the docs to the standalone binaries as well which should cover that use case. Overall, it turned out pretty well.
Documentation continues. Done with the `queue` and `worker` endpoints, probably about 50% of the way done with this. I still need a good way to package all of this up with the binary which means putting the `openapi.yaml` file somewhere on the net so it can be pulled if need be. I'll deal with that later...lol