-
Notifications
You must be signed in to change notification settings - Fork 49
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
Video playback/Run Command cues #3
Comments
Hi, yes, I've plans to support video cues, probably it will take quite a bit because currently I'm working on a better software design and some new functionality for the 0.4 version, but the plan is to add the video support as soon as possible after this release. |
Looking forward to this. Currently there is no video show manager on linux (vlc and split playlist not counting because it is really clumsy to use during the show). Thanks in advance. |
Another way around would be adding cues with the abiity to run arbitrary commands (eg This way you leave video playback/decoding/filters to a full featured video player. |
@nodiscc good idea |
Add: command-cue(s); Update: minor UI update.
That would bring even more possiblities such as displaying webpages in a 2016-04-28 22:53 GMT+02:00 Francesco Ceruti [email protected]:
|
@gnaag a need will inevitably arise for users to apply some filters/seek/do whatever an advanced player already does, which is what I suggesting leveraging this, instead of eating development time (do not reinvent the wheel) |
The question is whether it would be responsive enough. During show it is 2016-05-04 21:02 GMT+02:00 nodiscc [email protected]:
|
Ah I see what you mean (lag due to time required to launch the player). Regarding VLC specifically, if you set it to "only allow one window" it will start playback in an existing VLC window (very fast):
Some other players are fast enough (mpv/mplayer) but I have no experience with "use existing window" with those. |
Well, since the "command-cues" are just a bunch of lines of code, I've implemented them, so someone che use them to play videos ... and to do other awesome things ;) Anyway I've received more than one request for proper video-cues, and I think that having all you need in one piece of software, sometimes, is more simple than combining more tools, plus, the big work is to refactor the current code to allow video and audio streams, all the inputs/output and effects are almost only wrappers around GStreamer elements. |
Nice, will test this soon.
Right.
Looking forward to test this with lighting cues and puredata commands. Thanks! |
This feature is definitely desirable. |
Mapmap is also a possibity. Its still under development but under Linux sound works since some weeks and it has OSC support, which gives some more control options then their gui. And it is the only working mapping software under Linux I know so far I know. Its possible to use command cues and "oscsend" to control mapmap. A native support for mapmap through a module in lisp would be awesome. |
Hey, I just wanted to refer to this for video cue: #166 (comment) mpv is only a workaround, but it works really well. The feature set is really good, it supports many formats, is really customizable. I know it's probably not a good idea to depend on third party software, but for everyone who's searching for a workaround: I think it's perfect. You can even disable every OSD stuff in case you accidentally toggle it. Edit: and I think that mapgen is not exactly suited for simply putting things on screen. There should be something easier (like mpv is). Edit 2: I'll just share some of my mpv codes I use. Might be someone is looking for an urgent workaround:
|
Video cues wound be an awesome feature. There's absolutely no free alternative to QLab, which forced me to write my own app for live shows. And I don't like it :) |
I totally agree, video cues would make that awesome software perfect. |
A quick workaround might be to still depend on mpv, but allow some launcher wrappers for convenience. MPV is an awesome project and will work reliably and play kinda all your video files, you can even use it to create image slide shows etc (so whenever we need to launch a pic from within LiSP, we'll use mpv, too). |
I would be interested in helping this, but I am not familiar with the code base. @FrancescoCeruti |
The way I've envisioned this task will require a non-trivial rework of the media backend, but I believe it can be approached in two main iterations:
The area of interest is the In there you should be able to register a custom "factory" to create a video cue, which should simply be a MediaCue but initialized with elements (pipeline) that handle the video stream instead of the audio. The "pipeline" definition is a list of the elements class names. Elements are located in the lisp.plugins.gst_backend.elements module, they are imported dynamically. Most elements are simple wrappers, you can start with that, but you need to know what gstreamer-elements you need to use. To start experiment you can simply use Just a quickstart, if you have any question we can chat via matrix @francesco.ceruti:matrix.org or open a discussion here on GitHub. |
I have two workarounds for this depending on what's needed. One is to control OBS and use OBS to playback video files using the media player plugin. I use Linux Show Player to switch scenes in OBS to the video file using the command queue and the OBS CLI Interface. The other way (more complex) is to have Linux Show Player trigger a video player on a screen and have OBS capture the window as a scene and have Linux Show Player trigger a transition to the screen capture screen in OBS. |
@DMJC this sounds rather complex, tbh. Launching mpv, even via remote SSH connection was always the way to go. You can also make it open a socket and send IPC commands to it. There are some examples in the docs: https://linux-show-player-users.readthedocs.io/en/latest/cues/misc_cues.html#mpv-player I've successfully run many shows with launching mpv directly or via SSH, and recently started to use the IPC to do things like automated fade down, or enabling / disabling looping of intro trailers. |
We were cross mixing multiple cameras shots/slide shows etc in our feed using one computer with a Decklink 8K card + 4 SDI cameras to handle all vision (Anime/Video Games Convention was the use case). It worked extremely well once we added Linux-Show-Player to control it all... We only ever touch OBS for switching between cameras on live crosses, everything else is in LSP. Cosplay controls became z-x to control the slideshow and spacebar to trigger music/slideshow/camera transition cues. |
I use LSP for my theatrical shows with Command Cues for video and mpv is the first choice. |
@griuzly this is a little hacky. I created a shell script which I run as a "command cue" which adjusts brightness in a loop. Will share it later, it's unfortunately not on my machine at home. |
I wrote some shell scripts too using xrandr that acts on the brightness to get fade in and out. But it can't obviously crossfade the video in this way. |
I've never used it, but you could give a try at this: https://github.com/brunoherbelin/vimix? It supports OSC (https://github.com/brunoherbelin/vimix/wiki/Open-Sound-Control-API) so you should be able to control it from LiSP |
@griuzly I created a script (still didn't manage to grab a copy from the machine, sorry) that sends brightness commands in a loop to fade out. It is triggered by LiSP and then uses the mpv socket to reduce brightness. Regarding crossfade .. what I often do to workaround is to rely on my window manager and effects. I'd probably let mpv open on the secondary (non-presenting) screen and use a hotkey to move it over + assign a fade-in effect for window moving. Hacky but could do the trick. |
Interesting project. I can crossfade video with OSC commands like this: The problem is that vimix has no audio support. It seems more promising the gstreamer approach usig ges-launch. With this command is possible to play video setting their opacity/transparency: but I didn't find something like ff parameter in vimix osc commands that assigns variable opacity/transparency from a value to another value in a certain time. |
Hi, thanks for writing this great tool. Are there any plans to support video cues? I see you are already using GStreamer which is able to do video decoding. Video playback in a separate window (e.g. placed on an external monitor/videoprojector) would be a nice addition.
The text was updated successfully, but these errors were encountered: