Organizing Mediashows with Menus, Sub Shows and Child Shows

You are probably familiar with the two key elements of Pi Presents shows and tracks. Tracks are things that are played or displayed; media tracks such as videos, images, and audio tracks. A show tell Pi Presents how to play the tracks and, in its medialist, maintains a list of the tracks to play or select using a menu.

A show can be played  so why not  include it in the medialist just like a media track. I have called these sub-shows. Doing this has benefits, some greater than others.

  • You can split a mediashow into segments. I found this useful for organising a large slideshow as described here . In addition to the organisational benefits each sub-show can have its own show text.
  • You can include a menu as an item of a menu to produce a hierachical menu
  • You can include a mediashow or liveshow as the item of menu.
  • You could include a menu in a mediashow, perhaps not very useful.

To do any of these things use the editor as described below. The example uses a mediashow as a sub-show of a mediashow, other combinations are essentially the same.

  • Create the main mediashow. It needs a show-reference so it can be named as a start-show. Create its medialist.
  • Create a mediashow which will become the sub-show and give it a show-reference of, for example, mysubshow
  • In the medialist for the main show create a new Show track using the menu track>new>show. Edit this track and use the drop down menu in the show field to select mysubshow

Child shows are basically the same as sub-shows, the only difference is that a child-show can be triggered from every track of a mediashow whereas sub-shows cannot. The editor provides a bit of a short cut to creating child-shows. In a mediashow you just set ‘has-child’ to ‘yes’ and in the medialist create a new child-show. This creates a show entry in the medialist with the track-reference of pp-child-show.

The manual gives the impression that this child-show should be menu. This is because a menu is the most useful application of a child-show. Actually, a child-show could be any type of show or a media track. To create the latter in the editor add a media track to the medialist and give it the ‘track-ref’ of pp-child-show.

