obelisk_complex
@obelisk_complex@piefed.ca
- Comment on Harmony - Yet Another Discord Alternative 55 minutes ago:
I’m right there with you, bud. I tried StoatChat too, and I got a nice email from the German government about using an outdated version of React with RCE vulnerabilities. I think this must be a very difficult problem to properly solve, given the number of different approaches and how all of them have their own issues to contend with. Nextcloud Talk is the most usable option I’ve found because it does voice, video, and screen sharing and it also has call links you can send for unregistered people to join the calls. But performance is spotty even with the “high performance backend” set up (that may be due to my server being in Germany though 😅).
As to being accused of using AI, don’t let it get to you. The people yelling the loudest can’t tell the difference between handwritten code and AI, because they can’t code. If you pull down your repo, you’ll be depriving people who might be able to use your project because of trolls who never would have tried it in the first place.
I do use AI for coding, and I’ve gotten plenty of hate for it, but also people who don’t care and just want the functionality of the tool I built.
And in fact I’m going to check out your project and see if I can get it up and running, so please don’t take it down. I’ll likely be putting it on my German server so I’ll let you know what the performance is like with extreme round trips 😁
- Comment on Harmony - Yet Another Discord Alternative 1 hour ago:
Would be easier to contribute to XMPP or Matrix IMO.
Synapse is in the middle of a rebuild without much compatibility between the legacy and new builds, and it’s a pain in the dick to set up at the moment. I know, because I did it.
XMPP I haven’t tried to set up yet, but I imagine it to be similarly in-depth.
As to why not contribute: like you said, most likely AI. The maintainers don’t want these contributions; if they did, they’d use the AI themselves. I didn’t get it at first but after some discussion here, and building my own thing, I understand why people feel that way too.
Now… why do the whole thing from scratch instead of forking? Great question. XMPP might just need a nice coat of paint, if it can handle voice and video and screen share; I haven’t come away with great impressions of matrix/synapse.
- Comment on 'Icky and heartbreaking': The $2 per hour worker behind the OnlyFans boom 8 hours ago:
We’ve practically exhausted the Exploration and Expansion phases
The Ocean and Space both called, and they disagree
- Comment on Lutris now being built with Claude AI, developer decides to hide it after backlash 1 day ago:
Yikes. Hadn’t heard about the openclaw use. That stack scares the bejeezus out of me.
- Comment on Lutris now being built with Claude AI, developer decides to hide it after backlash 2 days ago:
Precisely this, yes, well said. We all stand on the shoulders of those who came before us, one way or another.
- Comment on Lutris now being built with Claude AI, developer decides to hide it after backlash 2 days ago:
Because coding is hard work even with AI assistance, and people who don’t code will judge you the loudest and longest and meanest for using AI to make the work easier. I personally suffer rejection sensitivity dysphoria so I understand the emotions behind their actions.
But yeah, everyone just ignores the years of coding work this person did for nothing just to help people enjoy their games, to crucify them for using AI and then having feelings about getting yelled at by the very beneficiaries of their prior work.
It’s not like they’re stripping out or reimplementing contributions and taking the project closed source, like BookLore. People need some damn perspective.
- Comment on yooooo i thought these cabbages were resident evil renders lol 5 days ago:
You got cabbaged! (https://www.youtube.com/watch?v=h8X7S4j_zXA)
- Comment on Claude Code deletes developers' production setup, including its database and snapshots — 2.5 years of records were nuked in an instant 1 week ago:
Sure, but reading the article, I think he might be knowledgeable enough. His mistake seems to have been blindly trusting the keys to the kingdom to an enthusiastic junior dev who’ll be very sorry if they nuke your system, but won’t think to do a damn thing to make sure it doesn’t happen in the first place…
- Comment on Claude Code deletes developers' production setup, including its database and snapshots — 2.5 years of records were nuked in an instant 1 week ago:
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
lol I’ll take that as high praise, as everyone knows the 1990s were the peak of our civilisation!
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
Yeah, I’m getting that; though this isn’t purely AI-generated. This is a working application that I’ve tested, have improved and plan on continuing to improve, and am currently using to transcode my media. There’s a lot more care and thought put into it than most people would expect on reading that it was created with the help of an AI model.
I put the disclaimer because I respect that serious developers who actually go look at the code would like a heads-up that it’s genAI before they waste their time reading it. But, I would like people to at least have a chance to read why I think my approach is different than most.
And, if you have videos to transcode, I’d love to hear what you think if you give it a go! I do actively fix bugs as well as add new features, so please do let me know if you try it and find an issue - I could use all the help testing it I can get ‘cause my hardware to test on is quite limited.
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
I was hoping to catch this before your replied, as I went and read the readme, then it made more sense. So I deleted my reply. But too late!
All good! I’m actually enjoying talking about this thing with people who want to know more so I don’t mind at all _
The cool thing is there isn’t much to put into a command that does stuff like this, unless you changing the FFMPEG parameters every time, but that would seem unlikely.
So actually, that’s exactly the issue I was running into! I’d run a batch command on a whole folder full of videos, but a handful would already be well-encoded or at least they’d have a much MUCH lower bitrate, so I’d end up with mostly well-compressed files and a handful that looked like they went through a woodchipper. I wanted everything to be in the same codecs, in the same containers, at roughly the same quality (and playable on devices from around 2016 and newer) when it came out the other end, so I implemented a three-way decision based around the target bitrate you set and every file gets evaluated independently for which approach to use:
1. Above target → VBR re-encode: If a file’s source bitrate is higher than the target (e.g. source is 8 Mbps and target is 4 Mbps), the video is re-encoded using variable bitrate mode aimed at the target, with a peak cap set to 150% of the target. This is the only case where the file actually gets compressed. 2. At or below target, same codec → stream copy: If the file is already at or below the target bitrate and it’s already in the target codec (e.g. it’s HEVC and you’re encoding to HEVC), the video stream is copied bit-for-bit with -c:v copy. No re-encoding happens at all - the video passes through untouched. This is what prevents overcompression of files that are already well-compressed. 3. At or below target, different codec → quality-mode transcode: If the file is at or below the target but in a different codec (e.g. it’s H.264 and you’re encoding to HEVC), it can’t be copied because the codec needs to change. In this case it’s transcoded using either CQP (constant quantisation parameter) or CRF (constant rate factor) rather than VBR - so the encoder targets a quality level rather than a bitrate. This avoids the situation where VBR would try to force a 2 Mbps file “down” to a 4 Mbps target and potentially bloat it, or where the encoder wastes bits trying to hit a target that’s higher than what the content needs.
There’s also a post-encode size check as a safety net: if the output file ends up larger than the source (which can happen when a quality-mode transcode expands a very efficiently compressed source), HISTV deletes the output, remuxes the original source into the target container instead, and logs a warning. So even in the worst case, you never end up with a file bigger than what you started with which is much harder to claim with a raw CLI input. The audio side has a similar approach; each audio stream is independently compared against the audio cap, and streams already below the cap in the target codec are copied rather than re-encoded.
But yeah everything beyond that was bells and whistles to make it easier for people who aren’t me to use it haha.
I am 100% looking for more stuff I can build - let’s talk about it!
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
Thanks mate! It’s been a rough as hell week at work and getting it when I’m trying to share my hobby work with people was unexpected and a little demoralising, so your comment is really nice to read and much appreciated 😊
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
See, I got yelled at for not marking it as AI-assisted, and now you’re in here thinking it’s a flex! I just can’t win 😅
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
It’s no worries mate, as mentioned I have no problem with questions!
So, reasons. Yes, this started as a line in powershell! That was my other post, linked at the top. I wrote the line, and after a few batches I decided to stop and use Claude to build a GUI for it. After I got that working and did a few runs with it, I started thinking about how useful this would be for a handful of other people in my life, and I wanted to package it into a .exe, partly so I could send them something simple to start but also just because I wondered if I could get it working. Never done it before. I still wanted to use it for myself because I have thousands of video files to transcode, and I didn’t want to have to manually tweak the command for every batch. I also didn’t want to have to rebuild it if I have more to do 6 months down the line - I’m lazy.
Then, later that night after I’d done a few batches with the powershell line-now-script, I thought to myself that Claude could probably help me build a frontend for it that didn’t rely on powershell, and then I started thinking about just making it a cross-platform application so my less techie friends can use it if they have big video files and want to save disk space. And then I got the bright idea to post it to the internet in case there are other less-techie users who aren’t my friends but who could still use it.
It’s got some smarts under the hood to detect any hardware encoders you have available, and will present only the encoders that your system can use; the options are INCREDIBLY constrained, because the idea isn’t to expose every option of FFMPEG - this is for quickly shrinking video files without even needing to know the difference between CBR and VBR. That’s because you and I think it’s easy to run an FFMPEG command from the commandline. But there are a lot of people of all different kinds of skill levels who have no idea how any of that works, and they’ll take one look at Handbrake and run screaming. This is for those people, too.
It also auto-downloads the latest FFMPEG and FFProbe from the official source if it doesn’t detect them on your PATH or in the folder with the executable - that saved my buddy who was helping me test it on his 2016 Mac, for example.
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
No worries, go ahead and block me - I’m already returning the favour.
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
No worries, go ahead and block me - I’m already returning the favour.
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
Yeah, it’s another reminder of why I always tell myself to take a day and think about my response - for some reason though I don’t often stick to it! 😅
Also, I realised I was being needlessly stubborn mostly because nobody was telling me how to tag my post, just that I have to; after a quick think, I do understand why people want to know if they’re gonna be reading genAI code. I’ve added a preamble that this is AI-assisted, and a bit about why I think I’m doing it differently than people might first expect. I’ll clean it up to include in future posts and in my repo readmes.
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
That’s very similar to what I’ve been doing 😊 This project I think is on the cusp, a few of the files are over a thousand lines but it’s still kinda manageable. Comparatively, the PowerShell script I started with was far simpler. That one I actually did write most of it because I know how to get stuff done in PowerShell - just needed Claude’s help with the GUI.
Also, I was thinking about your comment on performance when you’re looking at tens of thousands of runs - definitely not my original intent for this, I figured anyone doing that would just use CLI, but it’s totally possible with HISTV. I added an option to put files in /outputs, path relative to the input file, so you totally could just drag a top level folder info the queue, it’ll enumerate the media in all the subdirectories, and hit start. You’d get the transcoded files right next to the originals in your folder structure so they’re easy to find. Useful, I hope, when doing that many jobs.
And thanks to your advice, it’ll do so a lot more efficiently. Like 5-6x lower resource usage, now. I really do appreciate the feedback, it’s exactly the kind of pointers I was hoping for when I posted this. I wish you’d come in to the comments outside my emotional response to someone else :P
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
Hey, my ask if simple: if you find a problem, let me know so I can fix it. I already have implemented fixes based on other suggestions, even though the commenter was kind of a dick, and my application is better for it. You’re the one who swung in here with nothing to add except a snide remark trying to antagonise me. Again, I’m not expecting approbation (except for the name, that was mine and I like it), I just shared it in case it was useful to anyone else.
If it doesn’t work on someone’s system, I want to know so I can fix it. If someone finds a bug I couldn’t, I want to fix it. I’m trying to learn - to read code better, but also technical project management. It sounds like you might be in or around technical projects yourself, so you know shipping something that works is actually quite a challenge. It’s an area I want to get some practical experience in.
If there’s a discourse that everyone is supposed to label everything that involves genAI, then I haven’t been part of it. There was no memo, there are no rules in the sidebar, so you can’t expect everyone to just know to follow those guidelines.
Finally, I don’t care if you read my other replies to other people. I was having an emotion about people piling on me, because I get enough of that shit at work, but here at least I get to speak in my defense, so I did. Do me a favour though and quit assuming things about my personality or how I think of my own skill set (I don’t think I’m any kind of coder, for one thing. I’m at best a warlock who read some wizard books but couldn’t even light a candle without his patron). So do you intend to engage with me in good faith, or were you just looking for a temporary punching bag?
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
Well, good news - I got some pointers on places that genAI usually makes mistakes, so I’ve gone through a round of performance fixes for things like unnecessary worker duplications which - next to the actual encoding - I didn’t notice the impact of on my desktop.
As to using hardware encoding, HISTV runs a test render for hevc and h264 across amf, nvenc, and qsv - so pretty much, if your hardware supports it, HISTV will detect it and let you choose which encoder you want to use. You can even use libx264/libx265 by choice if you want to take advantage of the more efficient compression; doing so exposes a toggle for CRF if you’d rather use that than QP.
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
Hey, replying again so you get a separate reply message. So like I said, I went looking for redundant loops and I found quite a few, just like you described. There was also a minor performance issue with the logic that built the FFMPEG argument; it used a lot of unnecessary flags, each of which required fresh memory allocation. That would only be an issue in specific circumstances, like if you were encoding thousands of videos in quick succession… but that’s exactly the kind of issue you were talking about, so I asked for and implemented the fix.
It does seem snappier. I’m pushing 1.0.9, which has the fixes beyond what I found from your comments (like the argument construction issue), included. If there’s anything else you’d recommend I look at, I’m all ears.
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
Again, get off your high horse
I’m on a high horse? You’re the one riding in here yelling at me for not conforming to your arbitrary rules I didn’t know about, and defending someone who did nothing but insult me.
You already know how most self-hosted folks feel about vibe coding, or you wouldn’t have taken immediate offence to the initial comment (which ia valid, btw. You did not mark the project as vibe-coded or ai-assisted.) MARK YOUR PROJECT AS AI-ASSISTED.
No, I don’t know any such thing, I took offense to the implication that there was no effort put into this, and the absolute absence of any constructive criticism whatsoever. And again, I didn’t agree to your rules, and I don’t owe you anything, so take you imperious commands somewhere else, thank you very much.
I’m looking to replace my cron-timed ffmpeg bash and ash scripts for encoding. Three of the four projects I looked at have double- and triple-work loops for work that should be done once. This seems to be a theme in vibe-coded projects.
See, this is something I can actually work with. I’m looking for places that unnecessary probes get spawned for example - there are some that are necessary for the way I want this thing to work, but there’s one just for audio data when previous probes already get that. A useful observation that resulted in an improvement. Thank you.
Once again, I’m interested in the project, but I have my own thresholds of quality and security. If you can’t handle questions about your project, personal or not, then maybe don’t share it.
First of all, I’m going to say this very clearly so maybe it gets through: I am not mad about questions. I am mad about insults and a lack of questions. Thank you for your attention to this matter 🤦 Next: Your thresholds are your responsibility, I didn’t know about them when I built this and I didn’t build it for you, I’m sharing it and you happened to stop by. I appreciate your observations on issues to watch out for when I’m using genAI code, I will be keeping an eye out for duplicated loops and other issues in future projects.
Sir/Madam, your feeling are your responsibility, not mine. I did not utter any pejoratives your way. Grow up.
You have a few things to learn about living in a civil society, based on how you treat strangers who are trying to learn. Grow up.
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
No one is being a jerk here
Really? Literally the only thing they said was
Missing the ”made using AI, barely tested” disclaimer I see…
They didn’t ask a question. They just came out swinging, for no reason. You asked three questions, and I’m not going to call you a jerk for it. But just coming in here and accusing me of not testing it? Absolutely being a jerk.
Now, your questions. - No, I didn’t use unit tests. I built this for my own personal use, and tested it on my system and my wife’s with files in a variety of containers encoded at a variety of bitrates with a variety of codecs - random crap we had laying around our hard drives, from the internet, from Steam and OBS records, from our phone cameras. This isn’t commercial software, I’m not asking for donations, and I made the license The Unlicense because I don’t want money or credit for it. I shared it because I got it working and I thought other people might find it useful too. I’m not going to exhaustively test it like I’m taking subscriptions, I hate testing. When I come across an issue, I fix it, and that’s the best I’m offering. - It’s FFMPEG in the backend, and it processes files sequentially. It encodes whatever you put in to HEVC MKV, or H264 MP4. You can set the QP settings for the quality you want. Explain where you expect inefficiency and how I can fix it, and I will. - I’m pushing from a local repo to my Github where it runs a job to compile the binaries for each platform, and to Codeberg where it’s not doing that (so I only have the compiled binaries at GitHub right now). - What fixes did I apply? Many. Some examples would be not successfully detecting available hardware, showing all available encoders rather than only the ones that would work with available hardware, failing to build (so many build failures), window sizing issues, options not showing, hanging on starting a job because the ffmpeg command was getting mangled, failing to find ffmpeg, unable to add files, unable to probe files, packet counting not working so “best guess” settings would result in larger files than the originals, that sort of thing.
And incidentally, the fact that this is a personal project I shared in case someone might find it useful is another reason that coming in here and throwing shade is a shitty thing to do. If it’s no use to you, move on. If you have constructive criticism, let’s hear it. If you can do it better, go ahead. But why try to make me feel bad about it, because you don’t like the way I built it? I used spaces instead of tabs too, go get the fucking pitchforks.
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
Yes, I used Claude to help me build this, but it’s not “barely tested”. The major features all work, and they didn’t at first; I hunted down bugs, told Claude to shove it when it was wrong, and manually applied fixes so I could be sure I understood what went wrong and why. This was first and foremost a learning experience for me. And I’m actively using this thing to batch transcode my media right now, because my learning experience has resulted in something that works.
If you find issues, by all means let me know and I’ll do my best to fix them - but stow the attitude, I didn’t invite you to this party and I’m not contract-bound to offer you support. If you don’t wanna be here, you can kindly fuck straight off.
- Comment on Rising carbon dioxide levels now detected in human blood 1 week ago:
This. We’re all overworked so we all have less energy for things like keeping ourselves fit. And actually exercising really doesn’t sell itself either, it hurts and it’s hot and I’m still trying to catch my damn breath from my sets earlier. Stupid maintenance.
But it beats the hell out of literally slowly suffocating in my chair at my desk.
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
Good catch! Didn’t see til I looked at it on my phone, wasn’t happening on my desktop. Fixed.
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
My advice would be to try transcoding one or two media files first, and test the transcode on different devices. HISTV gives a lot fewer options than Handbrake, but the idea is minimal effort, maximal compatibility.
Specifically, AV1 is a newer standard, and not supported on devices older than ~2020 I think. HEVC (aka x264) produces slightly larger files but works on devices back to 2016 or so, and MP4/H.264 gives yet bigger files but compatibility goes back even further.
For video file size the main things you want to real are the target bitrate and, secondarily, the QP numbers: https://www.w3tutorials.net/blog/what-s-the-difference-with-crf-and-qp-in-ffmpeg/#quantization-parameter-qp-definition–how-it-works
For good quality at a reasonable size you can use the default values of 20/22 but to save a little more space you can probably bump these to 24/26. I went with QP instead of CRF because it’s better for streaming (while still giving better perceived quality than a constant bit rate).
Handbrake is great, does all this and more, but that was my problem with it - the controls look like something out of a space shuttle and I just don’t need all that most of the time 😅 I’d love to hear how you find using HISTV vs Handbrake, if you give it a go! 🙌
- Comment on Honey, I Shrunk The Vids - a Windows transcoding frontend for FFMPEG 1 week ago:
Thanks! Absolutely, I’ll add those screenshots to the original repo tomorrow. In the meantime, you may wish to check out the update thread I just posted: https://github.com/obelisk-complex/histv-universal
I think the new version looks even better, and it’s cross-platform now!
- Comment on Honey, I Shrunk The Vids [Mr. Universe Edition] v1.0.5 1 week ago:
Weird, I’m seeing it load fine in a fresh Incognito window: image
Can you shoot over a screenshot with the URL you’re visiting?
And, it’s actually also on Codeberg: https://codeberg.org/dorkian_gray/histv-universal
But yes, I did create a GitHub account just because it can build binaries for a wide range of systems; the binaries are currently only available on Github. I have been running into Codeberg’s availability issues so I’m now glad I’ve got both 😅