Project Title: Digital Signage Project
Title of Deliverable: Functional beta release, GPL code
Work package contributing to the Deliverable: GPL code
Nature of the Deliverable: code package as Drupal module
Authors: TBD
The digital signage project attempts to create an interactive design application which will allow non-profit staff, government administrators, and community event organizers to utilize the Drupal CMS to create broadcast images for display throughout their community on public, educational, and government television stations.
Unlike existing systems for digital signage, this will be a GPL released module.
General system features such as user registration procedures, update procedures for system data, security, statistics and a help function will be handled by the Drupal CMS.
The choice of technology platform is described in detail, but is not intended to be exclusionary. Other technologies will be considered.
The digital signage project will allow users to display video from disk or streaming source, images, RSS feeds, HTML, FLash, and other information sources via NTSC analog video. This will use a computer with a scan converter (or scan converter card) to output analog video and audio to an analog router or directly to a cable modulator.
Screen "blocks" or "zones" will allow display of multiple types of content simultaneously.
A three-tiered web based user interface will allow:
1. basic users can input new information via simple user interface as well as text message
2. Design users can input design parameters for this information (specify backgound images, fonts, alignment, bolding/italics, positioning, and text sizes)
3. Administrators can determine when, where, and how information is displayed.
The ideal framework for this application will utilize tools common to the Open Media Drupal framework, and will be built to run on both the LAMP and WAMP stack. Many of the systems currently deployed run Windows, and many of the card drivers are not supported in *Nix.
Core benefits of the digital signage project to a PEG organization -
1. Organizations who elect to implement the digital signage project will be able to replace nearly all of the functionality of their existing dynamic digital signage solutions (Scala InfoChannel, KeyWest, Tightrope, Tycoon, etc.) which most PEG stations seem to use to display some type of community calendar with an open source solution. This will result in an overall savings to each PEG organization of more than $1700 per channel – considerably more in some instances.
2. It will meet requirements for community-wide emergency notification and alert, and will be capable of obtaining funding to help PEG organizations (particularly G) to meet these requirements.
3. This solution will allow for multiple displays of the content . . . it will exceed the capabilities of these other systems for a “web view” or “networked view” of the information by providing a scalable and multi-location display without excessive licensing requirements. (there are some caveats here, but it will support multiple client connects).
4. It will integrate fully with Drupal 6, and use the same or overlapping dependencies as the Open Media project (again, a few more caveats, but you get the point).
5. It may have capabilities far beyond the initial scope . . . right now in the scoping phase, I cannot see why it would not support full-screen channel playback with multiple zones, without dependence on card-based decoder functionality. In other words, it may have the capability to replace or reduce dependency on MPEG-2 broadcast technology, and providing a more flexible and capable broadcast scheduling feature set.
Preliminary Development: (If you want to coment, use the comment area below)
CCK integration was a breeze. I've opted to go with some preliminary variables: title, description, date, time, duration (in minutes . . . more on date time later), URI, phone, and email of the event organizer.
I'm calling each calendar event an item to avoid getting confused in Action Script.
No location variable yet, until I can have a detailed conversation with Brian and Kevin about the mapping/location API.
At this point I have pretty much exhausted getting the data from Drupal using either AMFPHP (yes, I got it working on Drupal 6) and XMLRPC. Both were cumbersome from an integration perspective (worked intermittently and or differently on different servers, required API key or no keys, returned a lot of errors), and I would like to keep this simple. Frankly, there were a lot of other decisions and determinations here - 8-10 days working with XMLRPC and views, a few days to get AMFPHP working, etc. Contact me for the blow by blow.
In some applications, elegant and performance minded object oriented solutions are not the most flexible, or the most robust. For the beta release, I've opted for a massively simplified PHP script which uses fwrite to simply write an XML file from the CCK table. So, I'm essentially using Drupal to handle the text input, and then grabbing the information out of the MySQL tables directly with PHP. Drupal handles authentication for the user side, I added a crontab to handle the XML write without user intervention.
I'm using item to describe the events
Both Flash and Flex seem to be handling the XML file well, although looping in Flash seems to be primarily concerned with arrays, and I am using XML, but I did find an AS3 library for XML looping
var myXML:XML = <calendar_item>
</calendar_item>;
for each (var item in myXML.calendar_item)
{
trace(item);
}
/* output
1
2
3
*/Flex seems to only be able to display and work with a datagrid component when getting dynamic variables (maybe I'm just a moron), but Flash is working OK, so for beta this will probably be a Flash release (which should alleviate the design framework perspective, since users can use Flash to design their own). Then I will move on to Flex when I have some dev resources.
Next up is creating some logical framework to handle the items - I will do a preliminary flush in PHP (probably in mySQL statement), and then add additional item handling inside the AS3 code. I'm toying with being able to resize the description based on length by using count character.
One thing that is bugging me is that the date field in CCK is blank. Where is my date? Any ideas?
Also, Drupal datestamp really ticks me off. Is there a good handler library out there somewhere for Drupal datestamps? Help!!
Notes:
I've been talking with Paul Congo at AMP about deploying an open source digital signage solution, as a way of encouraging PEG centers to deploy Drupal and as a way to save them from the capital expenditures and vendor lock required to provide this core functionality.
Paul has to make a move in the next few weeks, so this will initially be a rapid application development project.
I think that if we can get this project completed quickly, we will have some leverage among many of the Drupal resistant PEG centers to deploy Drupal ad other elements. For example, I'm not about to ditch Facil right now for some new-fangled Drupal equipment and studio reservation system, but if I could deploy a few Digital Signage systems, this group would have some credibility to get me using the rest of the tools.
Comments Welcome!!! (Please comment)
Comment from DanielWestergren: As this is a wiki I comment here: Interesting idea! How does this relate to the Digital Signage/Bulletin Board planned to be developed within the Open Media Project? How will the player relate to video servers (such as TelVue Princeton, Tightrope etc.), in terms of starting from the beginning when a scheduled program is finished? Using a scan converter, I suppose this would work for PAL too?
Comment from videohead: I think this would replace investing in Tightrope or Princeton for digital signage. Telvue is reselling Scala, it and Tightrope are based on MS SQL server, and neither has agreed to make their systems open. I haven't seen any movement in the digital signage aspects of Open Media, but this would definitely plug in to the Open Media project. Of course it would work in PAL with scan conversion, and could also work natively on a VGA/DVI monitor.
Comment from DanielWestergren: Thanks videohead for the response. Do you mean that TelVue's WEBUS is a copy of Scala? Not sure this wiki is the right place for this discussion. But as we're looking at WEBUS currently, to replace our current system, I'm keen to hear other opinions and what this open source project may offer in that regard. It sure sounds very interesting! What kind of time scale are you looking at? What may this project offer that other systems may not? And what will it perhaps not offer, at least in its initial stages?