HNHacker News
TopNewBestAskShowJobs

steelbrain

1,144 karma · joined June 24, 2015

Software Engineer, Open Source Enthusiast

https://github.com/steelbrain

submissionscomments
steelbrain··on Walled Gardens Can Kill
Hello! Are you reading this on a phone/tablet? I tweaked it around a bit to make it soft/comfortable to read but may have gone too far.

Edit: Made it a bit darker, hopefully its easier to read now.

steelbrain··on Walled Gardens Can Kill
I was unopinionated about Apple's walled garden until the events of last week. Now I'm pro side-loading. If you've been on the fence, hope this changes your mind.
steelbrain··on Whisky is no longer actively maintained
Curious, what's the specs of your laptop and what frame rates were you getting? I've been considering getting rid of my gaming PC since I exclusively play Elden Ring
steelbrain··on Nvidia adds native Python support to CUDA
See also: https://tinygrad.org/

Reverse-engineered python-only GPU API, works with not only CUDA but Also AMD's ROCm

Other runtimes: https://docs.tinygrad.org/runtime/#runtimes

steelbrain··on PG&E reports profit of more than $2B for 2024
Can you please help me understand your stance? Why do you think a company should have a $0 profit?
steelbrain··on Bosch's brake-by-wire system may be the next big leap in automotive tech
I have a couple cars, some german. It absolutely does not cost $700 to change a dead battery any more that it costs $100 for a bottle of water. The cost of goods is cheap. You do need to tell the computer it is a new battery, since it adjusts charging voltages based on battery age, and if you don't do this it may overcharge the battery.

Talking to the onboard computer is free beyond the initial equipment and it isn't even locked or anything, tools that can do this can be had for cheap, connect to your phone via bluetooth etc.

steelbrain··on Linux kernel cgroups writeback high CPU troubleshooting
The skill required to cut through so many layers, going from php application down to linux kernel. Impressed and jealous!
steelbrain··on Blackmagic Debuts $30K 3D Camera for Capturing Video for Vision Pro
Thank you for posting this! It's very helpful. Just want to add a caveat for the reader. While resolution is important, the display technology matters just as much if not more. Pimax Crystal Super, for example uses QLED tech, so its backlit and its color accuracy, contrast will not be in the same ballpark as Apple Vision Pro which uses micro-OLED panels.

A pixel, is not always a pixel. There's more to the story.

steelbrain··on Raspberry Pi 5 now supports Valve's Steam Link
Have you verified that this is a client side issue by using another client? (ie the one built into your phone).

I’ve seen this happen to me, and a combination of plugging in a dummy HDMI dongle into the GPU, toggling on/off nvidia nvfbenc (hope I’m spelling this right) fixed it for me.

steelbrain··on Skia Canvas: Browserless implementation of the HTML Canvas drawing API for node
> WASM needs a separate runtime, whereas a node binary doesn't.

FWIW, node ships with a WASM runtime. See https://nodejs.org/en/learn/getting-started/nodejs-with-weba...

steelbrain··on Comparing AWS S3 with Cloudflare R2: Price, Performance and User Experience
Do you have any examples of the latter? From what I remember reading, the most recent case was a gambling website and cloudflare wanted them to upgrade to a tier where they’d have their own IPs. This makes sense because some countries blanket ban gambling website IPs.

So apart from ToS abuse cases, do you know any other cases? I ask as a genuine curiosity because I’m currently paying for Cloudflare to host a bunch of our websites at work.

steelbrain··on GPD Pocket 4, 8.8-inch Modular Full-featured Handheld AI PC
License aside, there’s currently no way to get graphics acceleration on the APU running the device. So no, you cannot run macOS on it even if you wanted to
steelbrain··on Mitigating WiFi deauth attacks with Ubiquiti Protected Management Frames (2022)
What is QC referring to here? I’d appreciate a quick liner, thanks!
steelbrain··on Fusion power is getting closer
While I admire your optimism, this is not realistic. The earth is big and not all parts get the same amount or intensity of sunlight. Nordic countries cannot rely on Solar with batteries, for example.
steelbrain··on OpenMPTCProuter: Aggregate and encrypt multiple internet connections using MPTCP
I used this when I was in Tallinn. Place I was in didnt have gigabit fiber (probably the only place on the whole street). It worked well for me.

