freebliss,
@freebliss@post.lurk.org avatar

Introducing ...

The Hyper 8 Video System.

https://simonrepp.com/hyper8/teaser/

Yaaaaaayyyyyyy ٩(◕‿◕。)۶

freebliss,
@freebliss@post.lurk.org avatar

I'm working on a static site generator for video¹ - think PeerTube/YouTube, but entirely static. I've posted a brief introduction (video) two weeks ago (see thread), today I'm sharing an excerpt of something I just wrapped up: Customizable aspect ratio for thumbnails. This gives flexibility to build sites for anything from cinematic (super wide) trailer collections to specialty formats (square?), to TikTok-ey mobile video logs (portrait). \o/

The whole thing is called the "Hyper 8 Video System", and there's a ton more to say about it (because so much is already there!), but for now I'm mostly focusing on keeping development and design work at a fast pace, and talking/writing less. But stay tuned for more! ( ^◡^)

Development is happening in the open at https://codeberg.org/simonrepp/hyper8

(¹ this is in the making for the last 6 months or so already!)

A plain video listing with thumbnails, the thumbnails are 4:3, almost square
Another plain video listing, the thumbnails here are very wide, with a cinematic feel to them

poiseunderchaos,
@poiseunderchaos@sonomu.club avatar

@freebliss Very exciting! Looking forward to trying it out, when things get to that point.

freebliss,
@freebliss@post.lurk.org avatar

@poiseunderchaos Awesome \o/

praxeology, (edited )
@praxeology@post.lurk.org avatar

@freebliss Ooh this looks fabulous! I'm thinking this could be very useful as an alternative to YT and such for individuals and small orgs.

Do you plan to have snippets to embed in other pages?

freebliss,
@freebliss@post.lurk.org avatar

@praxeology Happy to hear and much appreciate the feedback thanks!

Individuals and small orgs are indeed the primary intended audience. Together with dérive (Magazin für Stadtforschung) I will be running a first live site to that end, very soon, very excited to see how that will go. :)

Embeds are definitely coming, I'm even considering to have this be a first-class feature at some point, I think it makes a lot of sense to support that well.

I'll answer the lost question too because I really want to ^^ -> Hyper 8 supports background transcoding to other sizes and formats (H264/HEVC/VP9) very well already, it's some of the first functionality I implemented, and in quite some detail. What is rather sparse right now is how that functionality is exposed through the interface though - for now there's only a makeshift select box and a button where one can request a 480/720/1280 transcode without any options and with barely any indication of the background process (it does happen though :D).

freebliss,
@freebliss@post.lurk.org avatar

The Hyper 8 Video System now has some first documentation online, for anyone curious: https://simonrepp.com/hyper8/docs/

Especially the reference section gives a good glimpse into the basic building blocks: Site/Collection/Playlist/Video

Something that is not mentioned yet but is I think pretty cool, is that you can freely move all parts of a hyper8 site - within, but also across hyper 8 sites (!) - e.g. you can take a playlist (directory on the disk) with all its contained videos and copy or move it to another hyper8 site directory, at any point in its hierarchy, and it fits right in without adjustments, ready to deploy!

Today/yesterday I also implemented prototypical subtitle support, an adaptive theme option and language customization scaffolding. It's going nicely! \o/

lislegaard,
@lislegaard@sonomu.club avatar

@freebliss

This looks veeerry cool! As a Faircamp lover and video maker this looks like a very nice project!

I have already switched to not using Youtube embeds on my website but just regular html video players.

This looks like a nice sollution to make a more browsable library of videos.

Looking forward to testing it out!

freebliss,
@freebliss@post.lurk.org avatar

@lislegaard excellent! super happy to hear!

happyborg,
@happyborg@fosstodon.org avatar

@freebliss
Great to see this. It's something I'd love to put on (ex ) but first we have to get some APIs and a browser app sorted! Hopefully they'll be there as your project matures.

Visiting the repo I'm curious why AGPL rather than GPL? Being static I'm assumming no server side code. I'm not sure it matters but still curious. I don't understand all these licensing options and just make all my code GPLv3, and never do anything on a server.

freebliss,
@freebliss@post.lurk.org avatar

@happyborg Lovely to hear, thank you!

It'a very valid question - there's two components to it, both intertwined: On the one hand there is actually dynamic server side code - just not in the build product, but for the web editor that is mostly intended to be run locally (but could just as well be run on a server). And then, somewhat more the reason for AGPL for me, there's at least the possibility that people will build a SaaS thing with or around hyper8, and then the AGPL could provide an additional safeguard to keep things in the hands of the public.

