mirror of https://github.com/tLDP/LDP
1019 lines
24 KiB
Plaintext
1019 lines
24 KiB
Plaintext
<!doctype linuxdoc system>
|
|
|
|
<!--
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
Changelog:
|
|
05-Mar-2001: Initial Version of Linux-VCR HOWTO
|
|
: Based on HOWTO-template for Big HOWTOs by Stein Gjoen
|
|
-->
|
|
|
|
|
|
<article>
|
|
|
|
<title>VCR-HOWTO - Using your GNU/Linux computer as a VCR
|
|
|
|
<author>Brian Hayward, <tt/twivel@slothmud.org/
|
|
|
|
<date>0.04, 2001-07-30
|
|
|
|
<abstract> <!-- the abstract: a short and precise description -->
|
|
<nidx>VCRHOWTO</nidx> <!-- add indexing keywords as you go along -->
|
|
<!-- nidx means the indexed word is not in output of main text, only in the index -->
|
|
This is a guide to setting up your GNU/Linux workstation as a digital VCR using
|
|
the video4linux driver and a supported tuner card. A section has been added for creating VCD's that can be
|
|
played in any DVD/VCD player as well.
|
|
</abstract>
|
|
|
|
|
|
<!-- Table of contents -->
|
|
<toc>
|
|
|
|
<!-- Begin the document -->
|
|
|
|
|
|
<sect>Introduction
|
|
|
|
<p> <!-- always use a p tag (paragraph) immediately after a sect tag -->
|
|
<nidx>VCRHOWTO!introduction</nidx> <!-- here introduction is a sub entry of template, exclamationmark is separator -->
|
|
This is a guide to setting up your GNU/Linux computer as a VCR. Setting up my VCR took a little research, but it
|
|
didn't turn out to be as difficult as I thought. I decided to publish my results so others may benefit from what
|
|
I've done. This is by no means the only method to achieve the same results as there are several applications out
|
|
there that may perform similar tasks. Hopefully any unique procedures for configuring other software or devices
|
|
may be incorporated into this document.
|
|
|
|
<sect1>Copyright
|
|
<p>
|
|
Copyright (c) 2001 by Brian Hayward (Twivel)
|
|
<P>
|
|
Please freely copy and distribute (sell or give away) this document in
|
|
any format. It's requested that corrections and/or comments be forwarded
|
|
to the document maintainer. You may create a derivative work and distribute
|
|
it provided that you:
|
|
|
|
<itemize>
|
|
<item>
|
|
Send your derivative work (in the most suitable format such as
|
|
sgml) to the LDP (Linux Documentation Project) or the like for posting
|
|
on the Internet. If not the LDP, then let the LDP know where it is
|
|
available.
|
|
<item>
|
|
License the derivative work with this same license or use GPL.
|
|
Include a copyright notice and at least a pointer to the license used.
|
|
<item>
|
|
Give due credit to previous authors and major contributors.
|
|
</itemize>
|
|
|
|
<P>
|
|
If you're considering making a derived work other than a translation,
|
|
it's requested that you discuss your plans with the current maintainer.
|
|
|
|
|
|
|
|
<sect1>Disclaimer
|
|
<p>
|
|
|
|
Use the information in this document at your own risk. I disavow any
|
|
potential liability for the contents of this document. Use of the
|
|
concepts, examples, and/or other content of this document is entirely
|
|
at your own risk.
|
|
|
|
All copyrights are owned by their owners, unless specifically noted
|
|
otherwise. Use of a term in this document should not be regarded as
|
|
affecting the validity of any trademark or service mark.
|
|
|
|
Naming of particular products or brands should not be seen as endorsements.
|
|
|
|
You are strongly recommended to take a backup of your system before
|
|
major installation and backups at regular intervals.
|
|
|
|
|
|
<sect1>News
|
|
<p>
|
|
<nidx>VCRHOWTO!news on</nidx>
|
|
This is the first release. No news yet.
|
|
|
|
The latest version of this document can be found at <url url="http://www.slothmud.org/~hayward/vcr-howto" name="Here">.
|
|
|
|
|
|
<sect1>Credits
|
|
<p>
|
|
|
|
The following individuals either helped me directly or indirectly during the
|
|
process of developing this HOWTO. Several tips that were suggested by these
|
|
people have not been added to this document yet, don't worry - all in good time.
|
|
|
|
<tscreen><verb>
|
|
david (at) lupercalia.net -- For talking me into learning SGML
|
|
sjgoen (at) nyx.net -- The template for this HOWTO
|
|
knordberg (at) oru.edu -- Help with design and proof reading of this HOWTO
|
|
serge (at) tux.org -- Lots of Tips for expanding the document
|
|
gferg (at) hoop.timonium.sgi.com -- Help with SGML
|
|
remenyi (at) ace-net.com.au -- Suggestions for expanding this document
|
|
nando (at) antunes.eti.br -- Working on Portuguese Translation.
|
|
linuxpe (at) uol.com.br -- Working on Portuguese Translation.
|
|
sam (at) daemoninc.com -- Tips for expanding this document.
|
|
HeikoL77 (at) web.de -- Links to more information.
|
|
Henry.Kingman (at) zdnet.com -- Links to more information on supported video cards.
|
|
aoe (at) mars.tuwien.ac.at -- Alexander provided the section on creating VCD's.
|
|
</verb></tscreen>
|
|
|
|
<sect1>Translations
|
|
<p>
|
|
Marcio Montenegro was kind enough to translate this document to Portuguese. His translation is available at
|
|
<url url="http://sites.uol.com.br/linuxpe" name="this site">. Feel free to translate this document to other
|
|
languages. If you send me a link, I will credit you and include it in this document. Please note that for
|
|
it to be included in the Linux Documentation Project, you will have to provide it in sgml format.
|
|
|
|
<p>
|
|
|
|
|
|
<!--
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
-->
|
|
|
|
|
|
<sect>Technologies
|
|
<nidx>VCRHOWTO!technologies</nidx>
|
|
<p>
|
|
<nidx>VCRHOWTO!technologies</nidx>
|
|
This section describes the different technologies used to build your own Linux VCR.
|
|
|
|
<sect1>Tuner or Capture Card
|
|
<p>
|
|
You will need to install a supported video4linux capture card in your computer. I currently use the Hauppauge
|
|
WinTV tuner card which I purchased from Best Buy, but many other cards should work just as well. I don't have
|
|
a suggestion for which is best, I can only comment that the one I own works for me.
|
|
|
|
<sect1>Kernel video4linux driver
|
|
<p>
|
|
Many GNU/Linux distributions already provide a Linux kernel that is configured to support video4linux devices.
|
|
The Hauppauge WinTV card is supported by the 'bttv' driver. I have to load two modules into the linux kernel
|
|
to support my card, namely the 'tuner' and 'bttv' modules. Check out the <url url="http://roadrunner.swansea.linux.org.uk/v4l.shtml" name="V4L homepage"> for details on
|
|
supported tuner cards. Also check out <url url="http://lhd.zdnet.com/db/searchproduct.cgi?_catid=17" name="ZDnet Linux Hardware"> for
|
|
information about Linux tuner cards.
|
|
<p>
|
|
|
|
<sect1>Frame Capture Software
|
|
<p>
|
|
Recording with your digital VCR of course requires frame capture software. As I become aware of available software
|
|
for capturing audio/video to mpeg/avi formats, I will place it in this list. If you have any suggestions for good
|
|
software please let me know and I'll add it here.
|
|
|
|
<p>
|
|
<sect>Implementation
|
|
<p>
|
|
<nidx>VCRHOWTO!implementation</nidx>
|
|
Now lets go through the steps of actually configuring your computer as a VCR.
|
|
|
|
<sect1>Install and Configure Tuner Card
|
|
<p>
|
|
My particular tuner card required special parameters to the 'tuner' and
|
|
'bttv' modules because it was an older model and wasn't properly auto-detected.
|
|
If you can watch TV through your card via xawtv, then you have correctly
|
|
configured your card. Here are the configuration lines from my /etc/modules.conf
|
|
(or /etc/conf.modules for older distributions).
|
|
<verb>
|
|
options -k bttv radio=1 card=2
|
|
options -k tuner debug=0 type=6
|
|
</verb>
|
|
These parameters will vary depending on the model of your card, see the documentation
|
|
found in the linux source (linux/Documentation/video4linux) to figure out exactly
|
|
how to configure your card. I added these modules to /etc/modules so they would
|
|
automatically load on bootup. You can also manually load them with 'modprobe modulename'
|
|
as root. I'm currently using the 2.4.2 kernel, but I have had success with this
|
|
card with all of the 2.2.x kernels as well. Hint: the user may need to have
|
|
ownership of the /dev/video /dev/video0 files (and maybe other devices as well)
|
|
before the tuner card will function. As always, I suggest not running any apps
|
|
as root.
|
|
|
|
<sect1>Configure xawtv to function properly.
|
|
<p>
|
|
You can either use xawtv from a reasonably current distribution, or download
|
|
the source code from the <url url="http://www.strusel007.de/linux/xawtv/" name="xawtv Homepage">
|
|
Make sure xawtv functions for your tuner card before proceeding.
|
|
|
|
<sect2>Sample .xawtv configuration file.
|
|
<p>
|
|
Here is a sample ".xawtv" configuration file. This should be placed within the
|
|
home directory for the user who will be doing the VCR recording. I suggest adding
|
|
presets to your .xawtv file for all channels(0-NNN) (even non-existing ones) because you
|
|
will use the "v4lctl" command to switch channels later. This command makes use
|
|
of 'preset number' rather than 'channel number', so it's convenient to have preset
|
|
numbers be the same as actual channel numbers. The following configuration file
|
|
was designed for US-cable, your mileage may vary.
|
|
<verb>
|
|
[global]
|
|
freqtab = us-cable
|
|
pixsize = 128 x 96
|
|
pixcols = 1
|
|
jpeg-quality = 75
|
|
mjpeg-quality = 75
|
|
toggle-mouse = 0
|
|
keypad-ntsc = no
|
|
osd = yes
|
|
|
|
# [Station name]
|
|
# capture = overlay | grabdisplay | on | off
|
|
# input = Television | Composite1 | S-Video | ...
|
|
# norm = PAL | NTSC | SECAM | ...
|
|
# channel = #
|
|
# fine = # (-128..+127)
|
|
# key = keysym | modifier+keysym
|
|
# color = #
|
|
# bright = #
|
|
# hue = #
|
|
# contrast = #
|
|
|
|
[defaults]
|
|
norm = NTSC
|
|
capture = over
|
|
input = Television
|
|
|
|
|
|
[CH0 0]
|
|
channel = 0
|
|
fine = 0
|
|
|
|
[CH1 1]
|
|
channel = 1
|
|
fine = 0
|
|
|
|
[CH2 2]
|
|
channel = 2
|
|
fine = 0
|
|
|
|
[CH3 3]
|
|
channel = 3
|
|
fine = 0
|
|
|
|
[CH4 4]
|
|
channel = 4
|
|
fine = 0
|
|
|
|
[CH5 5]
|
|
channel = 5
|
|
fine = 0
|
|
|
|
[CH6 6]
|
|
channel = 6
|
|
fine = 0
|
|
|
|
[CH7 7]
|
|
channel = 7
|
|
fine = 0
|
|
|
|
[CH8 8]
|
|
channel = 8
|
|
fine = 0
|
|
|
|
[CH9 9]
|
|
channel = 9
|
|
fine = 0
|
|
|
|
[CH10 10]
|
|
channel = 10
|
|
fine = 0
|
|
|
|
[CH11 11]
|
|
channel = 11
|
|
fine = 0
|
|
|
|
[CH12 12]
|
|
channel = 12
|
|
fine = 0
|
|
|
|
[CH13 13]
|
|
channel = 13
|
|
fine = 0
|
|
|
|
[CH14 14]
|
|
channel = 14
|
|
fine = 0
|
|
|
|
[CH15 15]
|
|
channel = 15
|
|
fine = 0
|
|
|
|
[CH16 16]
|
|
channel = 16
|
|
fine = 0
|
|
|
|
[CH17 17]
|
|
channel = 17
|
|
fine = 0
|
|
|
|
[CH18 18]
|
|
channel = 18
|
|
fine = 0
|
|
|
|
[CH19 19]
|
|
channel = 19
|
|
fine = 0
|
|
|
|
[CH20 20]
|
|
channel = 20
|
|
fine = 0
|
|
|
|
[CH21 21]
|
|
channel = 21
|
|
fine = 0
|
|
|
|
[CH22 22]
|
|
channel = 22
|
|
fine = 0
|
|
|
|
[CH23 23]
|
|
channel = 23
|
|
fine = 0
|
|
|
|
[CH24 24]
|
|
channel = 24
|
|
fine = 0
|
|
|
|
[CH25 25]
|
|
channel = 25
|
|
fine = 0
|
|
|
|
[CH26 26]
|
|
channel = 26
|
|
fine = 0
|
|
|
|
[CH27 27]
|
|
channel = 27
|
|
fine = 0
|
|
|
|
[CH28 28]
|
|
channel = 28
|
|
fine = 0
|
|
|
|
[CH29 29]
|
|
channel = 29
|
|
fine = 0
|
|
|
|
[CH30 30]
|
|
channel = 30
|
|
fine = 0
|
|
|
|
[CH31 31]
|
|
channel = 31
|
|
fine = 0
|
|
|
|
[CH32 32]
|
|
channel = 32
|
|
fine = 0
|
|
|
|
[CH33 33]
|
|
channel = 33
|
|
fine = 0
|
|
|
|
[CH34 34]
|
|
channel = 34
|
|
fine = 0
|
|
|
|
[CH35 35]
|
|
channel = 35
|
|
fine = 0
|
|
|
|
[CH36 36]
|
|
channel = 36
|
|
fine = 0
|
|
|
|
[CH37 37]
|
|
channel = 37
|
|
fine = 0
|
|
|
|
[CH38 38]
|
|
channel = 38
|
|
fine = 0
|
|
|
|
[CH39 39]
|
|
channel = 39
|
|
fine = 0
|
|
|
|
[CH40 40]
|
|
channel = 40
|
|
fine = 0
|
|
|
|
[CH41 41]
|
|
channel = 41
|
|
fine = 0
|
|
|
|
[CH42 42]
|
|
channel = 42
|
|
fine = 0
|
|
|
|
[CH43 43]
|
|
channel = 43
|
|
fine = 0
|
|
|
|
[CH44 44]
|
|
channel = 44
|
|
fine = 0
|
|
|
|
[CH45 45]
|
|
channel = 45
|
|
fine = 0
|
|
|
|
[CH46 46]
|
|
channel = 46
|
|
fine = 0
|
|
|
|
[CH47 47]
|
|
channel = 47
|
|
fine = 0
|
|
|
|
[CH48 48]
|
|
channel = 48
|
|
fine = 0
|
|
|
|
[CH49 49]
|
|
channel = 49
|
|
fine = 0
|
|
|
|
[CH50 50]
|
|
channel = 50
|
|
fine = 0
|
|
|
|
[CH51 51]
|
|
channel = 51
|
|
fine = 0
|
|
|
|
[CH52 52]
|
|
channel = 52
|
|
fine = 0
|
|
|
|
[CH53 53]
|
|
channel = 53
|
|
fine = 0
|
|
|
|
[CH54 54]
|
|
channel = 54
|
|
fine = 0
|
|
|
|
[CH55 55]
|
|
channel = 55
|
|
fine = 0
|
|
|
|
[CH56 56]
|
|
channel = 56
|
|
fine = 0
|
|
|
|
[CH57 57]
|
|
channel = 57
|
|
fine = 0
|
|
|
|
[CH58 58]
|
|
channel = 58
|
|
fine = 0
|
|
|
|
[CH59 59]
|
|
channel = 59
|
|
fine = 0
|
|
|
|
</verb>
|
|
<p>
|
|
|
|
<sect1>Install the avifile library
|
|
<p>
|
|
Download the latest avifile package from <url url="http://divx.euro.ru" name="DiVX :-) Homepage">.
|
|
You will need avifile-0.5x and binaries-xxxxxx.zip. You should extract the binaries to
|
|
/usr/lib/win32. The next section describes compiling and installing avifile-0.53-5.
|
|
<p>
|
|
|
|
<sect2>Compiling and installing avifile-0.53-5
|
|
<p>
|
|
<verb>
|
|
# tar xvfz avifile-0.53-5.tar.gz
|
|
# cd avifile-0.53-5
|
|
# ./configure
|
|
# make
|
|
# make install
|
|
# mkdir /usr/lib/win32
|
|
# cd /usr/lib/win32
|
|
# unzip /path/to/binaries-010122.zip
|
|
</verb>
|
|
You will need to be root for the make install step to work.
|
|
If you receive any errors, they were probably due to a missing dependency during
|
|
the configure step. Resolve any dependencies and try again. This should work
|
|
smoothly on any recent distribution that was installed with 'development' tools.
|
|
<p>
|
|
|
|
<sect1>Installing the VCR frame-grabber program
|
|
<p>
|
|
You can get the latest vcr program (vcr-1.07 at the time I wrote this) from
|
|
<url url="http://www.stack.nl/~brama/vcr/" name="The VCR Homepage">.
|
|
<p>
|
|
|
|
<sect2>Compiling and installing vcr-1.07
|
|
<p>
|
|
You will need to be root for the make install step to work.
|
|
<verb>
|
|
# tar xvfz vcr-1.07.tar.gz
|
|
# cd vcr-1.07
|
|
# ./configure
|
|
# make
|
|
# make install
|
|
</verb>
|
|
|
|
<sect2>Sample .vcrrc configuration file
|
|
<p>
|
|
By default, vcr installs everything into /usr/local (unless you changed the
|
|
prefix on the ./configure line). You can now read the man page for
|
|
vcr with: 'man -M/usr/local/man vcr'. This is where I got the initial
|
|
.vcrrc file. I configured this one for my needs and added the same presets
|
|
to this file as I did with the .xawtv file. If you think these files look
|
|
similar, it's because vcr was originally based on the xawtv code base.
|
|
Here is the .vcrrc I use: (note that the new 'audiobitrate' parameter means
|
|
record audio in mp3 format at the specified bitrate. mp3 audio is MUCH! smaller
|
|
than PCM audio that vcr records by default. 30 minutes = 113 megs for mp3 instead
|
|
of 240megs for PCM!).
|
|
|
|
<verb>
|
|
[defaults]
|
|
quality = 95
|
|
keyframes = 15
|
|
codec = DivX ;-) low-motion
|
|
attributes = BitRate=1600
|
|
source = Television
|
|
norm = ntsc
|
|
verbose = 1
|
|
freqtab = us-cable
|
|
audiofrequency=44
|
|
audiobitrate=64
|
|
resolution=384
|
|
framerate = 29.97
|
|
grabdevice=/dev/video0
|
|
|
|
|
|
[CH0 0]
|
|
channel = 0
|
|
fine = 0
|
|
|
|
[CH1 1]
|
|
channel = 1
|
|
fine = 0
|
|
|
|
[CH2 2]
|
|
channel = 2
|
|
fine = 0
|
|
|
|
[CH3 3]
|
|
channel = 3
|
|
fine = 0
|
|
|
|
[CH4 4]
|
|
channel = 4
|
|
fine = 0
|
|
|
|
[CH5 5]
|
|
channel = 5
|
|
fine = 0
|
|
|
|
[CH6 6]
|
|
channel = 6
|
|
fine = 0
|
|
|
|
[CH7 7]
|
|
channel = 7
|
|
fine = 0
|
|
|
|
[CH8 8]
|
|
channel = 8
|
|
fine = 0
|
|
|
|
[CH9 9]
|
|
channel = 9
|
|
fine = 0
|
|
|
|
[CH10 10]
|
|
channel = 10
|
|
fine = 0
|
|
|
|
[CH11 11]
|
|
channel = 11
|
|
fine = 0
|
|
|
|
[CH12 12]
|
|
channel = 12
|
|
fine = 0
|
|
|
|
[CH13 13]
|
|
channel = 13
|
|
fine = 0
|
|
|
|
[CH14 14]
|
|
channel = 14
|
|
fine = 0
|
|
|
|
[CH15 15]
|
|
channel = 15
|
|
fine = 0
|
|
|
|
[CH16 16]
|
|
channel = 16
|
|
fine = 0
|
|
|
|
[CH17 17]
|
|
channel = 17
|
|
fine = 0
|
|
|
|
[CH18 18]
|
|
channel = 18
|
|
fine = 0
|
|
|
|
[CH19 19]
|
|
channel = 19
|
|
fine = 0
|
|
|
|
[CH20 20]
|
|
channel = 20
|
|
fine = 0
|
|
|
|
[CH21 21]
|
|
channel = 21
|
|
fine = 0
|
|
|
|
[CH22 22]
|
|
channel = 22
|
|
fine = 0
|
|
|
|
[CH23 23]
|
|
channel = 23
|
|
fine = 0
|
|
|
|
[CH24 24]
|
|
channel = 24
|
|
fine = 0
|
|
|
|
[CH25 25]
|
|
channel = 25
|
|
fine = 0
|
|
|
|
[CH26 26]
|
|
channel = 26
|
|
fine = 0
|
|
|
|
[CH27 27]
|
|
channel = 27
|
|
fine = 0
|
|
|
|
[CH28 28]
|
|
channel = 28
|
|
fine = 0
|
|
|
|
[CH29 29]
|
|
channel = 29
|
|
fine = 0
|
|
|
|
[CH30 30]
|
|
channel = 30
|
|
fine = 0
|
|
|
|
[CH31 31]
|
|
channel = 31
|
|
fine = 0
|
|
|
|
[CH32 32]
|
|
channel = 32
|
|
fine = 0
|
|
|
|
[CH33 33]
|
|
channel = 33
|
|
fine = 0
|
|
|
|
[CH34 34]
|
|
channel = 34
|
|
fine = 0
|
|
|
|
[CH35 35]
|
|
channel = 35
|
|
fine = 0
|
|
|
|
[CH36 36]
|
|
channel = 36
|
|
fine = 0
|
|
|
|
[CH37 37]
|
|
channel = 37
|
|
fine = 0
|
|
|
|
[CH38 38]
|
|
channel = 38
|
|
fine = 0
|
|
|
|
[CH39 39]
|
|
channel = 39
|
|
fine = 0
|
|
|
|
[CH40 40]
|
|
channel = 40
|
|
fine = 0
|
|
|
|
[CH41 41]
|
|
channel = 41
|
|
fine = 0
|
|
|
|
[CH42 42]
|
|
channel = 42
|
|
fine = 0
|
|
|
|
[CH43 43]
|
|
channel = 43
|
|
fine = 0
|
|
|
|
[CH44 44]
|
|
channel = 44
|
|
fine = 0
|
|
|
|
[CH45 45]
|
|
channel = 45
|
|
fine = 0
|
|
|
|
[CH46 46]
|
|
channel = 46
|
|
fine = 0
|
|
|
|
[CH47 47]
|
|
channel = 47
|
|
fine = 0
|
|
|
|
[CH48 48]
|
|
channel = 48
|
|
fine = 0
|
|
|
|
[CH49 49]
|
|
channel = 49
|
|
fine = 0
|
|
|
|
[CH50 50]
|
|
channel = 50
|
|
fine = 0
|
|
|
|
[CH51 51]
|
|
channel = 51
|
|
fine = 0
|
|
|
|
[CH52 52]
|
|
channel = 52
|
|
fine = 0
|
|
|
|
[CH53 53]
|
|
channel = 53
|
|
fine = 0
|
|
|
|
[CH54 54]
|
|
channel = 54
|
|
fine = 0
|
|
|
|
[CH55 55]
|
|
channel = 55
|
|
fine = 0
|
|
|
|
[CH56 56]
|
|
channel = 56
|
|
fine = 0
|
|
|
|
[CH57 57]
|
|
channel = 57
|
|
fine = 0
|
|
|
|
[CH58 58]
|
|
channel = 58
|
|
fine = 0
|
|
|
|
[CH59 59]
|
|
channel = 59
|
|
fine = 0
|
|
|
|
</verb>
|
|
<p>
|
|
<sect1>Using cron to record your favorite program.
|
|
<p>
|
|
You may want to verify vcr will record your program before setting up cron to
|
|
record your programs. You can test this by doing "vcr -t 2m test.avi", then
|
|
try to play back that two-minute sample using aviplay. Note that you will need to add
|
|
'/usr/local/bin' to your path and '/usr/local/lib' to your ld library path for this
|
|
to work properly. It was also suggested that you can use 'at' to record your
|
|
program as well, this may be useful for times when you just want to record a
|
|
program once at a specific time, but not regularly. Here is a sample shell
|
|
script that can be called from cron:
|
|
|
|
<sect2>Sample cron shell script
|
|
<p>
|
|
This is a very simple script that merely switches to a channel and records
|
|
sixty minutes of a program to a date oriented filename. Place this in $HOME/bin
|
|
of the user who will actually do the recording - since I am going to run it at
|
|
6pm, I'll call it recordshow6pm.sh.
|
|
<p>
|
|
<verb>
|
|
#!/bin/sh
|
|
LD_LIBRARY_PATH=/usr/local/lib
|
|
export LD_LIBRARY_PATH
|
|
PATH=/usr/local/bin:$PATH
|
|
export PATH
|
|
|
|
DATE=`date +%m%d%y`
|
|
FILENAME=/path/to/myshow-6pm-$DATE.avi
|
|
v4lctl setstation 3
|
|
vcr -t 60m $FILENAME
|
|
</verb>
|
|
<p>
|
|
<sect2>Calling the script from cron
|
|
<p>
|
|
Now it's time to call it from cron, monday through friday at 6pm. To do this,
|
|
run the crontab -e command as the correct user and enter the following line:
|
|
<verb>
|
|
00 18 * * 1-5 /home/username/bin/recordshow6pm.sh
|
|
</verb>
|
|
<p>
|
|
|
|
<sect2>Calling the script from at
|
|
<p>
|
|
If you'd rather call the script from at, for one-time execution, you may instead do this:
|
|
<verb>
|
|
at -f /home/username/bin/recordshow6pm.sh 18:00
|
|
</verb>
|
|
<p>
|
|
|
|
<sect>Alternate Recorder - Creating VCD's for playback on DVD/VCD Players
|
|
<p>
|
|
<sect1>Introduction to VCD Creation
|
|
<p>
|
|
I must thank Alexander Oelzant for creating this portion of the VCR-HOWTO. His original version
|
|
is located at: <url url="http://131.130.199.155/~aoe/mystuff/mpeg2_movie-avipatch/README.bttv2mpeg"
|
|
name="README.bttv2mpeg">.
|
|
<p>
|
|
After recording shows on my computer for a while, I realized it was much nicer to watch
|
|
the shows on my full-sized television set than to watch them on my computer monitor.
|
|
There are two options for doing this: 1) Purchase a video card with TV-OUT and run a cable
|
|
to my television. or 2) Create a VCD and play it in my DVD Player. Since CD-R and CD-RW media
|
|
is really cheap I decided to go this route.
|
|
<p>
|
|
This section could theoretically be done in a different HOWTO because it uses a different
|
|
method for recording/converting than the other sections of the VCR-HOWTO use. This is primarily
|
|
because I haven't figured out how to create VCD compatible mpeg's using vcr. If your goal is to
|
|
create VCD's, use this section of the HOWTO. If you don't care about VCD's, completely ignore
|
|
this section of the howto because these procedures require MUCH MORE disk space than using vcr
|
|
to record for playing under linux.
|
|
<p>
|
|
|
|
|
|
<sect1>Required Hardware for VCD Creation and Playing
|
|
<p>
|
|
<verb>
|
|
1)A linux supported CD writer.
|
|
2)A bttv compatible TV Tuner Card (WinTV is one good example)
|
|
3)A VCD player or DVD Player
|
|
</verb>
|
|
<p>
|
|
<sect1>Required Software for VCD Creation
|
|
<p>
|
|
This is one method for creating VCD's under linux. If you have a better method, please let me know.
|
|
The following list of software contains the versions I found to work well for me under Red Hat 7.1.
|
|
<p>
|
|
<verb>
|
|
1)NuppelVideo 0.52a (nuvrec must be setuid root)
|
|
2)exportvideo 7e-pre4 (must be this version or later)
|
|
3)mjpegtools 1.4.1 (installed rpm found on rpmfind.net)
|
|
4)toolame 02h
|
|
5)mplex 1.1
|
|
6)vcdimager 0.6.2 (installed rpm found on rpmfind.net)
|
|
7)cdrdao 1.1.4 (rpm from redhat 7.1)
|
|
</verb>
|
|
<p>
|
|
<sect1>Procedure for creating a VCD
|
|
<p>
|
|
<verb>
|
|
1)nuvrec -t _NUM_m _filename_
|
|
_NUM_m = size. E.g. 30m = 30 minutes.
|
|
2)nuvplay -e _filename_.nuv | toolame -b 224 -m s /dev/stdin _filename_.mp2
|
|
3)exportvideo _filename_.nuv "|mpeg2enc -o _filename_.m1v"_
|
|
4)mplex -f 1 -s 2324 -p 1 -o _filename_.mpg _filename_.m1v _filename_.mp2_
|
|
5)vcdimager -l "Movie Title" -c _filename_.cue -b _filename_.bin _filename_.mpg_
|
|
6)cdrdao write --device _your_device_ _filename_.cue_
|
|
7)Eject the cd-r, stick it in the vcd player, press play and enjoy._
|
|
8)File Sizes From each step for 30 minutes of data._
|
|
|
|
Bytes Filename Created from step? Can Delete after Step?
|
|
=====================================================================
|
|
1391756119 finefilm.nuv 1) nuvrec 2) toolame and 3) mpeg2enc
|
|
50401280 finefilm.mp2 2) toolame 4) mplex
|
|
259097824 finefilm.m1v 3) mpeg2enc 4) mplex
|
|
313793452 finefilm.mpg 4) mplex 5) vcdimager
|
|
120 finefilm.cue 5) vcdimager 6) cdrdao
|
|
318808896 finefilm.bin 5) vcdimager 6) cdrdao
|
|
---------------------------------------------------------------------
|
|
Total approx 2.3g for 30 minutes of sample data.
|
|
If you delete previous files after the appropriate steps, max used space
|
|
for 30 minutes of data was 1.7gb.
|
|
</verb>
|
|
|
|
<sect>Further Information
|
|
<p>
|
|
<nidx>VCRHOWTO!information resources</nidx>
|
|
In this section, you'll find more information on additional utilities or ideas for making a VCR
|
|
work under Linux.
|
|
<p>
|
|
|
|
<sect1>MyVCR Wrapper Program proposal
|
|
<p>
|
|
We need a wrapper program that provides us with the ability to do the following things (from a main menu)
|
|
<itemize>
|
|
<item>Archive recorded shows to CDR/CDRW/DVDRAM
|
|
<item>Play Recorded shows (From hard disk or prompt for the media!)
|
|
<item>Set record times for recording shows - use tvguide.com as a source for showtimes. A program
|
|
that accesses tvguide.com for showtimes is: <url url="http://http://www.cherrynebula.net/projects/tvguide/tvguide.php" name="tvguide.com perl program">
|
|
<item>Be fully configurable to used preferred recorder/player.
|
|
<item>See <url url="http://www.s.netic.de/gfiala/" name="Kvdr"> as a possible place to start.
|
|
</itemize>
|
|
<p>
|
|
|
|
<sect1>Alternate Recorders
|
|
<p>
|
|
<itemize>
|
|
<item><url url="http://mars.tuwien.ac.at/~roman/nuppelvideo" name="Slow-CPU Capture Program">
|
|
<item><url url="http://www.ee.up.ac.za/~justin/bttv" name="Vstream">
|
|
<item><url url="http://www.ee.up.ac.za/~justin/videostuff" name="Qdvt">
|
|
</itemize>
|
|
<p>
|
|
|
|
<sect1>Recording Results
|
|
<p>
|
|
<itemize>
|
|
<item>Serge Wroclawski - 200mhz CPU is not fast enough.
|
|
<item>Brian Hayward - 900mhz Duron is fast enough.
|
|
<item>Brian Hayward - 875mhz Duron is fast enough.
|
|
<item>Stephen Moore - 500mhz Celeron CPU is not fast enough.
|
|
</itemize>
|
|
<p>
|
|
|
|
<sect1>Other Suggested Ideas
|
|
<p>
|
|
<itemize>
|
|
<item>Describe recording from FM Tuner (radio) card and piping it to oggvorbiz or mp3encoder.
|
|
<item>Cable Descramblers: <url url="http://fscktv.fortyoz.org/" name="fscktv"> and
|
|
<url url="http://linux.davecentral.com/cgi-bin/homepage.pl?6158" name="CableTV">.
|
|
<item>Figure out how to implement <url url="http://www.righto.com/papers/vcr.html" name="VCR+">
|
|
<item>Check out the <url url="http://www.cadsoft.de/people/kls/vdr/index.htm" name="Video Disk Recorder Project"> -
|
|
build your own digital satellite receiver.
|
|
<item>Check out the <url url="http://linuxtv.org/" name="LinuxTV project">.
|
|
<item>A Menu Driven Video Recorder: <url url="http://www.s.netic.de/gfiala/" name="Kvdr">
|
|
</itemize>
|
|
<p>
|
|
|
|
<sect>Getting Help
|
|
<p>
|
|
<nidx>VCRHOWTO!assistance, obtaining</nidx>
|
|
Feel free to contact me if you have any questions. For product specific
|
|
questions, you may also make use of resources for the specific application.
|
|
As always, read the documentation for each product before contacting someone.
|
|
I may be contacted at <url url="mailto:twivel@slothmud.org" name="twivel@slothmud.org">.
|
|
|
|
|
|
<sect>Concluding Remarks
|
|
<p>
|
|
<nidx>VCRHOWTO!conclusion</nidx>
|
|
I hope this document has been helpful. If you have any ideas or improvements
|
|
to this document, please feel free to contact me.
|
|
|
|
<sect>Questions and Answers
|
|
<p>
|
|
<nidx>VCRHOWTO!FAQ</nidx>
|
|
<nidx>VCRHOWTO!frequently asked questions</nidx>
|
|
|
|
This is just a collection of what I believe are the most common
|
|
questions people might have. Give me more feedback and I will
|
|
turn this section into a proper FAQ.
|
|
|
|
<itemize>
|
|
|
|
<item>Q:Why don't I get audio when playing back recorded programs?
|
|
<p>
|
|
A: This could be due to several things. In order for audio recording to work,
|
|
you must have the tuner card send output to the 'line-in' on your sound card.
|
|
You must also use the mixer to enable the line-in on the sound card (if you hear
|
|
sound while recording the show, it is probably enabled). I used to have my tuner
|
|
card sound sent to my stereo receiver instead of the sound card, which was why I
|
|
didn't get sound. Finally, it may be that the sound was record properly, but your
|
|
sound device is in use by another program (esd, licq, xmms, etc).
|
|
|
|
<item>Q: Why is my video very jumpy?
|
|
<p>
|
|
A: This may be due to a slow CPU. I currently haven't determined the exact
|
|
requirements for recording with this method, I'm hoping user feedback will help
|
|
me figure out what CPU is indeed required. I have a Duron 700 that seems to work
|
|
fine, but I've heard that people with a 200-500mhz processor are unable to get
|
|
smooth video.
|
|
|
|
<item>Q: Why is the audio/video out of sync?
|
|
<p>
|
|
A: This may be due to an incorrect FPS setting for your video type. For NTSC
|
|
you will want to use 29.97. For PAL you will want to use 25. I still don't
|
|
get perfect audio/video synchronization - but I can live with it. Hopefully this
|
|
will improve over time.
|
|
|
|
</itemize>
|
|
|
|
</article>
|