I was using copper internet from local ISP paired with cellular and starlink. Starlink went out for 30 seconds every few minutes but when it worked, it was the fastest of the bunch.

I rented a cheap VPS in the city to use as the other end of this router. The setup worked well overall, I was getting work done along with downloading games with sizes above 100G without worrying too much

steelbrain··on Cooking with black plastic is particularly crucial to avoid
You don't have to get cast-iron necessarily. Try carbon-steel. My mother doesn't like cast iron because of the maintenance required, and we don't use non-stick for the alleged health issues.

Got a bunch of carbon-steel cookware and she loves it.

steelbrain··on Using an 8K TV as a Monitor
Looks great, thank you for sharing. I've been looking for something similar (OLED, for work/gaming) so looked into the one you're using.

> Doesn't support variable refresh rates or HDMI 2.1.

Unfortunately that makes it a deal breaker. The search continues

steelbrain··on Show HN: FFmpeg-over-IP – Connect to remote FFmpeg servers
FWIW, `bun` produced larger output files

    ~/P/s/ffmpeg-over-ip  bun build ./src/client.ts --compile --minify --sourcemap --bytecode --outfile ffmpeg-over-ip-client ; ls -lah | grep ffmpeg-over-ip-client
      [6ms]  minify  -90.92 KB (estimate)
      [3ms]  bundle  6 modules
      [44ms] compile  ffmpeg-over-ip-client
    -rwxrwxrwx    1 steelbrain  staff    56M Oct  6 16:53 ffmpeg-over-ip-client

and `deno` produced even bigger outputs

    ~/P/s/ffmpeg-over-ip  deno compile --allow-read --allow-net ./lib/client.js ; ls -lah | grep client
    Compile file:///Users/steelbrain/Projects/steelbrain/ffmpeg-over-ip/lib/client.js to client
    -rwxr-xr-x    1 steelbrain  staff    65M Oct  6 16:56 client
steelbrain··on Show HN: FFmpeg-over-IP – Connect to remote FFmpeg servers
This and the other solutions in this thread wont work with plex or the media servers. The way it works with the media servers is that there’s a variable number of outputs, and you just cant emulate that on the client side without a virtual filesystem or by some creative hacks that use multiple file descriptors (even then how do you handle dynamic?).

As for why the variable number of outputs exist in the first place, it’s because when you’re a media server, you dont want to wait until the full file is converted before serving it to the user. You want to start playing immediately so the output is chunked into multiple files

steelbrain··on Show HN: FFmpeg-over-IP – Connect to remote FFmpeg servers
FWIW, you can run an smb server from within a docker container (on the linux side). I forget which one I used but it makes the setup painless and you can configure different auth strategies as well. Network errors (little bit of packet loss) are generally handled by the underlying OS, and in case of windows, it can use multiple network paths simultaneously to give you the aggregate bandwidth.
steelbrain··on Show HN: FFmpeg-over-IP – Connect to remote FFmpeg servers
I hear you. If your usecase doesn't require live streaming of converted file, a sibling comment may fit the usecase: https://news.ycombinator.com/item?id=41745593
steelbrain··on Show HN: FFmpeg-over-IP – Connect to remote FFmpeg servers
Very cool! Thank you for sharing!
steelbrain··on Show HN: FFmpeg-over-IP – Connect to remote FFmpeg servers
This was not meant to offend. I appreciate you explaining your message further.

There's no significant IP in this utility, it's something I wrote for a usecase and it works well for that usecase. I ran the server side on a windows machine, and I did not want to setup a full blown ssh server and expose it over the network for this usecase.

Another thing was logging. The way logging is currently setup really hits the sweet spot for debugability for me. Lastly it's the rewrites. I've used the config to rewrite incoming codecs to something the machine supports.

This is a purpose built utility that does one job and IMO does it fairly well. It's definitely not as complex as Dropbox but also not as simple as an ssh alias. I appreciate you sharing the alias code (not just the comment) so if some of our peers have usecases that could be solved by it, they are welcome to use that as well!