happyborg,
@happyborg@fosstodon.org avatar

@freebliss makes sense. After asking I was thinking that it makes sense to always use AGPL regardless as it must cover both cases, but I'd like that confirmed before I do so.

I started building a demo web browser today so if I get that done it would be great to try it with your app.

freebliss,
@freebliss@post.lurk.org avatar

Folks, it is my great pleasure to announce that today, the Hyper 8 Video System officially entered Beta!! \o/

I'll keep it short for this announcement, so if you're curious what this is all about follow the thread back in time (especially the most recent toot explains it really well I think!).

Special shout-out to austrian federal ministry BMKÖS for making this possible with a project grant for digital cultural heritage and my lovely project collaborators at dérive society for urban research in vienna - things wouldn't have worked out nearly as well without their initiative!

With this I'm raising a glass in celebration and starting a few days of vacation ;), cheers and thanks for your support everyone, I'll be back in the workshop in a few days. <3

https://simonrepp.com/hyper8

dook,
@dook@post.lurk.org avatar

@freebliss congrats! Some time off is definitely deserved :) Excited to look into this soon and see what's possible with it! Fantastic work as always.

freebliss,
@freebliss@post.lurk.org avatar
freebliss,
@freebliss@post.lurk.org avatar

Last log entry before the first big milestone: Hyper 8 (https://simonrepp.com/hyper8) is probably going beta on wednesday. ٩(◕‿◕。)۶

In this first official release, no singled out part will be a big deal by itself - not yet - but I think the whole package is going to prove a critical point:

Video on the web can be done a) without depence on big tech (Youtube etc.) b) without dependence on financially and/or socially volatile community infrastructure (Peertube etc.) c) without much technical know-how at all, d) practically maintenance-free forever (as long as the web still stands) and e) with a user experience (talking audience here) pretty much on par with contemporary alternatives.

I think for everyone who's not blissfully happy with their big tech solution (probably has an expiry date), blessed with reliable community infrastructure (also might have an expiry date) or technically privileged to depend on neither of the two, Hyper 8 is going to be big news in the long run. Can you tell? I'm super excited about this! :)

lislegaard,
@lislegaard@sonomu.club avatar

@freebliss

this is going to be so amazing!

freebliss,
@freebliss@post.lurk.org avatar

@lislegaard yaay i hope so too \o/ :)

silmathoron,
@silmathoron@floss.social avatar

@freebliss this looks very interesting!
Since you explicitly propose this as an alternative to big infrastructures, is there a plan to use something like PeerTube to have people share their bandwidth?
Or some alternative to manage sending from 1 to many efficiently?
Otherwise it seems rather difficult to host anything popular as the bandwidth requirements (and associated costs) would quickly become prohibitive.

freebliss,
@freebliss@post.lurk.org avatar

@silmathoron Possibly yes! I have a memo in my todo list to look into PeerTube's P2P load balancing approach for video and see if and how it could be integrated at some point. That said, priority-wise this is for me still very far away, as there's a ton to do on many other fronts first. :D Related to this, I'm fairly certain that I want to support torrent-based downloads eventually (could be used to serve lower-quality streaming formats online, but offer higher-quality formats with distributed download for offline to ease server load). In either case, usecase wise I'm also going for smaller producer/audience situations first. Folks who do only, or primarily, video, including with large audiences, will probably anyway be on multiple platforms, potentially using professional paid services and/or have other requirements hyper8 does not cater to - livestreaming, livechats, live analytics, etc.

As for @dried re. S3 + CDN - no dedicated ideas on that front yet, I'm first and foremost getting the generic deployment options ready (rsync is implemented already with some caveats, ftp is my next target right now). I also suspect that folks who wrangle S3 and CDNs and so on will anyhow bring the expertise to set up their custom deployment for these things (as seen with faircamp \o/)

Hope that clarifies some parts! :)

dried,
@dried@sonomu.club avatar

@freebliss @silmathoron digitalocean's S3 is my use case so I might have a hack at it eventually. (CDN is included as a simple toggle option, but I have it switched off for now as I don't think I really need it.) Til then my deployment is manually rsyncing the hyper8 output dir, so having S3 built in would be a big win.

dried,
@dried@sonomu.club avatar

@freebliss also thanks for being so transparent & responsive!

freebliss,
@freebliss@post.lurk.org avatar

@dried my pleasure, appreciate all the input too!

freebliss,
@freebliss@post.lurk.org avatar

