Hacker News new | comments | ask | show | jobs | submit login
Show HN: Gnomecast – A Linux Chromecast GUI with transcoding and subtitles (github.com)
176 points by keredson 11 months ago | hide | past | web | favorite | 62 comments

What I would really like (but was never able to find) would be the opposite direction, i.e cast things from me phone (or laptop) to a program running on my PC (or my android device) - i.e a software "chromecast".

Is anybody aware of such an application (that actually works)?

Oddly enough there's a Chrome extension that supports this, but it's restricted to Google Apps for Education users. https://support.google.com/edu/castforedu/?hl=en

Has anyone tried installing the extension from https://chrome.google.com/webstore/detail/google-cast-for-ed... without an education account? How is its use blocked?

I'm on a "regular" Google Apps account (ie, grandfathered into the old free one aka gmail on a custom domain).

I can use this fine, with some gotchas:

It'll only allow different users on the same gsuite account to connect. I can't, for example, invite a personal gmail account or an account on a different gsuite domain.

We use Google Meet at work for meetings, which also supports "Casting to a meeting", but that requires gsuite as well.

I just tried it and it seems to work even though I don't have an Education account. I don't have any modern Android devices though so I just casted one tab on my laptop to another tab on my laptop.

On mac, I've used reflector in the past which makes your mac act as a chromecast receiver. But seems like it only supports screen casting.


BubbleUPNP on the mobile. On the PC, depending on your use case, any DLNA implementation like Rygel (GNOME) or Kodi will do.

Chromecast itself is locked down, you need to authenticate to a sender, so don't expect a software compatible version. You can use a capture device however.

Miracast could work for that. Most Windows laptops support it as source and destination. Android phones support it as (just?) source. Recent-ish smart TVs should support it. It's got some of that "open standard" flakiness, but it's basically open-chromecast.

There's a 'MiracleCast' implementation for Linux. I'm not sure how mature it is but it aims to stream to and from your desktop.


> not sure how mature it is

I've been following the project for a while and the answer, unfortunately, is "not very". It does actually work as a sink (WiFi P2P discovery included) and there's a WIP branch with source support (eg for sending your screen to another device).

IIRC it still requires exclusive control over your WiFi card so it doesn't play nice with NetworkManager or similar, and it's just all around just not really ready for casual use. The main dev has been great though and the core functionality is shaping up nicely.

VLC can do that. Although I haven't tried it recently.

Been writing a toy project like that. App on PC listen to pushbullet stream and when url matches given criteria, it will then send the url to chromecast. Not finished, not even working yet :)

I use screen stream, it's floss, can send data to any video player or open broadcast studio... but no audio, video only.

you and me man but the client verifies the server has a certificate at least according to https://github.com/thibauts/node-castv2

AirServer or Reflector.

This works great, thank you. Maybe I can stop dropping video files on a Chrome browser tab. Why does this work so easily but the new VLC still doesn't find my chromecast?

> Why chromecast support took so long

> Chromecast support is everywhere and VLC took years to get it, right, but there are plenty of good reasons for it:

> First of all, VideoLAN is a nonprofit organization and not a company. There are few developers paid for making VLC, most of them do it in their free time. That’s how you get VLC for free and without any ads!

> Also, VLC is 100% Open Source and Chromecast SDK isn’t: We had to develop our very own Chromecast stack by ourselves. This is also why there is no voice actions for VLC (except with Android Auto), we cannot use Google Play Services.

> Furthermore, Chromecast is not designed to play local video files: When you watch a Youtube video, your phone is just a remote controller, nothing more. Chromecast streams the video from youtube.com. That’s where it becomes complicated, Chromecast only supports very few codecs number, let’s say h264. Google ensures that your video is encoded in h264 format on youtube.com, so streaming is simple. With VLC, you have media of any format. So VLC has to be a http server like youtube.com, and provide the video in a Chromecast compatible format. And of course in real time, which is challenging on Android because phones are less powerful than computers.

> At last, VLC was not designed to display a video on another screen. It took time to properly redesign VLC to nicely support it. The good news is we did not make a Chromecast specific support, it is generic renderers: in the next months we can add UPnP support for example, to cast on any UPnP box or TV!


I'm sure it will get better, but give them some more time.

I understand why it took so long, but the implementation in VLC3.0 doesn't work for me. It never finds my Chromecast and I have no idea why. This app seems so far to work flawlessly.

thanks! i'm with you on disappointment w/ VLC's latest release. normally they do great work and i love VLC overall, but i waited so long for the casting and it's buggy as heck, and still didn't do subtitles! (my wife's EAASL so it's important for us :) of course all i did was just wrap a GUI around an existing python lib that already worked great, so i really just did all the easy stuff.

