Solved Drive multi TV (running kodi) by DLNA
#1
Hi, my friend has built a fast food, he's using 3 TV 32" to show clients the menu, offers, and so on, using an USB stick for each TV, he is bored to take the staircase, go up to all tv, remove the stick, update it and place it again, he would use an automatic system using network, ha has a free WIndows PC for that.

He has dream to show separate contents separately by a playlist from a PC to each TV, were is possible to indicate medias (lovely if they can be images and videos) and time (first image will stay 10 seconds, the second photo 15 seconds, the third video till the end, then loop again to first image, etc); I don't mean that the next TV has to show the "extend image" of the first TV and so on, just different indipendent content.
The TV are connected by ethernet cable under the same LAN, I've installed Kodi, activated all services and noticed I can send by DLNA files from my phone, so I guessing there is a software for Windows able to push in the same way, but to 3 different TV, maybe I have to run 3 istances of the same program?

Which program can I use to push DLNA to Kodi?

There is another way to obtain that, streaming, but this require to encode real time a video and send stream to TV,  there are 3 TV, encoding 3 times is really a waste of CPU and quality, with risk the TV quits from streaming and needed to join it again manually.
Instead, DLNA doesn't encode, and stimulate TV to receive something new, is something went wrong before it will fix itself.
Thank you for your suggestions
Reply
#2
I understand there may be some language issues, and with that some misunderstandings. That aside, your multi-question has many solutions and I doubt my answer is going to be the solve, but perhaps I can set the direction.
(2024-07-01, 21:43)GiovanniG11 Wrote: using an USB stick for each TV, he is bored to take the staircase, go up to all tv, remove the stick, update it and place it again
I take it that the TV's have some sort of 'slide show capability' or 'Video'? and take data from the USB port?

1) To utilize Kodi as a player, each TV would need it's own instance of the program (Kodi can be installed on some TV's) via something like a firestick with a Kodi installation and each would be an independent player and networked (via SMB, NFS. etc.) to a central storage if needed.

2) Kodi installed on a PC and the video shared with 3 TV's via HDMI & spliter; would mean all 3 TV's get the same video.

3) https://forum.kodi.tv/showthread.php?tid=376600


Some links that might assist: Settings/Services/UPnP DLNA (wiki) and UPnP (wiki) Kodi doesn't utilize UPNP casting through DLNA. Should be noted that in video playing mode Kodi has queue capabilities and looping through the left slide-out. In slideshow picture mode, timing can be set in settings. There are other ways to set something like this up, add-ons from the past (which might need work) or hardware devices, hopefully other users will offer a better response.
Reply
#3
Hi, thanks for answering, shorley I can say that point 1) is not interesting, since it requires to control kodi each time, choose what to disply and so on. Excluded. The TV shoudl open kodi only in the morning
2) 2 TV has to be indipendent, no HDMI. Media should be showed by TV by etherent cable.
3) Mezzmo is just a DLNA server listening for connections, it requires operations on TV, excluded.

I can tell you that I can connect with my phone to Kodi by a DLNA app and I can send photos and videos from my phone to Kodi, and I can decide the next media, when, etc.etc. This is what I'm looking for, done with a Windows PC.
I thought to use Node RED since it has 2 potential modules:
1) a DLNA control module (tells Kodi what media to open), unfortunately I still not undersand how the URL works, I've created an http server and tell kodi by NR to open that URL but it doesn't workm probably I don't know how the module properly works, and author didn't write any example.
2) a Kodi control module (tells kodi what media to open, for example a samba network shared folder), it works but it I open an image it still on screen while videos are played on backgound and it doesn't open all photos and all videos, it's a mistery why, kodi itself can open them if opened manually.

I'm no lucky, all solutions have problems, I still look for a way
Reply
#4
2) You might want to investigate Kore or Yaste app on your phone.
(2024-07-03, 23:20)GiovanniG11 Wrote: doesn't open all photos and all videos, it's a mistery why,
Might be a username password issue, or drive permissions. The latent image hanging sounds like a gfx engine issue.

I might approach all of this slightly differently, using media and a smart TV's slideshow routines given your hesitancy to treat each unit independently.
Reply
#5
Hi! I'm very glad you are supporting me for a solution, for my needs I have to use DLNA DMC and I prefer to use Node Red to push content on remote TV running Kodi.
I've made more experiments, and I've figured ot myself what was wrong.. I switched to http transport instead of samba and now I can see all videos and pictures but.. it still one problem I can't overcome and I really need your help for it, thank you!

When I open a picture it still on top and if I run a video I can hear only audio, I need to press esc and then click on the background to remove the menu and see the video, how to overcome it? There is a command JSON-RPC API to close the picture?