steelbrain··on Show HN: FFmpeg-over-IP – Connect to remote FFmpeg servers
For sure! One of the software I was working with was hardcoding what codecs it would use based on the operating system it was running on. The rewrites section of the configuration allows more than just file paths, I've used it to rewrite incoming codec requests
steelbrain··on Show HN: FFmpeg-over-IP – Connect to remote FFmpeg servers
This comment gave me flashbacks to another comment I read a while ago: https://news.ycombinator.com/item?id=9224

If your usecase is solved by an alias, that's really good! I am glad you can use an alias. My usecase required a bit more so I wrote this utility and am sharing it with my peers

steelbrain··on Show HN: FFmpeg-over-IP – Connect to remote FFmpeg servers
> What problem does it solve?

For different people it's going to solve different problems. For me, most recently, I wanted to use the powerful GPU in my gaming machine for transcoding in my plex server with an integrated GPU.

> How to use it? Do you have example commands?

The Github repository should have instructions on how to use. The client usage (once you setup the configuration) is the same as ffmpeg, so anything ffmpeg ... becomes ffmpeg-over-ip-client ... -- you need a server running on the machine with the GPU and then client anywhere network-accessible.

> How is video data transferred between the client and the server?

The server and client only transfer commands, stdout/err etc. The data of the transcoded files themselves is transferred over the network mount. The README of the repository has more details here but essentially you'll want a shared filesystem between the two.

> Would it be possible to connect with SSH to a Linux server, using SFTP with FUSE or Samba with port forwarding for file sharing? This way the server could be zero-configuration (except that ffmpeg has to be installed, but the executable can also be transferred over SSH).

Configuration should be pretty straight forward but let me know if you try it and find it difficult. A template configuration file is provided and you can edit your way out of it. You can absolutely do this with port forwarding even over the internet, provided the file system mount over the network can keep up.

steelbrain··on Show HN: FFmpeg-over-IP – Connect to remote FFmpeg servers
Thanks! I developed this primarily for plex & jellyfin after struggling with Tdarr myself. For people running plex/jellyfin in containers, it's as simple as mounting the client binary at the ffmpeg path (using docker -v) and adding the config somewhere accessible (also using docker -v? lots of options here).
steelbrain··on Show HN: FFmpeg-over-IP – Connect to remote FFmpeg servers
There is an existing solution in the community called rffmpeg[1] but that did not work for me. It seems too heavy weight for what I was trying to do. It requires access to sudo, global configuration files (/etc/) and most importantly, this, which is a deal-breaker for me:

> Note that if hardware acceleration is configured in the calling application, the exact same hardware acceleration modes must be available on all configured hosts, and, for fallback to work, the local host as well, or the ffmpeg commands will fail.

I wanted to mix and match windows and linux, and it was clear rffmpeg wasn't going to work for me.

One plus rffmpeg does have is that it supports multiple target hosts, so it's useful if you want some load balancing action. Although you could do the same with ffmpeg-over-ip, just selecting the servers dynamically but rffmpeg does make it easier out of the box.

[1]:https://github.com/joshuaboniface/rffmpeg

steelbrain··on Show HN: FFmpeg-over-IP – Connect to remote FFmpeg servers
Here[1] is the original HN comment that inspired me to do a Show HN :)

[1]:https://news.ycombinator.com/item?id=41205253

steelbrain··on Show HN: FFmpeg-over-IP – Connect to remote FFmpeg servers
The latest release[1] on Github should have binaries combinations for almost everybody here. If you don't find a binary for your environment, you can probably just run the javascript files and it'll be fine.

If you are wondering why the binaries are so large, it's because they are packaged-up node.js binaries. I tried to learn a compile-to-native language to rewrite this in so you won't have to download such bloated binaries but didn't get far. I learned Swift and still have a WIP branch up for it[2]. I gave up after learning that there's no well maintained windows http server for swift.

I'm currently on my journey to learn Rust. So maybe one day when I do, you'll see the binary sizes drop.

[1]:https://github.com/steelbrain/ffmpeg-over-ip/releases/tag/v3... [2]:https://github.com/steelbrain/ffmpeg-over-ip/tree/swift-lang

← PreviousPage 3 of 7Next →