I began versioning today so release procedures for the upcoming beta can be put in place. If you're on Debian or Ubuntu, a first alpha release package (0.12.0) is available now at https://simonrepp.com/hyper8/docs/installation.html

Before you go wild with it, mind the alpha version fine print: "Hyper 8's browser interface performs destructive file operations on your behalf and pending wider testing the program should be handled with caution, on a well back-upped system." With that in mind, have fun! :)

freebliss,
@freebliss@post.lurk.org avatar

And now there's a hyper8 arch/aur package as well \o/ https://aur.archlinux.org/packages/hyper8

freebliss,
@freebliss@post.lurk.org avatar

Development of the Hyper 8 Video System is actually bootstrapped onto a video publishing project (we're getting a first version of the https://derive.at video archive online, independent from big tech \o/). This week I picked up the first batch of release-ready footage and started using itself for transcoding the final files, so I'm now also iterating on the usability of that whole workflow.

Most recent additions are a more useful dashboard for tracking the background encoding jobs, webm support and overall more robust video metadata handling, and just today I added frame rate parsing and encoding settings (because I needed to convert from 60 to 30 fps).

Next on that front I want to attempt a proof of concept for providing some kind of continuous feedback from the encoding jobs, i.e. just plain redirecting some of ffmpeg's stdout/stderr to the editor - no promises yet though, need to do some exploratory coding first. :D

Official beta release is coming up in ... checks notes ... less than four weeks now! ᕕ( ᐛ )ᕗ

freebliss,
@freebliss@post.lurk.org avatar

Hyper 8 now provides interactive feedback on encoding progress and estimated time remaining \o/ (went from exploratory coding for getting the data from the ffmpeg child process all the way to a polished UI integration today, yay!). I also learnt that ffmpeg offers a -progress option for sending progress data to an arbitrary url, which is pretty rad (although I didn't use that in the end). <25 days to beta! ʕ◜0ᴥ0ʔ

Close crop of a menu, notably on the left there is an orange-colored button that has a processor icon, a left-side text that says 10%, and a right-side text that says -1:07:08 (that is, it's counting down the time)

freebliss,
@freebliss@post.lurk.org avatar

Frequently mocked for its absence in (even mature) applications, but can't happen here anymore ^^ ... behold one of the most annoying dropdown menus I ever implemented: Interface language change at runtime in . \\o///

freebliss,
@freebliss@post.lurk.org avatar

Laid the foundation for the custom video player in this weekend.

What is going to stand out from most other (mainstream) players is a more conscious design approach to communicating the underlying resource usage (third screenshot).

It's still research, and a fine line to walk between being too cryptic to the less technically interested or being too didactic to those that really just want to watch a video without a sustainability sermon, but in the end I believe technology has to do a better job giving people insights for informed choices, and ideally I want to find one or two good ways to do it with this video player. :)

Screenshot showing the hyper8 video player and playlist pane with dark theme, the video player shows two yellow building cranes from below against a deep dark blue night sky, heavily clipped by the camera view bounds
Screenshot showing the hyper8 video player and playlist pane, the video player shows a ring-shaped graph whose four separate segments have different lengths. Each segment is labelled with a two-lined caption like "1080p / 775 kB" or "136p 258 kB". In the middle is a big play button.

noisio,
@noisio@chaos.social avatar

@freebliss I am following with excitement and plan to test it soon.. looks great!

It's kind of confusing, that 136p got a bigger load than 270p. Is it about different aspect ratio?
Otherwise I could imagine that an onion rings like nesting from inside (small load) to outside (bigger load) maybe could give a nice visual representation on the expected amount of data and time.

freebliss,
@freebliss@post.lurk.org avatar

@noisio Well spotted, I was wondering too! :) It's because the versions of this video use different codecs (H264, H265, VP9) - more of an accidental situation because I was testing around with transcoding, regularly one would probably use the same codec throughout (respectively, as the operator of the site I would not keep a lower-res version of a video if the next higher-res version is smaller anyway).

I considered and sketched a ton of visualization styles - onion rings not yet, I'll give it a thought. Thanks for the kind feedback and excited to hear you plan to test this at some point! \o/

freebliss,
@freebliss@post.lurk.org avatar

Worked on all day today, doing iteration over iteration on the playlist pane mostly. In the last hour or so then started wildly moving elements around on the page and realizing all of the opportunities when you take away all the attention-desperate design choices from platforms such as youtube. Super excited to be working on this, it's slowly really coming together. ⸜(ˊᗜˋ)⸝

A screenshot of the hyper8 interface, things still floating around on the page somewhat loosely (a playlist fragment, a video, title description and a few smaller header/footer elements). Pink notes scribbled atop the screenshot indicate that there is lots of space for things the author wants to present available, and that everything is (still) very relaxed and there is lots of space and calmness because there are no ads and such.

dried,
@dried@sonomu.club avatar

@freebliss sure is a nice door

freebliss,
@freebliss@post.lurk.org avatar

@dried :geordi_like:

dried,
@dried@sonomu.club avatar

@freebliss Thanks for making the alpha for this available so soon! I used the generated output as a reference for a video page on my site just now, which made it super quick & easy.

https://www.daveriedstra.com/video/sympath/2024-03-27-sympath-promo-video.html

freebliss,
@freebliss@post.lurk.org avatar

@dried That's so cool! \o/ I honestly didn't expect this to make any impact on the world until its beta release. Made my day, thanks for sharing! :) And super nicely designed (your page), love it!

dried,
@dried@sonomu.club avatar

@freebliss thank you! I'm eager to update it with some of the video processing things that (I think?) will be in hyper8. But already I discovered the video preload=false flag from it, which is great, I was really worried about preloading

freebliss,
@freebliss@post.lurk.org avatar

@dried This post - https://post.lurk.org/@freebliss/112135781186508893 - has some details on existing/planned video processing. Let me know if you were thinking of something completely different, I'd be curious to hear! :)

dried,
@dried@sonomu.club avatar

@freebliss oh super, thank you! The transcoding thing is definitely the bulk of what I was thinking of. I'm also curious about transcripts & subtitles, but don't know what an implementation would look like (just that more videos online should come with transcripts for various reasons). Embeds will be rad too!

freebliss,
@freebliss@post.lurk.org avatar

@dried Very basic support for subtitles is in already (just drop .srt or .vtt files alongside the video), although I believe the automatic srt->vtt conversion might be broken (at least was in one test of mine). If the question also touches on automatic transcripts, I didn't think of that at all so far (just made a note of it :)), but I think in the mid/longterm this should absolutely be an aim (an actually reasonable ML model usecase for a change! :D). Thanks a lot for the input, nice to have transcripts on the radar now, also with respect to future financing/grants etc. this might be an important point on the agenda.

dried,
@dried@sonomu.club avatar

@freebliss again you're several steps ahead :)

Subtitles: awesome that it's already in place! For ppl like me who don't know how to prepare a subtitle file, it would be useful to have a set of prompts for text and timecode (maybe showing the video frame at the timecode) to build the file.

Transcript: agreed, good use of ML, but I'm just thinking of how they're presented on the public video page (& normalizing transcripts like alt text). You've probably already got an idea for this :)

freebliss,
@freebliss@post.lurk.org avatar

@dried I guess if and when hyper8 offers automatic transcription that then almost dictates that there has to be at least some way to do corrections. :) I'm a bit unsure though if a full blown subtitle editor (for building from scratch) isn't maybe a bit too much (that would introduce a hefty amount of code and complexity and heavily blurs the line to stand-alone subtitle editors). Then again people appreciate if they can do many related things with just one tool, so hm, it's a good point!