For opening a picture I'm using in NR:
Code:
return {
    payload:
    {
        "cmd": "Player.Open",
        "args": {
            "item": {
                "file":"http://192.168.101.100/1.jpg"
            }
        }
    }
};

I've tried to stop but I got "send error: Error: Server responded with error: Invalid params."

Code:
return {
    payload:
    {
        "cmd": "Player.Stop",
    "args": {
           
            }
    }
};

May you tell me which command can quit from picture to show the video? Thank you!
PS: Yatse and other remotes aren't an option for me, everything should work from NRm but I guess with port 9090 I can send something to do it.. mabe a combination of "keys"?
Reply
#6
(2024-07-04, 10:29)GiovanniG11 Wrote: When I open a picture it still on top and if I run a video I can hear only audio

Looks like one process is still up, while you bring another on top without ending the first. Sorry I can't help you with code, perhaps others can pipe in.
Suggest to toggle in settings>media>pictures>show videos in file listings. At this point all your videos & images will play with picture mode.

Alternative solution is to use some sort of video editor and put together a video that combines still images with video footage as one presentation.
Reply
#7
Thank you again for replying, that was already enabled, I've removed it and the result is the same. Yes the process to show image still running on top and doesn't close when I start video.
There are so many commands on JSON-RPC_API, possible there is no one for close the picture process? Or send to kodi a combination of keys/commands like with remote, With NR it will be easy for me to send that command before open the video..

Can you please address me someone who now this matter? Maybe with private message, maybe an email, or a section of forum where he can read.. there should be a solution for this!
Thank you!
Reply
#8
(2024-07-05, 00:51)GiovanniG11 Wrote: still running on top and doesn't close when I start video.
Don't start the video; try using the picture viewer which should play the video if it's in the same folder. I've left a message as requested, should there be anyone available (summer most are occupied with personal matters).
Reply
#9
Thank you for leaving the message Smile I'm confident there is a way to quit from picture viewer by JSON-RPC_API command.

