Dynebolic GNU/Linux is an operating system working directly from the CD, without the need to install or change anything on harddisk. It is an embedded solution which can easily adapt any PC computer to be a fully configured workstation ready to achieve most of the tasks being discussed here and equipped with most of the software we are going to mention in the next chapters.
This operating system focuses on multimedia production, offering tools for audio and video recording, editing, playing and live manipulation; being all compiled from scratch, it takes advantage of specific binary optimizations to achieve superior performance over other generic purpose GNU/Linux distributions, often resulting in smoother processing and responsiveness on older hardware.
In fact, keeping our focus on the practice of 'reciclyng' hardware, dynebolic has a basic requirement of a PC with 200Mhz CPU and a IDE CDROM player: on such a setup it can be easily used as a comfortable surf station. When runned on a 400Mhz CPU it can be a perfect stream box for the encoding and broadcasting of a internet radio station; while it can turn a 800Mhz CPU machine into a perfect MPEG4 audio/video streaming box.
All the above tasks can be solved using dynebolic without requiring any particular technical knowledge and using a low profile setup: devices for acquisition of audio and video for the tasks mentioned above range from cheap webcams and TV cards to normal audio cards with mic/line input.
Being GNU GPL free software, dynebolic is free to be redistributed and is made available for internet download (as a burnable ISO raw cd image file) from its website dynebolic.org along with detailed documentation. You are very welcome to join and share your experience with the enthusiastic community of users and developers around it, gathered together in the dynebolic@dyne.org mailinglist.
The thaiwaneese manufacturer VIA is producing in its EPIA class products some very interesting motherboards called Mini-ITX. They are very compact and customizable computers which can be adapted to serve very well the various purposes of encoding, streaming and playing high quality video transmitted thru the net.
In particular the VIA EPIA board called Nehemiah M10000 includes TV-OUT and a onboard chip for MPEG2 decoding [1] : it is perfect for playing high quality streams and DVD movies, while still being a fully functional desktop computer supported by GNU/Linux softwares. The support for MPEG2 hardware decoding on video-out is implemented by the VIA enhanced Xine Player project. [2]
Other interesting embedded devices for video streaming are those produced by Amino, a company based in Swavesey, north of Cambridge. They are focusing on the so called IPTV [3] market by producing integrated solutions based on Linux technology, not as easy to be customized for various needs but surely very compact and efficient. In particular the AmiNET110 is a very small and compact streaming video player [4] which is apparently going for consumer grade production: it can play MPEG2 RTSP streams from the network and is fully compatible with the Videolan streaming server, a rough estimation for its price floats around 150EU.
The Hauppage PVR250 and PVR350 are MPEG2 encoder cards are fully supported on the GNU/Linux platform [5] by the IVTV Linux driver module and so far can be employed using two softwares: MythTV and Videolan. A simple and efficient software to do MPEG2 capture from the card is still missing, therefore the best way to do that still seems to be the commandline technique:
~ #cat /dev/video0 > capture.mp2 [Enter] and CTRL-c to stop
The documentation on how to setup this card in GNU/Linux is fairly extended, the best and most direct tips are found on the IVTV wiki pages, both for PAL and NTSC setup of the card.
Example 1. setup for PAL video input MPEG2 encoding
compile and install the ivtv kernel module, then copy the following lines in your /etc/modules.conf
alias char-major-81 videodev alias char-major-81-0 ivtv alias /dev/v4l ivtv options ivtv debug=0 ivtv_pal=1 options tuner type=5 pal=1 options saa7127 enable_output=1 output_select=0 pal=1 options msp3400 once=1 simple=1 add below ivtv msp3400 saa7115 saa7127 tuner add above ivtv ivtv-fbthen load the module with a simple modprobe ivtv, the /dev/video0 device will give out encoded video with a simple "cat" command, while the /dev/fb0 device will be decoding MPEG2 and can also be used as an addictional framebuffer display device.
The PVR price floats around 240EU while they have many of the features of other expensive competitors. The compressed video can be acquired either from live video plugged into the card (composite or s-video) or from memory mmap. [6]
The Roku HD1000 is a recent product shipped by Rokulabs getting on the consumer grade market at the price of 499$ as the "the world's first high-definition digital media player". The product displays content from memory cards or networked PCs on High Definition TVs (HDTVs) including LCD and Plasma TVs. The HD1000's open, Linux-based architecture makes it especially interesting to embedded hackers, and Roku encourages such use.
It shows up a range of media capabilities comprises digital photos, video, music, and "dynamic media applications"; content is displayed through memory card slots for CompactFlash, MMC, SD, Memory Stick, and SmartMedia. Or, the Roku HD1000 can connect via Ethernet or Wi-Fi to a home network. The device works with any TV, though it was built specifically for HDTVs.
The so called Roku OS is the supposedly open platform that includes Roku's advanced media APIs and the Linux Kernel. Roku says that developers can quickly craft innovative and custom applications that take advantage of the TV-centric user interface elements, network and memory card access, MP3, MPEG, windowing system, graphics library, and other media engines. A C/C++ SDK will be available by the end of the year 2004, but still nothing is there.
What's under the hood? The HD1000 is based on an ATI Xilleon x225 processor which includes a 300MHz MIPS architecture CPU core, 2D and 3D graphics engines, video and graphics scalers, and a high-definition MPEG2 decoder. It comes with 32MB of 133MHz DDR system RAM and 32MB of 133MHz DDR video RAM. The device boots a custom bootloader from a small serial flash, the bootloader then looks for a bootfile (the Linux kernel) on the CompactFlash slot. If it doesn't find one, it boots the Linux kernel from the 16MB internal NAND Flash memory chip.
| [1] | the CLE266 functionality has been reverse engineered in a V4L module to make it work with Linux kernels, see http://www.ivor.it/cle266 |
| [2] | 2.4.23 linux kernel has specific support for EPIA architecture |
| [3] | Internet Protocol TV |
| [4] | Specs: MIPS 350 CPU with Flash memory, 10/100Eth, MPEG2 8Mb/s decoder, composite video out to 4:3 and 16:9 formats. |
| [5] | most probably the IVTV driver will be included in the 2.6 series Linux kernel. |
| [6] | mmap capability in encoder cards is not always present, it means the possibility to encode video generated from inside the computer (softwares and such), and not from a source plugged via a cable: this is a key feature for transcoding functionalities. |