Sadly I agree. I had a lot of issues casting from VLC on mac OS.

The legwork on usability is what makes code into software. That GUI matters.

it is supposed to work on new release 3.0 (it's live)

Supposed to but doesn't, and I don't know why since this works great.

> This is a native Linux GUI for casting local files to ChromeCast devices.

Love it, good work.


I am looking forward to trying it when I get home, does it support casting audio (eg. an mp3, flac, etc.) to a Chromecast Audio?

casting a video's audio track to an audio device works. adding support for the audio container should be trivial. can you open an issue on GH for it so i can ping you when done?

There was already an issue in GH, but I added a little more detail to it. Thanks for a very cool project!

I recently read about VLC supporting casting to cast devices. How would this compare?

haven't checked the latest version but 1 month ago there was no chromecast support in the stable release channel

VLC 3.0 was released last week and has Chromecast support. It's been in the beta channel for a long time, but apparently took a lot of work to get edge cases sorted etc.

This is great!

I personally have been using https://getvideostream.com/ which I like, but awesome to see an open source alternative.

I find it sad that this took several years to make, only because I had hoped when Google released the chromecast, it would be the "no-brainer" way to stream media to your TV. Sadly, it didn't work out that way.

There's also this python based cli caster https://github.com/skorokithakis/catt

nice! starred.

Can you cast a portion of your screen with this? What I'd love to do is cast a website which I can use as a "dashboard" with custom content

Why not just use the Chrome extension?

Not the GP: Maybe because you need to install Chrome to use that.

I have a Chromecast, but don't use/have/want Chrome.

Anyone know of something similar for Windows?

Airflow works pretty flawlessly (not free software, however).

VLC since 3.0 is supposed to support Chromecast

yeah, but they don't support subtitles as far as i can tell. my frustration w/ VLC's casting is what drove me to write this.

You wrote on your product page:

"Chromecast only supports a handful of subtitle formats, .srt not included. But it does support WebVTT. So we extract whatever subtitles are in your video, convert them to WebVTT, and then reattach them to the video through Chomecast's API."

Did you attempt to get this ported to VLC?

I did not. But nor did I write the conversation code. That was an existing python lib.

Is there something amiss with VLC's Chromecast abilities? I haven't had a chance to test it out yet, but was really happy to see it in the changelog

The new VLC never finds my chromecast, and this does right away. Apparently a lot of people are having nonspecific trouble with the new VLC feature.

Yeah, there is no subtitles support for now. It will be supported in the next release.

VLC does not support certain formats. I haven't dug into it, but I don't think it supports transcoding video to a chromecast endpoint either.

Reportedly does.

>If media codecs are supported by your Chromecast device, VLC only acts as a streaming server (which is battery consuming). If not, VLC will transcode and stream media, which is highly cpu and battery consuming.

[1] https://geoffreymetais.github.io/features/vlc-30/#chromecast

also they're transcoding to V8 and webm. so pretty much transcoding everything.

No, VLC does the transcoding on the fly, and that's why it's not very easy.

i actually wrote this to transcode on the fly (if you look at the code there's "wait_for_byte" etc), but there are certain limitations i discovered. mp4 files have what's called a "MOOV atom" which is a descriptor stored at either the beginning or the end of the file. but you can only write it once you're completed transcoding. so that pretty much kills it for mp4. vlc uses webm which doesn't have this limit, but you can't put a h264 stream in a webm container, so you HAVE to transcode it to V8, which is slow as balls. (0.1x in my testing, tho you can force 1x if you accept lower quality.) considering almost no one has media in V8, i decided to opt for mp4. but it works if you switch it back to v8+webm.

Plex works on Linux/windows/OS X and does transcoding and subtitles, but I don’t know if it can directly cast from the PC or if you have to also run a client on your phone to start the the cast.

You can cast directly from your PC with it.

This works only in chrome though.

This is written in python. Anyone able to get this running under msys with gtk3, etc

I really like that somebody has written in in Python. There is one similar tool which was written in NodeJS, I couldn't get that to work.

One question - Is the back-end modular enough, that anybody can read the source and write the front-end in PyQt?

yes. the whole thing's only like 500 lines of code. literally wrote it in about 2 evenings after work. should be easy to port to pyqt.

i haven't tried, but you're right in theory very possible. i'm really a fan of OS specific GUIs tho - i'd advise someone use the same underlying python casting API to write a native windows frontend.

that said, not opposed to PRs that add support for it.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact