Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Request: Remote tuner #40

Open
lars18th opened this issue Aug 26, 2024 · 13 comments
Open

Request: Remote tuner #40

lars18th opened this issue Aug 26, 2024 · 13 comments

Comments

@lars18th
Copy link

Hi @deeptho ,

Thank you for this impresive project. And congratulations for it.

Now I see that this project is very focused on the Blind Scan and the Spectrum Analysis (and for this I'm still using the CrazyCat's Crazysacan because it runs on Windows notebooks with USB tuners). But I feel your NeumoDVB could be useful for other uses if you add support for remote tuners. For example with the SAT>IP protocol. Using these tuners the main computer doesn't require to have any physical tuner, and tuners can be shared over the Network. In fact, in my infrastructure I'm using only STBs with SAT>IP server support. And then I only use physical tuners (USB) for testing actions (spectrum scan, etc.).

So, the request is this: Add support for SAT>IP.
What you think about this?

@deeptho
Copy link
Owner

deeptho commented Aug 27, 2024

If I ever add such support, it will probably not be compatible with sat>ip as that protocol is quite limited.

I also fail to understand what would be the benefit over using existing solutions such as minisatip.

@lars18th
Copy link
Author

Hi @deeptho ,

Thank you for the response.

If I ever add such support, it will probably not be compatible with sat>ip as that protocol is quite limited.

I'm working with the SAT>IP protocol for years, and I can't consider it limited. Why you say that?

I also fail to understand what would be the benefit over using existing solutions such as minisatip.

The minisatip is a pure SAT>IP server. Nothing more. But with neumodvb we can play channels, do scannings, etc. My idea is to use it as a "command-line" tool to schedule scannings, and then use the info to create M3U files for my SAT>IP server. And the trouble is that I only use network tuners (aka SAT>IP servers). For this reason, the current implementation of the neumodvb is not runnable. Please, take note that when running software in containers physical devices (like DVB tuners) will be (in general) in the network, and not physically attached.

So please, consider it.
Regards.

@deeptho
Copy link
Owner

deeptho commented Aug 28, 2024

Hi @deeptho ,

Thank you for the response.

If I ever add such support, it will probably not be compatible with sat>ip as that protocol is quite limited.

I'm working with the SAT>IP protocol for years, and I can't consider it limited. Why you say that?
Can it handle a positioner?
Can it handle blindscan?
Can it handle spectrum scan?
Can it handle sending constellation samples?
Can it handle more than 4 sat positions?

4x no. The 5th question is a maybe (I did not check). So it is limited.

I also fail to understand what would be the benefit over using existing solutions such as minisatip.

The minisatip is a pure SAT>IP server. Nothing more. But with neumodvb we can play channels, do scannings, etc. My idea is to use it as a "command-line" tool to schedule scannings, and then use the info to create M3U files for my SAT>IP server.

That can be easy to program yourself: neumodvb has pything binding (admittedly not
the cleanest one and not the best documented one). which make it easy to access its datatase and then generate m3u.
It is not implemented and I have no plans to implement it, but it is not very difficult.
See for example https://raw.githubusercontent.com/deeptho/neumodvb/master/src/neumodb/testneumodb.py
(may need some updates(

And the trouble is that I only use network tuners (aka SAT>IP servers). For this reason, the current implementation of the neumodvb is not runnable. Please, take note that when
running software in containers physical devices (like DVB tuners) will be (in general) in the network, and not physically attached.

I ave been considering implementing runing neumodvb as a server and as a client and
allowing one to connect to the other. However without satip.

That would allow all the functionality I want. satip is too limited for that.

So please, consider it. Regards.

This is a hobby. I focus mostly on what I consider useful myself and I need to
have the time.

It does not mean that your request is not useful. It is just a matter of priorities,
and generating m3u files seems more like a task for some webservice.

@lars18th
Copy link
Author

Hi @deeptho ,

Thank you for your response. I understand your position. And I try to comment something more... 😉

I'm working with the SAT>IP protocol for years, and I can't consider it limited. Why you say that?
Can it handle a positioner?
Can it handle blindscan?
Can it handle spectrum scan?
Can it handle sending constellation samples?
Can it handle more than 4 sat positions?

4x no. The 5th question is a maybe (I did not check). So it is limited.

Positioner: The SAT>IP specification con handle up to 64 orbital positions. How the server selects them is not defined. So they can be fixed antennas or a positioner. If you configure your server with a DiseqC 1.2 positioner, you only need to assign every sat position for each source.

Blindscan: Using the SAT>IP protocol you can select ANY frequency, and ANY tunning parameters (including AUTO). Therefore if your server tuner supports blindscan, then you can do it.

Spectum Scan & Constellation Samples: Obviously the SAT>IP protocol only streams the MPEG-TS data and some tunning parameters (Strength and SNR).

Therefore, focusing only on the blindscan and spectrum analysis, this protocol is not valid because it can't provide the needed data. But I have now two questions:

  1. It's your software only useful for this task? Using it with a regular tuner (no spectrum data) it don't have sense? Please, consider to execute it with other tuners disabling these extended functionalities. I feel some users (including myself) will be happy with this change.

  2. You will confortable if you have access to a SAT>IP extension that provide the required functionality? I've some ideas to provide the data that you need. So if you want we can discuss about it.

That can be easy to program yourself: neumodvb has pything binding (admittedly not the cleanest one and not the best documented one). which make it easy to access its datatase and then generate m3u. It is not implemented and I have no plans to implement it, but it is not very difficult. See for example https://raw.githubusercontent.com/deeptho/neumodvb/master/src/neumodb/testneumodb.py (may need some updates(

Nice! This is very useful. The problem now is how to execute neumoDVB in my infrastructure (without a compatible tuner).

And the trouble is that I only use network tuners (aka SAT>IP servers). For this reason, the current implementation of the neumodvb is not runnable. Please, take note that when
running software in containers physical devices (like DVB tuners) will be (in general) in the network, and not physically attached.

I ave been considering implementing runing neumodvb as a server and as a client and allowing one to connect to the other. However without satip.

This is great too. A client-server implementation will be more flexible. However, if you're thinking on create a new protocol for your client-server communication, I recommend instead to reuse the SAT>IP protocol. I repeat that I've ideas to extend it with the data/commands that you may need.

This is a hobby. I focus mostly on what I consider useful myself and I need to have the time.

It does not mean that your request is not useful. It is just a matter of priorities, and generating m3u files seems more like a task for some webservice.

I agree with that. I just want to help.
Regards.

@andimik
Copy link

andimik commented Aug 29, 2024

What about RealVNC? I also allows user to log on remotely.

@lars18th
Copy link
Author

What about RealVNC? I also allows user to log on remotely.

Sorry? Any VNC/RDP technology is for Remote UI access, and not a RPC technology to interconnect two process.

My request it that neumoDVB supports "local attached tuners" and "remote network tuners". All the process is then running in a "local computer". However, until it can (or not) implement this functionality, the first request (after the initial discussion) is to support "regular tuners" and not only TBS-6909x or similar DX-aware tuners. I hope that @deeptho will consider it.

Regards.

@deeptho
Copy link
Owner

deeptho commented Aug 29, 2024

Blindscan: Using the SAT>IP protocol you can select ANY frequency, and ANY tunning parameters (including AUTO). Therefore if your server tuner supports blindscan, then you can do it.

It cannot return the found tuning parameters. Given your responses,
it is no longer clear to me if you want to use a sat>IP lnb as the input
for neumodvb or neumodvb as a server offering virtual sat>IP lnbs.

Spectum Scan & Constellation Samples: Obviously the SAT>IP protocol only streams the MPEG-TS data and some tunning parameters (Strength and SNR).

1. It's your software only useful for this task? Using it with a regular tuner (no spectrum data) it don't have sense? Please, consider to execute it with other tuners disabling these _extended_ functionalities. I feel some users (including myself) will be happy with this change.

The driver part yes. sat>IP is highly specialised.

2. You will confortable if you have access to a SAT>IP _extension_ that provide the required functionality? I've some ideas to provide the data that you need. So if you want we can discuss about it.

I have all the data I need but I do not have the time to implement something
just because someone needs it.

That can be easy to program yourself: neumodvb has pything binding (admittedly not the cleanest one and not the best documented one). which make it easy to access its datatase and then generate m3u. It is not implemented and I have no plans to implement it, but it is not very difficult. See for example https://raw.githubusercontent.com/deeptho/neumodvb/master/src/neumodb/testneumodb.py (may need some updates(

Nice! This is very useful. The problem now is how to execute neumoDVB in my infrastructure (without a compatible tuner).

The drivers are compatible with all tuners that the tbs or linux drivers are
compatible with. neumodvb is a client program, not a server. If it ever becomes
a server, then this will be a specialised server supporting remote blindscan
etc. What does "compatible tuner" even mean?

And the trouble is that I only use network tuners (aka SAT>IP servers). For this reason, the current implementation of the neumodvb is not runnable.

If it is not runnable on your server, then I do not understand your use case.
Streaming to a remote computer is already possible.

neumodvb does not support sat>ip INPUT, but that is something else.
It also does not support configuring/selecting a "virtual" lnb via sat>IP

Please, take note that when
However, if you're thinking on create a new protocol for your client-server communication, I recommend instead to reuse the SAT>IP protocol. I repeat that I've ideas to extend it with the data/commands that you may need.

Yes, you recommend me to implement your use case. That was clear from
the start.

I agree with that. I just want to help. Regards.

Sure, ideas are always welcome.

@deeptho
Copy link
Owner

deeptho commented Aug 29, 2024

What about RealVNC? I also allows user to log on remotely.

Sorry? Any VNC/RDP technology is for Remote UI access, and not a RPC technology to interconnect two process.

My request it that neumoDVB supports "local attached tuners" and "remote network tuners". All the process is then running in a "local computer". However, until it can (or not) implement this functionality, the first request (after the initial discussion) is to support "regular tuners" and not only TBS-6909x or similar DX-aware tuners. I hope that @deeptho will consider it.

Regards.

It does support locally attached tuners, and that is half of what you want.
It supports streaming (as a server) and so that covers viewing on another pc as well (not as well as tvheadend, but like I wrote: if someone wants to make a webinterface, then this is possible in python)

And indeed: as soon as your computer with the attached LNBs has sufficient memory and compute power, you can run neumodvb on that computer and
display it elsewhere, using xpra for example. On a high speed network that
runs reasonably well, albeit with some screen corruption, but it is enough
to run spectrum scan, stream channels to another pc, ...

In a future version I am planning a remote control interface. Then neumodvb could run as a server without a gui. It still requires enough memory and compute power on the computer with the lnbs, but a raspberri PC would
suffice.

@lars18th
Copy link
Author

lars18th commented Sep 6, 2024

Hi @deeptho ,

Given your responses, it is no longer clear to me if you want to use a sat>IP lnb as the input for neumodvb or neumodvb as a server offering virtual sat>IP lnbs.

My use case: no TBS tuners, only SAT>IP standalone servers attached to multiple LNBs. I want to run neumodvb in any of my linux machines connecting to the SAT>IP tuners. And I want to use neumodvb only with commandline to obstain scanning data. So in my case SAT>IP is acting as the input for neumodvb. And then neumodvb is a standalone software that instead of using a local attached DVB tuner is using a remote network DVB tuner.

Blindscan: Using the SAT>IP protocol you can select ANY frequency, and ANY tunning parameters (including AUTO). Therefore if your server tuner supports blindscan, then you can do it.

It cannot return the found tuning parameters

Yes, it can. The DESCRIBE command includes the status of the tuner. Check this example from the specification document:

Request>
DESCRIBE rtsp://192.168.178.57:554/ RTSP/1.0
CSeq:7
Accept: application/sdp
Connection:close

Response>
RTSP/1.0 200 OK
Content-Length:256
Content-Type:application/sdp
Content-Base:rtsp://192.168.178.57/
CSeq:7
v=0
o=- 35781181 35781181 IN IP4 192.168.178.57
s=SatIPServer:1 4
t=0 0
m=video 11784 RTP/AVP 33
c=IN IP4 239.0.0.7/1
a=control:stream=16
a=fmtp:33 ver=1.0;src=1;tuner=1,123,1,4,10744.00,h,dvbs,qpsk,off,0.35,22000,56;pids=0,400,401,402
a=sendonly

The relevant part is the "media format description" with value "33" from the Session Description Protocol. This is reserved for the SAT>IP protocol, and includes "lock status", "signal power", "quality", "tuner options" and "used pids".

The full description is:

a=fmtp:33 ver=<major>.<minor>;src=<srcID>;tuner=<feID>,<level>,<lock>,<quality>,<frequency>,<pol
arisation>,<system>,<type>,<pilots>,<roll_off>,<symbol_rate>,<fec_inner>;pids=<pid0>,…,<pidn>

So if you want these parameters then you can request/get them.
For other data like Spectum Scan & Constellation Samples it will be necessary to add some custom method to share it. But the SAT>IP protocol can be extended.

What does "compatible tuner" even mean?

A DVB tuner that is not TBS with Spectum Scan & Constellation Samples capabilities. For example, I have some standard DVB-T USB tuners with Linux support (RTL based, for SDR). And neumodvb only supports a short list of hardware tuners. Why not extend the use to all dvb linux tuners?

In a future version I am planning a remote control interface.

Good. But I recommend to improve the use of the command line as well. I say this from the point of view of an engineer and not from the point of view of a regular user.

A congratulations for this good project!

@deeptho
Copy link
Owner

deeptho commented Sep 12, 2024

Thanks for the clarification.

One clarification from my side: neumoDVB supports ALL devices that linux supports, but only the functionality that their drivers support. So typically no blindscan, spectrum, ... You can create muxes yourself.

Supporting IP-LNBs is possible, but it requires time and devices. I don't have any and also am not planning to buy any. tvheadend seems to already do most of what you want and while it has some downsides,
it is usable (for me).

@lars18th
Copy link
Author

Thanks @deeptho ! 😉

One clarification from my side: neumoDVB supports ALL devices that linux supports, but only the functionality that their drivers support. So typically no blindscan, spectrum, ... You can create muxes yourself.

Nice!

Supporting IP-LNBs is possible, but it requires time and devices. I don't have any and also am not planning to buy any.

You can create your own SAT>IP server with minisatip. Any Linux machine with a DVB tuner can run it (including a small Raspberry Pi). It's equivalent to a physical SAT>IP server (in fact, some STB boxes are using minisatip as it's own SAT>IP server).

And regarding TVH, it's great. However, it is not oriented to "command line". My idea is if your neumodvb, with all command line tools, can work as a SAT>IP client to drive a remote tuner. Instead of using only the DVB API, expand the code to support other inputs, like SAT>IP servers and/or HDHomeRuns.

What you think?

@deeptho
Copy link
Owner

deeptho commented Sep 13, 2024

Thanks @deeptho ! 😉
You can create your own SAT>IP server with minisatip. Any Linux machine with a DVB tuner can run it (including a small Raspberry Pi). It's equivalent to a physical SAT>IP server (in fact, some STB boxes are using minisatip as it's own SAT>IP server).

I know, but why would I? Many things are possible. I think you
underestimate the work involved.

And regarding TVH, it's great. However, it is not oriented to "command line". My idea is if your neumodvb, with all command line tools, can work as a SAT>IP client to drive a remote tuner. Instead of using only the DVB API, expand the code to support other inputs, like SAT>IP servers and/or HDHomeRuns.

That is not a priority currently.

What you think?

@lars18th
Copy link
Author

Hi @deeptho ,

Yes, time is really limited. Me too. For example, I use some of my spare time to fix bugs and enhance the minisatip tool. If you just want to try it out, installing this SAT>IP server on any of your Linux computers with a DVB tuner is very straightforward. No more than 5 minutes.

However, to add some support to neumodvb it's true that it's quite time consuming. I understand that. I just ask you to write it as a future idea. But in any case, please focus on the command line tools. I find them very useful. 😉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants