|
SageTV Github Development Discussion related to SageTV Open Source Development. Use this forum for development topics about the Open Source versions of SageTV, hosted on Github. |
|
Thread Tools | Search this Thread | Display Modes |
#1
|
||||
|
||||
Cross-platform full client ideas
So, I'm thinking that the current miniclient only restriction on linux/mac needs to be solved at some point. In that vein, i started looking at media playback systems, and came across MPV. It appears to be a carry-on from mplayer2 and MPlayer, its open source, and seems pretty easy to plug into a different app (has a message based C API).
Does anyone have any experience with this? Opinions?
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#2
|
||||
|
||||
I'm guessing by "full" client you mean a SageTV client, like the windows client (there is no full client for linux or mac).
I've been thinking about creating a cross platform "miniclient" using the Android sources (much of which is portable for a desktop) and using vlc4j for the media engine and javafx for the UI. I'm pretty sure vlc4j runs on all 3 major platforms, and it support creating custom datasources (from java) so, it would be fairly straight forward to integrate with sagetv miniclient apis. But again... All that is around a miniclient architecture which is very different than creating a full client architecture. But either way, yeah, I think we need cross platform solution.
__________________
Batch Metadata Tools (User Guides) - SageTV App (Android) - SageTV Plex Channel - My Other Android Apps - sagex-api wrappers - Google+ - Phoenix Renamer Downloads SageTV V9 | Android MiniClient |
#3
|
|||
|
|||
Not that I can Java if my life depended on it, but I'm available to test, write docs, cheer on the effort. If the conversation is cross platform, a thought I would offer is ... does this include cross architecture from a planning perspective? A full client as a distro for a Raspberry Pi or other micro P would be amazing.
I know there was an earlier conversation about an RPI as a basic server. I like the idea that there is something simple enough that I could get a couple boxes, some know components and easy set up my relatives house without being 24/7 phone support (aka. it just works).
__________________
Server: Centos Server 14.04 LTS - 64Bit, VM in XenServer, 2 cores of a Intel i7, 2-4 GB Ram, 8 GB system Disk, 1.8 TB storage, SageTV V9.0.4.232, HDHR Prime x 1 Clients: PC Client x 1, HD-300 x 1, AppleTV x 2, WebClient (phone/tablet) x 3 |
#4
|
||||
|
||||
One of the other things to consider in this is that ideally you have a layer of integration between the UI rendering system and the media player. The reason for this is so that you can blend graphics on top of the video. On PCs, this has always been done using the 3D rendering system...which means the UI needs to have integration with a 3D rendering system and then the media player needs to render its output to a 3D texture (or to a block of shared memory...which then uses IPC or an in-process mechanism depending upon architecture so then the graphics system can copy the data into a texture) and then composite it in the rendering stage. That's why we added a special vo_stv output plugin to MPlayer which does exactly that...renders the video to a region of shared memory, uses system level mutexes for signaling to the UI renderer, and then the UI system copies that into a texture for compositing.
This little 'feature' of compositing the UI with video has been a HUGE pile of work over the history of SageTV in order to ensure that always works right. And you *should* be able to run a full SageTV client on Linux already...I haven't done it in a long time; but I know at one point we had that working with the OpenGLRenderer and MPlayer. That's why there's a LinuxMPlayerPlugin in the SageTV core (even though it's used on Windows as well). Although after looking at the code some more...the JOGLSageRenderer is no longer there (I'm sure I can find it though)...and the LinuxMPlayerPlugin looks like it was using overlay for video compositing w/ color key. OK...well after looking at that further...it's really in a far off state from something that would still work. The OpenGL implementation we used at one point relied on other components which we abandoned long ago. Something I always wish I had done was make the rendering system and media players pluggable wrt miniclient vs. full client...in theory it's not all that complicated to do it; but it would take a lot of work.
__________________
Jeffrey Kardatzke Founder of SageTV |
#5
|
|||
|
|||
I prefer a miniclient to a full client since it greatly simplifies things like plugins, fanart and configuration which (usually) have to be done separately on each full client. It is much easier to have everything based off of the server as is the case with extenders and PS.
But the problem with PS has always been the shortcomings that don't allow it to play some times of video, like 1080i h.264 files if I remember correctly. And that is the bulk of recordings for me as HD-PVRs are my main tuners. If that is fixed then I would prefer to deploy PS/miniclient rather than full clients, even for full Windows PCs.
__________________
New Server - Sage9 on unRAID 2xHD-PVR, HDHR for OTA Old Server - Sage7 on Win7Pro-i660CPU with 4.6TB, HD-PVR, HDHR OTA, HVR-1850 OTA Clients - 2xHD-300, 8xHD-200 Extenders, Client+2xPlaceshifter and a WHS which acts as a backup Sage server |
#6
|
|||
|
|||
Quote:
__________________
Channels DVR UBUNTU Server 2 Primes 3 Connects TVE SageTV Docker with input from Channels DVR XMLTV and M3U VIA Opendct. |
#7
|
|||
|
|||
I know as I have 9 extenders but can't run more than about 3 simultaneously. I am hoping that soon someone will get the 64 bit Java working on Windows in V9 which should solve that problem.
__________________
New Server - Sage9 on unRAID 2xHD-PVR, HDHR for OTA Old Server - Sage7 on Win7Pro-i660CPU with 4.6TB, HD-PVR, HDHR OTA, HVR-1850 OTA Clients - 2xHD-300, 8xHD-200 Extenders, Client+2xPlaceshifter and a WHS which acts as a backup Sage server |
#8
|
||||
|
||||
Quote:
Maybe I'm misremembering, or out of date, but I've always had the impression/experience that placeshifter video quality just wasn't there compared to Client or Extenders, especially on Windows. A Windows version of Placeshifter that uses LAV and madVR would be awesome... Or, Kodi actually has good video quality (not so sure about deinterlacing) and it's cross platform. If Placeshifter could match that, an OpenELEC like distro with Placeshifter would be sweet. Though with a 64 bit server that's not really a problem I believe. |
#9
|
||||
|
||||
Quote:
I also realize that miniclients are less of a limitation now with the 64-bit server in the winds, and UI performance on them for local is much better than it was many years ago with better LAN performance. That said, I do have a long term reasoning for this. I would really like to have an offline sync capability to a remote client. Already, a full client has almost everything it needs to work offline. I can envision being able to set sync rules, or manually flag files for synching - these could be extensions of the current Convert function - that would copy or convert files to storage local to the client. The client, then, would have synced flags and local url's for the files synced on that particular client - this way, when a client goes offline from the server, it would still be able to navigate the media, and hopefully filter returns down to just locally synced content, and allow playback of such. Like I said, long-term - and unfortunately, I can software architect a hell of a lot better than I can actually code - so this ultimately ends up being pie in the sky wishes for myself - in hopes that other who can actually help make this happen agree with it's use case.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#10
|
|||
|
|||
A thought....
Is the code for the standalone mode of the HD300 part of the open source and if so could it be leveraged to make a miniclient that could also work standalone...or is that one off code specific to the HD300?
__________________
If you wish to see what I am up to and support my efforts visit my Patreon page |
#11
|
|||
|
|||
Quote:
Quote:
My question is this... Instead of a server, miniclient and placeshifter, why not a central server, a mini local server and place shifter? The server already...
Given you would have to push /stream all the media anyway, does it matter if its the server code base versus a mini client code base? I think this is how the Linux servers/clients always kinda worked (only not replication). I imagine some sort of peer to peer server arrangement where one may have the responsibility to record, and maybe access a video repository, but then anyone else could stream from/to anyone else. (v10)
__________________
Server: Centos Server 14.04 LTS - 64Bit, VM in XenServer, 2 cores of a Intel i7, 2-4 GB Ram, 8 GB system Disk, 1.8 TB storage, SageTV V9.0.4.232, HDHR Prime x 1 Clients: PC Client x 1, HD-300 x 1, AppleTV x 2, WebClient (phone/tablet) x 3 |
#12
|
||||
|
||||
Quote:
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#13
|
|||
|
|||
Maybe I said it badly, but I was technically proposing dropping the full client all together and always running the two separate pieces (server and placeshifter). Alternatively, does everything become a full client. From an evolution perspective, there are three very similar pieces that all require support, what path forward provides the best experience, but simplifies the suport plan?
__________________
Server: Centos Server 14.04 LTS - 64Bit, VM in XenServer, 2 cores of a Intel i7, 2-4 GB Ram, 8 GB system Disk, 1.8 TB storage, SageTV V9.0.4.232, HDHR Prime x 1 Clients: PC Client x 1, HD-300 x 1, AppleTV x 2, WebClient (phone/tablet) x 3 |
#14
|
||||
|
||||
Quote:
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#15
|
|||
|
|||
Don't you have to do a complete config on full clients, including figuring out which plugins are server plugins and which are client plugins, load all of those plugins on the client and then configure from scratch?
I always found that a major pain in the butt, especially prior to being able to export-import configs that came with Gemstone. One feature that would be great would be a "clone from server" function where you could clone all of the plugins and config from the server on to the full client.
__________________
New Server - Sage9 on unRAID 2xHD-PVR, HDHR for OTA Old Server - Sage7 on Win7Pro-i660CPU with 4.6TB, HD-PVR, HDHR OTA, HVR-1850 OTA Clients - 2xHD-300, 8xHD-200 Extenders, Client+2xPlaceshifter and a WHS which acts as a backup Sage server |
#16
|
||||
|
||||
Quote:
__________________
Buy Fuzzy a beer! (Fuzzy likes beer) unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers. Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA. Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S Other Clients: Mi Box in Master Bedroom, HD-200 in kids room |
#17
|
||||
|
||||
Quote:
I do know that the new Plex Media Player is built on MPV and from what I've seen it's very good.
__________________
SageTV Server: unRAID Docker v9, S2600CPJ, Norco 24 hot swap bay case, 2x Xeon 2670, 64 GB DDR3, 3x Colossus for DirecTV, HDHR for OTA Living room: nVidia Shield TV, Sage Mini Client, 65" Panasonic VT60 Bedroom: Xiomi Mi Box, Sage Mini Client, 42" Panasonic PZ800u Theater: nVidia Shield TV, mini client, Plex for movies, 120" screen. Mitsubishi HC4000. Denon X4300H. 7.4.4 speaker setup. |
#18
|
||||
|
||||
MPV sounds interesting.
|
#19
|
||||
|
||||
Modifying the placeshifter client to also have the same full DirectShow playback capabilities as the full client (when you're not transcoding placeshifted video) isn't all that hard to do actually. The reason we never did it was because it didn't seem like that problem needed to be solved...if you're on your LAN and want good Windows playback; then use the full client. If you're remote; then you likely need stuff transcoded due to bandwidth limitations...so use the Placeshifter (and video quality is already compromised due to transcoding, so not much point in going all out with the media player).
But if people really have an interest in making the Windows Placeshifter playback video in high quality on a LAN like the full client does...then go for it...I can provide all the advice you need to do it. The main thing missing is that when you change the decoder settings and such in the UI; those are done in the properties on the server...which the placeshifter client has no access to...but it likely wouldn't be that hard to include a mechanism that solves that problem (where the placeshifter client can query the server for config settings).
__________________
Jeffrey Kardatzke Founder of SageTV |
#20
|
|||
|
|||
One of the problems I've always had with Placeshifter is that at least on Windows it doesn't (always?) do colorspace conversion correctly. In other words it doesn't make NTSC or ATSC black RGB black and visa versa for white. You end up with a washed out video. At least that happens when doing remote playback. It might be better when playing locally. But I'm not usually using it locally.
__________________
Server: i5 8400, ASUS Prime H370M-Plus/CSM, 16GB RAM, 15TB drive array + 500GB cache, 2 HDHR's, SageTV 9, unRAID 6.6.3 Client 1: HD300 (latest FW), HDMI to an Insignia 65" 1080p LCD and optical SPDIF to a Sony Receiver Client 2: HD200 (latest FW), HDMI to an Insignia NS-LCD42HD-09 1080p LCD |
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Suddenly getting frequent disconnections on client. Any ideas? | silkshadow | SageTV Software | 8 | 10-29-2013 12:51 AM |
Interesting potential client platform | drewg | General Discussion | 3 | 09-06-2013 12:38 PM |
Cross Link Metadata Issue | cmaloney | SageTV Beta Test Software | 11 | 08-10-2010 08:46 PM |
Comskip works on server, not on client. Ideas? | EdwardN | SageTV Customizations | 21 | 05-07-2006 06:43 PM |
Using Full SageTV as Client | backsix | SageTV Software | 8 | 05-17-2005 10:32 AM |