Recent Changes - Search:

PmWiki

pmwiki.org

edit SideBar

ZVideoServer

Main.ZVideoServer History

Show minor edits - Show changes to output

Changed lines 1-116 from:
Describe ZVideoServer here.
to:
!!z!'s video server

''This is not a cookbook for creating a server. You'll have to figure out how to configure X/etc yourself unless the config matches exactly. The same for installing the packages & other software. Deal.''

The January 2009 version of the video server consists of:\\
a Dell GX260 desktop system (512MB ram, a 160GB disk (100G assigned to unix), a 200GB disk, and two VGA cards), various pieces of open source software (see below), and some custom scripts to control the whole thing.  The control system is relatively primitive, compared to commercial offerings, however it does suffice to simply play video on a schedule

The operating system is {{FreeBSD}} version 7.0-rel. Scripts are written in [[http://www.tcl.tk/ tcl]].

!!!Server hardware
This is the @@dmesg@@ output, not including build-in or uninteresting devices:
 [=
CPU: Intel(R) Pentium(R) 4 CPU 2.40GHz (2391.15-MHz 686-class CPU)
real memory  = 536285184 (511 MB)
avail memory = 506675200 (483 MB)
ACPI APIC Table: <DELL  GX260  >

nvidia0: <GeForce4 Ti 4200> on vgapci0
nvidia1: <GeForce4 MX 4000> on vgapci1
fwohci0: <Texas Instruments TSB12LV23>
firewire0: <IEEE1394(FireWire) bus> on fwohci0
em0: <Intel(R) PRO/1000 Network Connection Version - 6.7.3> 
atapci0: <Intel ICH4 UDMA100 controller>
ad0: 152627MB <Seagate ST3160021A 8.01> at ata0-master UDMA100
acd0: CDROM <GCR-8481B/1.06> at ata1-master UDMA33
ad3: 194481MB <Maxtor 6L200P0 BAJ41G20> at ata1-slave UDMA100
bktr0: <BrookTree 848A> irq 17 at device 8.0 on pci2
bktr0: Intel Smart Video III/VideoLogic Captivator PCI, <no> tuner.
==not currently used
=]

Most of the movies were stored on an external firewire disk (Seagate Freeagent 500GB), formatted as NTFS (ingest was done on a windoze machine).

Video cards\\
The server needs at least two video cards that are well supported in x.org. Even though the motherboard has on-board video, the BIOS will disable that when it finds any other video boards on the system bus. The current server uses nVidia cards with the nVidia proprietary driver. Of the two cards, the Ti4200 was used as the main X display (:0.0) and the MX4000 was used solely for the TV-out (:0.1 s-video). It should be possible to put both displays on the 4200, however I wasn't able to find the special breakout box to connect it.  Read the doc on the cards, the exact player software, and the card's drivers to determine whether that card is suitable.

Sound output\\
The Dell's sound output was OK, however the on-board sound of some systems is dreadful. Consider adding a decent sound card. This does not have to be fancy at all, since it's only going to get PCM sound from the player software. You will almost certainly want to use the @@mixer@@ to set the output levels to 80 or 100, and depending on actual level, might need a line amp.

!!!Additional libraries and software
With a few exceptions, all third party software is open source and was installed from BSD packages. Packages implicitly installed (by other package installers) are not listed.

chbg-1.5_7          Change Background Picture with time period
-- used for stills display and blanking the output

fusefs-kmod-0.3.9.p1_2 Kernel module for fuse\\
fusefs-libs-2.7.0_1 FUSE allows filesystem implementation in userspace\\
fusefs-ntfs-1.1004  Mount NTFS partitions (read/write) and disk images
-- needed to read external NTFS disk

gtk-2.12.1_1        Gimp Toolkit for X11 GUI (current stable version)
-- needed by ?? (mplayer?)

gmake-3.81_2        GNU version of 'make' utility
-- needed to build some software

jove-4.16_1        Jonathan's Own Version of Emacs
-- small emacs-like editor (useful if you don't like vi)

mpg123-0.59r_17    Command-line player for mpeg layer 1, 2 and 3 audio
-- play audio files during slides

qiv-2.0_2          Small, fast GDK/Imlib image viewer
== not actually used

tcl-8.4.16,1        Tool Command Language\\
tclX-8.4_1          Extended TCL\\
tcllib-1.10_1      A collection of utility modules for Tcl\\
tk-8.4.16,2        Graphical toolkit for TCL\\
tktable-2.9        A table/matrix widget extension to Tk
-- tcl/tk language & necessary extensions

xfce-3.8.18_6      CDE like desktop with GTK
-- lightweight X desktop/window manager

xmms-1.2.10_10      X Multimedia System -- An audio player with Winamp GUI
== not actually used

Software installed from source:\\
MPlayer-1.0rc2
-- used to play video (the BSD package generally lags a bit behind the released version)\\
NVIDIA-FreeBSD-x86-96.43.07
-- nvidia-proprietary driver for video board, needed to enable svga output\\
synctimer1.1
-- timer ser\\ices for tcl
nvidia-settings-1.0
-- used to modify video board settings\\
tklib-0.4.1
-- additional tk extensions\\

!!!/boot/loader.conf
Additional settings in loader.conf\\
snd_icf_load="YES"\\
nvidia_load="YES"\\
linux_load="YES"\\

!!!Control software
The actual control system consists of two programs, a GUI/scheduler and a daemon (total about 2600 lines of tcl). The GUI not only displays the playlist and status but actually performs the time-based operations. It issues simple commands to the daemon, which executes them.  The daemon spawns the appropriate player software for the current content and keeps track of it's status. They communicate via a TCP socket.

This is an area ripe for development. Improvements could include:
* using a real database for the playlist
* separating out the scheduler from the UI
* better control of the players, etc
* mpg123- consider using a tcl library interface instead of exec-ing the program
* Need to add better audio playback/stills integration.
* Need better method for creating slides & keys
* display on the fly
* deal with mplayer's startup delay or replace (direct tcl interface to lib, tcl interface to xine, or gstreamer, or mlt, or...)
* things tend to run a few seconds long, need to account for this (mplayer)
* add second audio output for ingest monitoring
* may want to rescale playlist display window
* write -all- output to log files
* why no sdl? (x server config?)
* add digital mixer control- from gui, from playlist? (ability to fade in/out of music playback)

If you want a copy of the control software, contact z!.
Edit - History - Print - Recent Changes - Search
Page last modified on February 19, 2009, at 01:10 AM