38 Responses to Organizing Mediashows with Menus, Sub Shows and Child Shows

  1. David says:

    Hi, for our visitor center we want to use a pi to show a web-page, a birdcam livestream and a movie mp4 together. A bit like the magicmirror software can but it should be remote-controllable with a selfmade app (app inventor). I know pp can be controlled with osc but can it show and remote-control these things together on the same tv, in different windows that are open at the same time?

    David

    • KenT says:

      yes it can. Use a number of shows, one for each item. You will need to use the show canvas to define the area of screen used by each show. You can use show control commands send by OSC or otherwise to open and close each show or send input events. Events will be offered to all open shows so you will need to filter which show/track responds to them by the use of symbolic names for the events The pp_multiwindow_1px example is worth a look

      • David says:

        Thanks, the pi4 is ordered. Will try the software as soon as it is delivered.

      • David says:

        Hi, meanwhile I got it running and succeeded in showing 2 static web-pages together. But when I want to show a livestream in the 3rd one it does not seem to be able to handle it. I think it is the uzbl browser that is too old and not updated anymore. Is there a way around this? Maybe use another browser? The taskbar in uzbl I got invisible by modifying uzbl config.

        • KenT says:

          I am working on a new web track based on Chromium for pp-beep. Should be released very soon.

          • David says:

            Thanks, I’ll wait for that. Hope Chromium is as flexible as uzbl in hiding all it’s borders. Anyway, great software so far..

            • KenT says:

              There is a new release of pp-beep with Chromium browser on Github. I have managed to remove all the borders except scrollbars on large pages, but non-interactive web pages should not need scrollbars.
              if you have any problems with it please raise and issue on Github.

  2. Art says:

    Hi Ken,

    Thanks for the software, it looks super versatile. I’m trying to see if I can implement it for some digital signage and I can’t figure something out. I am using the liveshowempty to display a video on loop when list is empty and to display an image when I add it to the live_tracks. Right now the image only displays after the video finishes playback, and I am trying to get the video to interrupt as soon as there is content in live_tracks. I read in the manual about events in show control, so I tried adding “event pp-up” or “event pp-stop” to the “liveshow” Show control on Not empty (where it also runs “close empty”, “open notempty” but event command seems to have no effect. Am I missing something, or is there a different way to interrupt the video when it detects content in live_tracks?

    Thanks for taking time to answer these,
    All the best

    • KenT says:

      Hi
      PP looks at the livelist only at the end of each track of the empty track so there is no way to interrupt a video easily. You could split the video into smaller chunks and use a show for the empty track. The other way is to externally generate an input event.

  3. Dean says:

    Hi Ken,

    I am trying to create a Media Show that shuffles between four different videos on repeat but will cut in and play our museum introduction video on input, then return back to shuffling the other four videos. I created a Media Show with the four videos as tracks. Then I created a subshow containing only the introduction video. The four videos play on shuffle just fine, but I cannot seem to figure out how to trigger playing the introduction video. I hope that makes sense (first time user).

    Dean

    • KenT says:

      Hi
      You need to use a child track which is your video, set this up in the show profile. The example pp_interactive_1px shows this. The example is more complicated than you need as the child track is a show rather than a video track.

      • Dean says:

        Ken,

        I checked out that example profile and it looks like I had the Child Show set up in a similar way. The problem I am having is with the Start Trigger Parameters field. I have the Trigger for Start on the Child Show set to ‘input’, but I’m not sure what to put in the Start Trigger Parameters field to initiate it while the Main Show is running. Or should I be looking in a different place? Thanks!

        Dean

        • KenT says:

          You do not need the Trigger for Start in the child show, just set it to Start. You start the child track by using the play command in the controls of main show with the track reference of the child track.
          If you have only a single video track to play then get rid of the child show and make the child a track. If you keep the show make it single run.
          Thinking about it Trigger for Start is a bit of a misnomer Trigger after Start might be better because the show starts then immeadiately waits for the trigger.

  4. James DIxon says:

    Hi Ken,

    I am new to both Pipresents and to Raspberry Pi, so apologies if I am asking you a very basic question here.

    I am trying to create a presentation whereby I have 3 individual videos that are be triggered by different Button presses. I am using radiobuttonshow to do this with the videos as individual tracks.

    Things are looking good but I am finding that if any of the buttons are pressed while one of the videos is playing, that video is stopped and the appropraite new one begins.

    Is there any way of blocking these controls while a video is playing? I have tried to set Disable Controls to Yes on each of the tracks, but this didnt seem to have any effect.

  5. Alastair Boomer says:

    Hi Ken,
    Firstly, thank you for providing a great piece of software and the time & effort associated. I’m looking to create an electronic notice-board for my church and I was hoping that you could confirm that the tool supports that the way I’m planning to use it. Is it possible for a key (or GPIO) to act as a shortcut to jump to the start of a particular liveshow? I would like to have (say) 4 liveshows that the user can choose between by pressing one of 4 hardware buttons that act as shortcuts. It’s the function of a shortcut that I’m so far struggling to implement and I was wondering if you could give any pointers?

    Thanks,
    Alastair

    • KenT says:

      Hi
      use a radiobuttonshow whose tracks are the four liveshows.

      • Alastair Boomer says:

        Thanks, I’ll give that a go.
        Alastair

      • Alastair Boomer says:

        Hi Ken,
        I got the radiobuttonshow up and running as suggested, but I hit a snag. One of my liveshows (i.e. subshow) is a calendar where the user is to be able to scroll left/right through each month (each month being a track of a subshow). I see from your documentation that the radiobuttonshow option “Control in Subshows” means that I can either have the ability to jump to other subshows OR control the current one (e.g. scroll through tracks of the calendar)….but not both. Have I understood this restriction correctly? If so, can you think of a way that I could work-around/hack that I could do to get the functionality that I’m looking for?
        Thanks again,
        Alastair

        • KenT says:

          Yes, your understanding is correct. A solution is to use a stop command in the calendar liveshow to return to the radiobuttonshow. Omit it in the other liveshows if you want.

  6. vanillagrl says:

    Ken,
    Can you please help me figure out how to get a track to hold while another loads a web page? Or how to add something to a web track to display until the web page loads? I saw in the manual where there is a 15 second gap and pipresents doesn’t handshake well with the ubzl. please help, I am new to this.
    Thanks,
    Donna

    • KenT says:

      Hi Donna
      Version 1.3 (gapless) will display an image or pause a video at its end until the web browser is ready. There is no handshake so the time delay is set in line 242 of pp_browserplayer.py

      self.wait_count= 50 # 10 seconds at 200mS steps

      Loading of the browser is much faster on Pi 2.

      To fill the gap while the browser is loading on Version 1.2 you can display a background picture and text in the web track.

      If you are using browsers a lot then in might be better to look at browser based digital signage or gkreidi’s minimal kiosk browser (kweb) which I believe displays videos in a browser

  7. Is it possible to overlay text/logo over video?

    • KenT says:

      No I am afraid not. The problem is with omxplayer which does not use x windows but writes to the display directly.You could limit videos to a small window on the screen and write text outside the window.

  8. sander815 says:

    does anyone have more videos demonstrating PiPresents?
    I want to show these to a museum, they are considering touchpanels a 3000 euro / piece for the same stuff PiPresents can do

  9. Glen says:

    Ken:
    I have had some issues with the Pi crashing while playing consecutive videos in XBMC (which also uses Omx Player). That’s why I’m a bit apprehensive about crashes.
    If I understand you correctly, with sub-mediashows, I would, in the event of a restart, be able to go to the main medialist and select to start in one of the subshows rather than having to skip through every slide and video from the beginning. Is this correct? If so, the subshows would be set up to either start or end with a video segment. This would minimize disruption to the flow of the slideshow. This combined with the ability to fast forward the videos might well be work for
    us.

    • KenT says:

      Yes, you understand correctly. I have had a couple of videos crash randomly with Pi Presents, usually after many hours of continuous play. I would be interested to know if the same videos crash on XBMC and Pi Presents.

      • Glen says:

        On the topic of videos, I cannot add MPG-2 videos to the medialists. The editor says
        it does not recognize the extension “.mpg” (I tried changing it to .mpeg but still no joy). I purchased the MPG-2 codec license from the Pi Store. The .videos play fine in XBMC on the PI.

        • KenT says:

          Looks like I have got the incorrect extension for this type of video in pp_definitions.py line 4. You can add your own.
          Alternatively just use the menu track>new>video. Using this you can add any track type you like.

          It would be a help if you can tell me all the extensions of video files that omxplayer can play. I can then add them to pp_definitions.py.

          • Glen says:

            I can’t find a file called pp_definitions.py. I have File Manager set to show hidden files. Using the menu track>new.video as you suggested gave the same message about “unknown extension”. For the moment I have started converting my videos to .mkv. I don’t think it will affect video quality very much. After quite bit of searching I was unable to find a list of supported video formats for omxplayer. I gather omxplayer should support any formats that have hardware support and there is a codec supplied when the OS is installed. Mpeg-2 (.mpg and .VOB) and VC-1 (.wmv) are the only major formats I’m aware of that don’t have codecs installed. Thes licenses for these two codecs must be purchased from the Pi Store. My mpeg-2 codec is “enabled”
            On another topic, is it possible to blank out the message “loading” between tracks and just have the black.screen? If not, it would be a nice option to have. My wife finds the message irritating. These is an option “disable screen blanking” but there is no explanation about this feature. I have tried running shows with and without “sceen blanking” enabled and it doesn’t seem to do anything.

            • KenT says:

              Whoops sorry, I was thinking of the wrong version of the software. It’s in pp_definitions.py in [pipresents-next] The track>new video should have worked, I will check it out.

              I will add.mpg, .mpeg, .wmv and.vob to list in [pipresents-next]

              You an edit resources.cfg to get rid of or change the admin messages. Read the manual Section 5.10 as to how to do it. Disable screen blanking stops the screensaver kicking in if there is no input, you may not have noticed it if you are using the keybaord to advance.

              • Glen says:

                Editing resources.cfg did the trick, thanks! I’m going to try creating subshows linked to a menu next. I’m still a bit fuzzy on this part but it should become clearer as I work my way through it. Thanks again for the information.

              • Glen says:

                In the mediashow settings I set progress to “manual”. There was a black screen with a 1 to 2 second delay between tracks (depending on image format and compression settings). When I set progress back to “auto” and the duraton to 0 seconds, the delay/black screen was eliminated. Perhaps it would be best to just have the one method to set a manual slideshow. (i.e. eliminate the auto/manual switch and advise users to set the duration to 0 seconds for a manually controlled slideshow).
                I now have Pipresents working as I want it for slides/images. As far as videos I have converted my mpeg-2 files to .mkv and I can live without the fast forwarding until future updates.
                Thanks for the great work you have done in creating PiPresents.

  10. Glen says:

    Can the software work like a manually controlled Powerpoint presentation? What I want to do is play a series of slides manually (non-animated so JPEGs will work) with a few videos that will play at specific points in the slide presentation. I don’t want the slides to change automatically.
    I want to control the changing of slides with a Powerpoint-type presenter (i.e. mouse clicks) I have tried XBMC but it automatically enters slideshow mode after it plays the first video so slides start to change automatically at set intervals unless you manually pause them.. I also have
    tried Libre Office Impress but it’s bloated and too slow on the pi – also the videos would not play (black screen)

    • KenT says:

      Glen
      As I expect you have found,just set progress to manual in the mediashow. You can copy resources.cfg and edit it to change or make blank the messages you see between slides.

      I think you found much the same as I did, it is not easy to find multimedia manual slideshow presentation software, Windows and Linux alike.

      Ken

      • Glen says:

        Ken
        Thanks for the reply. A couple more questions:(1) If a manual presentation “crashes” do you have to start at the beginning track or can you go to a menu and select an individual track (slide or video) to resume the presentation in the same spot? (2) Is there any way to fast forward or reverse in a video? I didn’t see such a feature in the user guide. Omx Player, I understand, does support fast forward/rewind
        While the program sounds very good, the above features would be essential in order to recover from a crash in the middle of a long slide presentation. We present all day (7 to 8 hr) educational programs using mixed slides and videos. Cycling back through over 100 slides or replaying videos (or not being able to fast forward through the video to the point where it crashed) would not be an option in front of a room full of students.

        Glen

        Glen

        • KenT says:

          1. Pi Presents seems pretty reliable. dpguest has had it running with videos and slides 24 hours a day. If it does crash the likelihood is that the whole of the Pi will freeze so a restart will be necessary.

          To answer your question, you have to go to the beginning and skip through, you can skip videos as well as images. I cannot think of an easy way to make it do what you want. I would divide a large presentation into sub-mediashows and then use the main medialist as a menu in addition to it being a mediashow, time the sub-shows for comfort breaks when you can go back to the menu and select the next sub-show – obviously reduces the recovery time.

          2. A couple of people have asked for fast forward etc. for omxplayer, I will add it to the todo list as a priority task.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s