Live data from Hacker News

We replaced H.264 streaming with JPEG screenshots (and it worked better)

blog.helix.ml

251–260 of 332 posts

Re: We replaced H.264 streaming with JPEG screenshots (and it worked better)

#251
post #166

Earlier quoted context omitted.

Don’t assume something you cannot prove. It was great writing

>Don’t assume something you cannot prove. Well it's an inherently unprovable accusation, so assumption will have to do. It reeks of LLM-ese in certain word choices, phrases, and structure, though. I thought it was quite clear. >It was great writing Err... no accounting for taste, I suppose.

Just saying but LLM-ese as the common dominator of how people wrote, it is likely the writing style of a lot of people

Re: We replaced H.264 streaming with JPEG screenshots (and it worked better)

#252

Earlier quoted context omitted.

A word processor can save it's state at an arbitrary point... That's what the save button is for, and it's functional at any point in the document writing process! In fact, nearly everything in computing is serializable - or if it isn't, there is some other project with a similar purpose which is. However this is not the case with video codecs - but this is just one of many examples of where the video codec landscape…

> A word processor can save it's state at an arbitrary point... That's what the save button is for, and it's functional at any point in the document writing process! No, they generally can't save their whole internal state to be resumed later, and definitely not in the document you were editing. For example, when you save a document in vim it doesn't store the mode you were in, or the keyboard macro step that was exe…

> Serializable in principle, maybe. Actually serializable in the sense that the code contains a way to dump to a file and back, absolutely not. It's extremely rare for programs to expose a way to save and restore from a mid-state in the algorithm they're implementing.

If you should ever look for an actual example; Cubemap, my video reflector (https://manpages.debian.org/testing/cubemap/cubemap.1.en.htm...), works like that. It supports both config change and binary upgrade by serializing its entire state down to a file and then re-execing itself.

It's very satisfying; you can have long-running HTTP connections and upgrade everything mid-flight without a hitch (serialization, exec and deserialization typically takes 20–30 ms or so). But it means that I can hardly use any libraries at all; I have to use a library for TLS setup (the actual bytes are sent through kTLS, but someone needs to do the asymmetric crypto and I'm not stupid enough to do that myself), but it was a pain to find one that could serialize its state. TLSe, which I use, does, but not if you're at certain points in the middle of the key exchange.

So yes, it's extremely rare.

Re: We replaced H.264 streaming with JPEG screenshots (and it worked better)

#253
post #124

Many moons ago I was using this software which would screenshot every five seconds and give you a little time lapse and the end of the day. So you could see how you were spending your computer time. My hard disk ended up filling up with tens of gigabytes of screenshots. I lowered the quality. I lowered the resolution, but this only delayed the inevitable. One day I was looking through the folder and I noticed well al…

You could do better than video compression because you could use older keyframes or a combination of keyframes.

I am pretty sure it might be np compete to find the best combination

Re: We replaced H.264 streaming with JPEG screenshots (and it worked better)

#254

Setting aside the various formatting problems and the LLM writing style, this just seems all kinds of wrong throughout. > “Just lower the bitrate,” you say. Great idea. Now it’s 10Mbps of blocky garbage that’s still 30 seconds behind. 10Mbps should be way more than enough for a mostly static image with some scrolling text. (And 40Mbps are ridiculous.) This is very likely to be caused by bad encoding settings and/or a…

> Why are we badly reinventing MJPEG instead of configuring the tools we already have?

Is it much of a stretch to assume that in the AI gold rush, there will be products made by people who are not very experienced engineers, but just push forward and assume the LLM will fix all their problems? :-)

Re: We replaced H.264 streaming with JPEG screenshots (and it worked better)

#255

Earlier quoted context omitted.

> I couldn't find a single video codec which could do that without extensive internal surgery to save all internal state after the 15th frame. fork()? :-) But most software, video codec or not, simply isn't written to serialize its state at arbitrary points. Why would it?

A word processor can save it's state at an arbitrary point... That's what the save button is for, and it's functional at any point in the document writing process! In fact, nearly everything in computing is serializable - or if it isn't, there is some other project with a similar purpose which is. However this is not the case with video codecs - but this is just one of many examples of where the video codec landscape…

> A word processor can save it's state at an arbitrary point...

As ENTIRE STATE. Video codecs operate on essentially full frame + stream of differences. You might say it's similar to git and you'd be incorrect again, because while with git you can take current state and "go back" using diffs, that is not the case for video, it alwasy go forward from the keyframe and resets on next frame.

It's fundamentally order of magnitude more complex problem to handle

Re: We replaced H.264 streaming with JPEG screenshots (and it worked better)

#256
post #166

Earlier quoted context omitted.

>Setting aside...the LLM writing style I don't want to set that aside either. Why is AI generated slop getting voted to the top of HN? If you can't be bothered to spend the time writing a blog post, why should I be bothered spending my time reading it? It's frankly a little bit insulting.

Don’t assume something you cannot prove. It was great writing

Looked like typical medium.com slop but with a bit more technical detail. Not sure where you see greatness

Re: We replaced H.264 streaming with JPEG screenshots (and it worked better)

#257

I'm very familiar with the stack and the pain of trying to livestream video to a browser. If JPEG screenshots work for your clients, then I would just stick with that. The problem with wolf, gstreamer, moonlight, $third party, is you need to be familiar with how the underlying stack handles backpressure and error propagation, or else things will just "not work" and you will have no idea why. I've worked on 3 projects…

This is where LLMs shine, where you need to dip your toes into really complex systems but basically just to do one thing with pretty straightforward requirements.

...and apparently waste 3 months doing it wrong thanks to it without doing anything as basic as "maybe fix your bitrate, it's far higher than any gameplay streaming site and that's for video game, stuff with more movement"

40Mbit is 1080p bluray bitrate level

Re: We replaced H.264 streaming with JPEG screenshots (and it worked better)

#258
Hi, I would concur to some of the comments. A key frame in H264 is already encoded in a similar way as JPEG. Major differences are the "defaults": the flexibility of JPEG in terms of colors depth, color map, but that can be also addressed with a video codec, too. Then when using a video codec like H264, it will also contain differential frames which will only send differences. It depends on the content but these frames can be significantly smaller than a key frame, like 10x.

So the math is that H264 can nearly only be better than JPEG, assuming proper parameters for the type of content, the targeted transmission challenges, the transmission type.

Using JPEG is close to using only key frames from a compression stand point (not to say, it is exactly like that), which is close to older protocols like MPEG-1 (DVD), or close to intra-frames only codec (like used as intermediate formats, for editing or preservation). And the difference in size is a no-brainer, eventually this is the amount of data that needs to be sent to every user.

In my opinion, the first consequence of using JPEG only is the cost per device, the number of concurrent streams from a server and what not.

If the perception of quality is low with H264 compared to JPEG, some parameters need to be adjusted. And ultimately, H264 is already an old codec anyway, not the one I would recommend, newer ones can address visual perception and bandwidth in a much better way. the VP-8/9/AV1 family will reduce the "macro block" effect of the H.26x codecs. Using HDR will dramatically improve the quality and will crush any benefit from JPEG, benefits related to the number of bits per pixels and the poor 8bits color maps, with a much higher efficiency.

Should the volume of users and the cost per user be of any consideration, a lossy video codec will prevail.

Video projects are challenging in the details: wish you the best.

Re: We replaced H.264 streaming with JPEG screenshots (and it worked better)

#259
I love this:

- It's 2025! We don't need to think like the savages of the yore. Use video at 60FPS. Computing is cheap, network is reliable. Why do we need to remember old ways like savages?

it turns out that network is not reliable...

- We will do as our ancestors did, and will send JPEGs, and that works?! Whoa, who guessed it!

Come on. Everything is new but nothing has changed. Sometimes the older tech is vastly better, and saves our butts or lives or both. We shouldn't be ashamed of using things proven to work.

Re: We replaced H.264 streaming with JPEG screenshots (and it worked better)

#260
post #166

Earlier quoted context omitted.

>Setting aside...the LLM writing style I don't want to set that aside either. Why is AI generated slop getting voted to the top of HN? If you can't be bothered to spend the time writing a blog post, why should I be bothered spending my time reading it? It's frankly a little bit insulting.

Don’t assume something you cannot prove. It was great writing

You mean other than this being AI slop company, usage is monitoring AI slop output and author confirming blog is AI slop? https://news.ycombinator.com/item?id=46372060
Post reply on HN