On the transcript presentation I have in fact no clear idea yet ;) but I did some experimentation to build a slideshow-with-audio-track tool 1-2 years ago or so and that too had transcript functionality, so I might just steal my own ideas from there (whatever they were haha).

dried,
@dried@sonomu.club avatar

@freebliss ack I wish I had the time to build the subtitle editor, that really would be a great standalone project. You've got a good point about scope creep, as well.

dried,
@dried@sonomu.club avatar

@freebliss I built out a really simple proof-of-concept for manual transcript addition & presentation: https://codeberg.org/dried/hyper8/src/branch/ft-transcript

no pressure to use it but it's there if you want it

freebliss,
@freebliss@post.lurk.org avatar

@dried woah nice thanks! (and well done, looks solid!) I need to focus on core scope tasks for the next weeks still (official project deadlines coming up ;)) - also why PRs are disabled for now - but keep it around, I will come back to transcripts eventually!

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • modclub
  • DreamBathrooms
  • InstantRegret
  • osvaldo12
  • cubers
  • magazineikmin
  • mdbf
  • ethstaker
  • rosin
  • Youngstown
  • slotface
  • ngwrru68w68
  • kavyap
  • thenastyranch
  • provamag3
  • Durango
  • tester
  • cisconetworking
  • tacticalgear
  • khanakhh
  • everett
  • normalnudes
  • megavids
  • Leos
  • GTA5RPClips
  • anitta
  • JUstTest
  • lostlight
  • All magazines