2010/09/09

The Labs.Com System Lab HomeNetwork Media Client
Last update 2000/07/30

The Labs - Design & Functionality For The Net

HomeAppliance: Media

This is the first HA-client for the HA-network: HomeAppliance Media, replacing VCR, TV, Radio, CD-Player.
  1. Pictures (Personal Album, Artwork)
  2. Audio
  3. Video (TV & Radio)
  4. Hardware
  5. User Interface (UI)
  6. Design Ideas
Media Client
1. Pictures (Personal Album, Artwork)

Hardware

 Output: Either LCD display (space-saving vs. CRT), or LCD Video Projector.

Input Sources: video, scanner, quickcam, screenhot.

Drivers

 X11 is sufficient.

Software

 Some nice slider software (with fading and other effects like page-curl), GIMP-plugins?

The pictures, images, artwork is stored on the server, within folders. Artist credit, artwork name, copyright, museum, original size, timestamp of creation etc.

WebMuseum, Paris (Nicolas Pioch)
Online Museum, good source of artwork

Media Client
2. Audio

Hardware

 Nothing to do, it's on-board, YMF740C. Adding speakers and microphone.

Drivers

 ALSA support it. Compile modules and install it, and then run alsaconf and it finds it (and does addings in /etc/conf.modules).

Software

 
ESound Homepage
Sources and documentation
IRMP3
backend mp3 jukebox
XAudio: MP3
SDK for MP3
MP3 Lab
Some infos on MP3
ViaVoice
Speech to text (ViaVoice), text to speech (ViaVoice Outloud)

The sounds/music is stored on the server, within folders. Artist credit, copyright, timestamp of creation of MP3/Wav/Raw.

Media Client
3. Video (TV & Radio)

Hardware

 First of all we need a Video4Linux compatible card: Miro PC-TV, Haupauge (both Booktree 848), Miro PC-TV Rave (cost $50) is working (as per 2.3.99 pre9) finally, see settings below.

The linux-kernel should recognize the card can add /dev/bttv0 (/dev/video -> /dev/bttv0).

Consideration: Since we network via 10/100 Ethernet it's a bad idea to stream video over the network, so, the card should be put on the client, unless decent streaming format can be found (e.g. MPEG-I/II with 2Mbps) then the video could be available on all thin-clients in the network.

Drivers

 The device is supported by the kernel via Video4Linux.

Software

 This is getting tricky, xawtv and kwintv exist but aren't very usuable via IR remote control, neither they don't look good as application (compared to mp3 players such as xmms). So real coding is required.

XawTV
The base
Fame: MPEG Encoder
Provides MPEG "software-only" encoder with MMX, and network capability (no sound)
MP1E
software MPEG I (only I frames)
V4L module for Perl
Download most recent Video::V4l (includes RTJpeg too)

Considerations: With fame-1.0.2 320x240@20fps on K6/2 500 gives 250KB/s (2.0Mb/s or 1/50 of 100Mb/s), for an 1:30h movie this would be 1.35GB MPEG-I file. So, an 240min video-cassette represents 3.6GB MPEG-I. I personally have aprx. 150 movies (aprx. 260hrs), they would be about 230GB. Currently my server (at home) has 86GB disk-space (several UW[2] disks) . . . in a nutshell, on a 20GB EIDE you can store 14x 1:30hrs movies each 1.4GB in size.

The same disk-bandwidth with mp1e-1.7.1 (video-only), unfortunately the OSS driver (YMF740C) and mp1e-1.7.1 hangs the machine so only video works (no sound), debugging required.

The videos are stored on the server as MPEG-I (prefered or any other 'open' format with alike compression-rate and possibility to encode/decode with K6/2 500 at full-rate) within folders.

Media Client
4. Hardware

Connectivity

 

Media Client
5. User Interface (UI)

Overview

 We have many devices in one: Video, TV, Radio, CD/MP3-player. Therefore a well-thought and simple UI needs to be developed, where all commonalities are found (e.g. volume up/down, previous/rewind, next/forward, play, pause etc)

Addtionally it should be themeable (aka skins) so people can develop their own UI or prefered design.

Input Devices

 Control via
  • IR remote control (0-9, volume, rewind/forward/stop etc)
  • keyboard only
  • mouse only
  • touch-screen only
  • voice only
or any combination of it (allowing flying change of the input-device).

Details on Input Devices.

Preparation

 I prefere perl, TK or GTK (it's themeable), and just found V4l for perl here (CPAN).

xawtv has some nice tools (from its page):

  • fbtv is a TV application for the linux console, it uses the new 2.2.x framebuffer devices.
  • set-tv, a command line tool to set video4linux parameters (tune in some channel, set TV norm, ...).
  • streamer, a command line tool for capturing still images and avi-videos (with sound).
  • radio, a simple, curses-based radio app.
which could be reused in conjunction with Video::Capture::V4l and GTk-perl.

I spent a lot of time to get the video to work (I have three cards I tried, MiroPCTV, Hauppauge, MiroPCTV-Rave) and you need to read all files in the xawtv dist carefully, remember this is all PC-hardware (aka "junk" or "crap") and anything than reliable. So I ended up (2.3.99 pre9) loading the bttv and tuner modules with arguments (lookup the card-type and tuner model in .../Documentation/video4linux/bttv or .../drivers/char/bttv.c.

 insmod videodev 
 insmod bttv card=0x27 
 insmod tuner type=5 

Media Client
6. Design Ideas

To sum up, we have two main devices: music player (CD, MP3, live-radio), video player (video, MPEG I, AVI, QT, live-TV). So let's go into the details:

Music Player

 Controlling elements:
  • folders (CD-tray, MP3 files) to play or record
  • volume control (slider, up/down)
  • stored:
    • selector (next, prev, folder up/down)
    • playing list (store favourites)
  • live:
    • switch: line-in, radio
    • presets (x MHz -> name)
    • frequency tuner (hand tuning)

Since no clients has a CDROM but the server, best is you ripp-off all CDs either in Raw-16bit/44.1kHz or convert it to MP3 (112-256kbps), and place all files in directories, each song one file, one directory one CD. Extensions .mp3 and .cddraw will be supported, take a look at MP3 Lab.

Video Player

 Controlling elements:
  • folders (DVD, AVI, QT files) to play or record
  • volume control (slider, up/down)
  • brightness, contrast, hue, saturation
  • stored:
    • selector (next, prev, folder up/down)
    • playing list (store favourites)
  • live:
    • switch: tuner, composite video, svideo
    • presets (x MHz -> name)
    • frequency tuner (hand tuning)
RecordTV.Com
Allows you to record tv-shows, and watch them via realplayer then
ReplayTV.Com
Digital VCR

Picture Player

 Controlling elements:
  • folders (GIF, JPEG, etc) to display
  • zoom in/out details
  • brightness, contrast, hue, saturation (default + individual settings for each picture)
  • stored:
    • selector (next, prev, folder up/down)
    • playing list (store favourites)
  • live:
    • switch: tuner, composite video, svideo, movie-stills, quickcam, scanner, screenshot, collection of screensavers (xlock)

More follows later . . .

                                                                                                                                   

General Client HomeNetwork

Hipocrisy of the finest: "I agree that no single company can create all the hardware and software. Openness is central because it's the foundation of choice."
-- Steve Balmer (Microsoft) blaming Apple regarding iPhone, February 18, 2009

Last update 2000/07/30

All Rights Reserved - (C) 1997 - 2009 by The Labs.Com

Top of Page

The Labs.Com