GithubHelp home page GithubHelp logo

Comments (15)

MayaPosch avatar MayaPosch commented on May 15, 2024

Hello, and thank you for your interest in the project!

The current capabilities and features are listed in the Readme for the project. At this point RTMP streams can be played back on the NymphCast server. I imagine that server functionality (along with transcoding) would require a significant amount of work.

I'll of course gladly accept ideas and pull requests :)

from nymphcast.

Florent4223 avatar Florent4223 commented on May 15, 2024

thank you for your reply
I read readme but I needed more information.
typically instead of (or in addition) redirect the flow to the RPI's hdmi port, could we redirect it to a flow software for example FFMPEG or GSTREAMER?
on readme : "3rd party audio / video streaming protocol support on the server side" as...ffmpeg or gstreamer?

I am working on a project (on a RPI4) with gstreamer which generates an RTMP stream from a camera. This flow is then processed by an NGINX server for broadcasting.
Ideally the idea would be to keep roughly the same architecture as possible to broadcast the camera of a smartphone.

from nymphcast.

MayaPosch avatar MayaPosch commented on May 15, 2024

NymphCast already uses ffmpeg internally, which means it's mostly a matter of implementing code that exposes this functionality. At this point such a feature has not been planned, however.

from nymphcast.

Florent4223 avatar Florent4223 commented on May 15, 2024

thank you for your return.
Can we interact on the ffmpeg command line directly in the code?

Personally for my project I planned to use chromecast (out of spite) ... I would much prefer to use yours.
If there is a direct possibility to modify the processing of ffmpeg and if you can tell me where in the code, I can test in this direction.

from nymphcast.

gabrielstuff avatar gabrielstuff commented on May 15, 2024

Hello,
The project looks fantastic and I will certainly try it. From what I understand it aims at replacing closed source solution from industrial such as Google Chromecast and other Anycast Miracast compatible devices.

What I'd like to know, if it is compatible with a specific standard, or is it a complete new solution that could be integrated in the device of our choice and in the app of our choice.

i.e:

  • I need to develop or add the capabilities to stream to nymphcast on my existing mobile apps
  • I need to integrate the nymphcast in my desktop app in order for my user to stream from my mobile app

Thanks a lot for the clarification. I'm sorry if I miss something somewhere, I did not find any piece of information regarding :

Miracast / Unicast / Chromecast / Airplay

Thanks a lot !

from nymphcast.

MayaPosch avatar MayaPosch commented on May 15, 2024

@Florent4223 Sorry for taking a while to answer. Could you summarize your requirements if you are still interested in such a solution?

@gabrielstuff NymphCast uses its own (RPC-based) protocol. There is no compatibility with other systems as they're either proprietary or overly complicated to implement.

The NymphCast client library is the current C++ reference implementation for client-side communications with a NymphCast server (receiver). The 'client' implementation shows how to use it in a CLI application, with the Qt-based NymphCast Player showing integration of it in a GUI-based application.

An Android-based client is also under development that uses the NDK with the client library.

from nymphcast.

Ramblurr avatar Ramblurr commented on May 15, 2024

NymphCast uses its own (RPC-based) protocol. There is no compatibility with other systems as they're either proprietary or overly complicated to implement

I came to this issue looking to see if the existing android apps I have with a Google Cast button (spotify, NPR, other radio apps) could cast to a NymphCast server without support from the developer. Your quoted reply seems to indicate that this is not possible. Is that correct?

from nymphcast.

MayaPosch avatar MayaPosch commented on May 15, 2024

@Ramblurr That is correct. ChromeCast protocol receivers ('servers') require authentication by clients (like the Spotify app) using secret keys that only Google knows. This means effectively that implementing one's own ChromeCast receiver is impossible.

In NymphCast the idea to circumvent this in two ways: a) by allowing these client apps to also implement NymphCast support, and b) by using NymphCast server-side apps to provide access to these services without first-party app support.

As an example, there's a SoundCloud app in NymphCast that allows one to search and play back all publicly available music on that service. This can be extended to other services, including Spotify, Netflix, YouTube, etc.

I hope this answers your question :)

from nymphcast.

Ramblurr avatar Ramblurr commented on May 15, 2024

Brilliant @MayaPosch, it definitely answers my question. I didn't realize the chromecast protocol was so locked down, I figured it would just take some reverse engineering.

Looking forward to NymphCast's future!

from nymphcast.

MayaPosch avatar MayaPosch commented on May 15, 2024

Thank you, @Ramblurr :)

Back with the CastV1 protocol (based on DIAL) it was possible to write one's own client and server, but with the v2 protocol which Google introduced with ChromeCast v2, they use a full authentication chain with secret keys.

Some references on the v2 protocol:

The receiver authentication challenge-response:
https://blog.oakbits.com/google-cast-protocol-receiver-authentication.html

Essentially, while even a DIY client can authenticate that a receiver is genuine, a genuine client (using the Cast SDK) will reject anything but a genuine receiver (providing the correct response). In addition, the actual Cast apps (Netflix, Spotify, etc.) are loaded from remote servers (HTML & JS), which appear to have their own authentication checks and secret keys for backend APIs.

from nymphcast.

mapl avatar mapl commented on May 15, 2024

I am wondering how VLC does it, since it can stream media to a Chromecast? I am also using https://airflow.app/ which works very well.

from nymphcast.

MayaPosch avatar MayaPosch commented on May 15, 2024

@mapl Streaming to a ChromeCast instance is a supported feature, it is the 'build your own receiver' part that's impossible, unless you want to build the equivalent of a first-gen ChromeCast with the v1 DIAL protocol.

from nymphcast.

mapl avatar mapl commented on May 15, 2024

I didn't catch that. Thx! :)

So the nymphcast receiver could not just output the stream to a directly attached Display or GUI, but also stream to a Chromecast?

from nymphcast.

MayaPosch avatar MayaPosch commented on May 15, 2024

Yes, that would be a possibility, just like streaming to e.g. DLNA or RTMP devices, I guess. This falls outside the use cases of NymphCast, of course.

from nymphcast.

mapl avatar mapl commented on May 15, 2024

This would still be a neat extension to the Project to have an Output or Render Plugin for the NC receiver :)

from nymphcast.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.