Unfortunately I can't do what you suggest, I guess. I'm not operating with Kodi at all (and I don't have to!), I'm just sending to it commands by JSON-RPC_API with http URL it has to open (on LAN), I'm afraid I can't choose how Kodi should play them. Or maybe you have a suggestion for this specific situation?
Thanks
Reply
#10
(2024-07-05, 16:57)GiovanniG11 Wrote: suggestion for this specific situation?
I would be using some video editing software, put all the stills, timing, menu's etc into one video to make it simple for some smart TV player; but if the goal is ease of editing this isn't going to cut it. With a single TV my working solution would be to use something like Add-on:Cinema Experience (wiki) or an alternative; that offers an intro video, some sub videos (stills commercials etc) and a main video (with breaks) and an outro video all looped. But once you get into 3 different displays (and maybe timed sequences) we enter much more complexity than this windows support mod can offer. In the past there has been add-ons that offer banner scrolling over videos, but suspect these routines are no longer supported, might have been closer to the mark. There is likely commercial software that targets the attributes you want, I do remember putting a magazine on disk using a multimedia program called Macromedia Director which is now in the hands of Adobe, but the learning curve is high.
Reply
#11
Thanks, the goal is to update photos and change schedules and time wait easy, depending on the needs. With node red all is possible and easy to implement, and the fact I can send commands to 3 different TVs by IP is really what I need.
The only problem to overcome is how to close the image visualizer, have you looked at the code I've sent you? Why for me the stop command returns an error? With Yates it's possible to send commands and close image viewer, it uses the port 9090 yes? So it should be possible also with Kodi and API JSON..
I'm waiting that somebody can tell me how..
Reply
#12
(2024-07-05, 23:01)GiovanniG11 Wrote: I'm waiting that somebody can tell me how..
If you can articulate this issue in a way that could be handled by our 'Bug Tacker', the ticket will be looked at sooner or later.
Reply
#13
Hi, I did, please check if I open it properly in the proper place, thanks
https://github.com/xbmc/xbmc/issues/25443

There is an overcome handmade for it, is to send 2 commands as remote can do (Yatse) on port 8080, is the key "back" and the key "fullscreen", sending them will close the photo and show the video on background, do you know how to send those commands? With JSON-RPC_API?
Reply
#14
I'm trying to figure out myself how to send remote keys, I've sniffed with Wireshark how Yatse sends the JSON on 8080:
Code:
{"id":50,"jsonrpc":"2.0","method":"Player.GetActivePlayers"}

Sending a back and a fullscreen key I see id 217, 50 and 473
Now I tried to put this on Node red:
Code:
return {
    payload:
    {
        "id":217, "jsonrpc": "2.0", "method": "Player.GetActivePlayers"
    }
};

No results, I'm a bit struggling why it is so complicated to find a guide about that, searching on the kodi wiki (https://kodi.wiki/view/JSON-RPC_API/v12#Input.Back) but I can't figure out how to use such info/examples, how can I format that for NR?

Input
Input.Action
Type: string

JSON Schema Description
{ "default": "analogfastforward", "enums": [ "analogfastforward", "analogmove", "analogmovexleft", "analogmovexright", "analogmoveydown", "analogmoveyup", "analogrewind", "analogseekback", "analogseekforward", "aspectratio", "audiodelay", "audiodelayminus", "audiodelayplus", "audionextlanguage", "audiotoggledigital", "back", "backspace", "bigstepback", "bigstepforward", "blue", "browsesubtitle", "channeldown", "channelnumberseparator", "channelup", "chapterorbigstepback", "chapterorbigstepforward", "close", "codecinfo", "contextmenu", "copy", "createbookmark", "createepisodebookmark", "cursorleft", "cursorright", "cyclesubtitle", "cycletonemapmethod", "decreasepar", "decreaserating", "decreasevisrating", "delete", "doubleclick", "down", "enter", "error", "fastforward", "filter", "filterclear", "filtersms2", "filtersms3", "filtersms4", "filtersms5", "filtersms6", "filtersms7", "filtersms8", "filtersms9", "firstpage", "fullscreen", "green", "guiprofile", "hdrtoggle", "highlight", "increasepar", "increaserating", "increasevisrating", "info", "jumpsms2", "jumpsms3", "jumpsms4", "jumpsms5", "jumpsms6", "jumpsms7", "jumpsms8", "jumpsms9", "lastpage", "left", "leftclick", "lockpreset", "longclick", "longpress", "menu", "middleclick", "mousedrag", "mousedragend", "mousemove", "move", "moveitemdown", "moveitemup", "mute", "nextcalibration", "nextchannelgroup", "nextletter", "nextpicture", "nextpreset", "nextresolution", "nextscene", "nextstereomode", "nextsubtitle", "noop", "number0", "number1", "number2", "number3", "number4", "number5", "number6", "number7", "number8", "number9", "osd", "pagedown", "pageup", "pangesture", "parentdir", "parentfolder", "pause", "play", "playerdebug", "playerdebugvideo", "playerprocessinfo", "playerprogramselect", "playerresolutionselect", "playlist", "playnext", "playpause", "playpvr", "playpvrradio", "playpvrtv", "previouschannelgroup", "previousmenu", "previouspicture", "previouspreset", "previousscene", "previousstereomode", "prevletter", "queue", "randompreset", "record", "red", "reloadkeymaps", "rename", "resetcalibration", "rewind", "right", "rightclick", "rotate", "rotateccw", "rotategesture", "scanitem", "screenshot", "scrolldown", "scrollup", "select", "setrating", "settingslevelchange", "settingsreset", "shift", "showpreset", "showsubtitles", "showtime", "showtimerrule", "showvideomenu", "skipnext", "skipprevious", "smallstepback", "stepback", "stepforward", "stereomode", "stereomodetomono", "stop", "subtitlealign", "subtitledelay", "subtitledelayminus", "subtitledelayplus", "subtitleshiftdown", "subtitleshiftup", "swipedown", "swipeleft", "swiperight", "swipeup", "switchplayer", "symbols", "tap", "togglecommskip", "togglefont", "togglefullscreen", "togglestereomode", "togglewatched", "up", "verticalshiftdown", "verticalshiftup", "videonextstream", "voicerecognizer", "volampdown", "volampup", "volumeamplification", "volumedown", "volumeup", "wheeldown", "wheelup", "yellow", "zoomgesture", "zoomin", "zoomlevel1", "zoomlevel2", "zoomlevel3", "zoomlevel4", "zoomlevel5", "zoomlevel6", "zoomlevel7", "zoomlevel8", "zoomlevel9", "zoomnormal", "zoomout" ], "id": "Input.Action", "type": "string" }
Reply
#15
Solved with:
Code:
return {
    payload:
    {
        "method": "Input.ExecuteAction",
        "args": {
            "action": "back"
        }
    }
};

followed by fullscreen.
The command is Input.ExecuteAction and not Input.Action, god save soul of who wrote wiki with so poor infos "how to use" and wrong parameters.
Reply

Logout Mark Read Team Forum Stats Members Help
Drive multi TV (running kodi) by DLNA0