• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

bitmaps/H03-May-2022-3530

videolib/H03-May-2022-864476

ChangeLogH A D12-Feb-200114.6 KiB289268

FxtvH A D12-Feb-200121.5 KiB479431

MakefileH A D03-May-20223.1 KiB13493

READMEH A D12-Feb-200126.3 KiB648468

actions.cH A D12-Feb-200147.8 KiB1,574904

actions.hH A D18-Oct-19992.5 KiB6422

annot.cH A D05-Sep-199928 KiB909554

annot.hH A D10-Oct-19973.9 KiB12266

app_rsrc.hH A D03-May-202244.5 KiB955804

appear_dlg.cH A D04-Sep-199911.4 KiB337230

appear_dlg.hH A D23-May-19971.6 KiB4511

audiocnvt.cH A D04-Sep-199915.1 KiB427287

audiocnvt.hH A D27-Jul-19972.7 KiB8241

audsav_dlg.cH A D04-Sep-199938.1 KiB1,115776

audsav_dlg.hH A D27-Jul-19972.2 KiB7133

batch_mode.cH A D23-Oct-199913.5 KiB423259

batch_mode.hH A D15-Jan-19981.5 KiB4510

eventnames.hH A D17-Mar-1997826 5349

fxtv.1H A D12-Feb-20013.1 KiB9593

fxtv_cnvt.shH A D12-Feb-200111.7 KiB460307

glob.cH A D12-Feb-20015.8 KiB184115

glob.hH A D12-Feb-20015.7 KiB204140

haup_remote.cH A D03-May-20226 KiB191122

haup_remote.hH A D15-Oct-19991.8 KiB5314

imgsav.cH A D26-Sep-199914.2 KiB422247

imgsav.hH A D24-May-19971.6 KiB4712

imgsav_dlg.cH A D06-Sep-199915.5 KiB456311

imgsav_dlg.hH A D13-Jan-19981.7 KiB5217

pixelview_remote.cH A D03-May-20227.8 KiB261152

pixelview_remote.hH A D03-Nov-19991.8 KiB5514

rawvideo.cH A D10-Mar-200018.7 KiB621297

rawvideo.hH A D13-Jan-19983.3 KiB9547

remote.cH A D03-May-202224.5 KiB845446

remote.hH A D31-May-19981.7 KiB5215

remotetrans.cH A D05-Sep-19997.4 KiB231120

remotetrans.hH A D04-Sep-19991.6 KiB4812

station.cH A D27-Oct-19973.1 KiB7932

station.hH A D11-Oct-19971.9 KiB5720

tv.cH A D12-Feb-200131.9 KiB913575

tvaudio.cH A D12-Feb-200112.7 KiB408278

tvaudio.hH A D05-Sep-19992.9 KiB9548

tvcapture.cH A D03-May-202264.6 KiB2,0861,342

tvcapture.hH A D03-May-20229.3 KiB269186

tvdebug.hH A D17-May-19982.1 KiB5419

tvdefines.hH A D04-Sep-19992.1 KiB6023

tvmenu.cH A D03-May-202239.2 KiB1,157844

tvmenu.hH A D12-Feb-20013.3 KiB11968

tvscreen.cH A D03-May-202295.1 KiB2,8511,535

tvscreen.hH A D16-Oct-19994.3 KiB15388

tvtypes.hH A D15-Jan-19982.5 KiB8542

tvutil.cH A D23-Oct-200017.3 KiB526284

tvutil.hH A D31-May-19982.5 KiB7734

vidsav_dlg.cH A D12-Feb-200178.2 KiB2,2181,561

vidsav_dlg.hH A D31-May-19981.7 KiB5015

voxware.hH A D03-May-20221.6 KiB4210

xutil.cH A D03-May-202253.3 KiB1,548836

xutil.hH A D16-Oct-19995 KiB14582

README

1                             Fxtv (BSD X TV)
2                                 Version 1.03
3
4                          Written by Randall Hopper
5
6                    URL:  http://www.freebsd.org/~rhh/fxtv
7
81. PREPARATION
9
101.1 HARDWARE
11
12          To use this application, you need a video capture/tuner card
13     that's based on the Brooktree 848 capture chip, such as one of the
14     Hauppauge Wincast/TV or Win/TV cards, the STV TV PCI card, or the
15     Intel Smart Video Recorder III.  See the BSD Bt848 driver page for
16     details:
17
18          http://telepresence.dmem.strath.ac.uk/bt848
19
201.2 THE DEVICE DRIVER
21
22          Once you have the hardware, you need the FreeBSD Brooktree 848
23     (bktr) driver.  This version of fxtv uses the bt848.970604 driver, a
24     slightly modified version of the bt848.970424 which has better support
25     for the FPS ioctl call for running-video captures and throttled
26     display rate.
27
28          Normally, recent driver versions can be found at:
29
30          http://telepresence.dmem.strath.ac.uk/bt848
31
321.3 BUILD-TIME DEPENDENCIES
33
34       - A BSD OS           (FreeBSD, NetBSD, OpenBSD, or BSDI)
35       - bktr driver
36       - tiff-3.3
37       - Xaw3d-1.3
38       - xpm-3.4j
39       - gmake-3.75
40       - XFree              (tested on v3.2 and higher)
41       - VoxWare snd driver (3.0-beta-950506)
42
431.4 RUN-TIME DEPENDENCIES
44
45       - netpbm-94.3.1           (for tifftopnm)
46       - sox-12.12               (Audio Stream Conversions)
47       - mpeg_encode-1.5b        (MPEG Video Encoder)
48       - dist10.tar.gz           (MPEG Audio Encoder)
49       - mpg123                  (MPEG Audio Player)
50       - mplex-1.1               (Mixes MPEG Audio/Video Streams into a
51                                  single MPEG System Stream)
52
53     Though not used by fxtv directly, you may find these useful as well:
54
55       - mtv                     (MPEG Video & System Stream Player - Fast!)
56       - mpeg_play-2.3           (MPEG Video Player)
57
58     Most of these are existing FreeBSD packages.  The exceptions are
59     dist10, mtv, and mpg123.  See Appendix A for info on how to get,
60     build, and install dist10.  mtv is a Linux utility that can be had
61     from:
62
63               http://www.mpegtv.com/player.html
64
65     and mpg123 source is available at:
66
67               http://www.sfs.nphil.uni-tuebingen.de/~hipp/mpg123.html
68
69     Building it is a snap.
70
71
721.5 BUILDING AND INSTALLING FXTV
73
74    Installing the port is more desirable because you can then just
75    pkg_delete it when you want to upgrade to the next version.
76
77    1. Install the port
78
79       > tar -zxovf fxtv-<version>-port.tgz
80       > cd fxtv
81       > su
82       # make install
83
84    OR
85
86    2. Installing from the source package
87
88       > tar -zxovf fxtv-<version>.tgz
89       > cd fxtv-<version>
90       > gmake
91       > su
92       # gmake install
93
94    NOTE FOR FXTV USERS NOT RUNNING XFREE:  Specify "HAVE_XFREE86=NO"
95    on the make command line to compile-out support for XFree86-specific
96    features.  For example, when installing from the port:
97
98       # make HAVE_XFREE86=NO install
99
1001.6 CUSTOMIZING FXTV
101
102    Modifying Fxtv's default behavior can be accomplished in one of two
103    ways:  1) modifying the Fxtv X resources (see the sample Fxtv resource
104    file, or 2) specifying command-line options.
105
106    Note that the command-line options in most cases have the same names
107    as the X resources.  Refer to the delivered global Fxtv resource file
108    for resource file examples, and run:
109
110         fxtv -help
111
112    to display all the supported command-line options:
113
114    -driverDefaults             - Use appearance parms from driver on startup
115    -colorbars                  - Turn on colorbar display (for testing)
116    -hue [-90...90]             - Initial Hue           ; def=0
117    -brightness [-50..50]       - Initial Brightness (%); def=0
118    -contrast [0..200]          - Initial Contrast   (%); def=100
119    -satU [0..200]              - U Saturation       (%); def=100
120    -satV [0..284]              - V Saturation       (%); def=100
121    -fps <#>                    - Display Speed (frames per second)
122    -noaspectlock               - Disable 4:3 aspect lock on video window
123
124    -deviceNumber <#>           - bktr/tuner device numbers; def=0
125    -inputFormat [pal|ntsc]     - Tuner signal input format
126    -tunerMode [cable|antenna]  - Tuner Mode
127    -defaultInput <input>       - Startup tuner signal input
128                                    [tuner|video|svideo|csvideo|dev3]
129    -defaultAudioInput <input>  - Startup TV card audio input
130                                    [tuner|external|internal|auto]
131    -defaultChannel <#>         - Startup Channel Number
132    -cableStationList   <...>   - List of cable stations presets(see rsrc file)
133    -antennaStationList <...>   - List of antenna stations presets
134    -cableFreqSet   <freqset>   - Freq set for cable   (def = cableirc)
135                                    [nabcst|cableirc|cablehrc|weurope|
136                                     jpnbcst|jpncable|xussr|australia|france]
137    -antennaFreqSet <freqset>   - Freq set for antenna (def = nabcst)
138
139    -noAudio                    - Suppress playing audio through soundcard
140    -dspDevice                  - Override default DSP device   (/dev/dsp)
141    -mixerDevice                - Override default mixer device (/dev/mixer)
142    -mixerChannel               - Audio mixer (line,line1/2/3,cd,mic,video)
143
144    -stationInWinTitle          - Display station text in window title
145    -stationInWinIcon           - Display station text in window icon
146
147    -stationAnnotFont <fontpat> - Font pattern for station annot (see rsrcfile)
148    -stationAnnotColor <color>  - Color for station annot
149    -stationAnnotDelay <msec>   - How long to display (0 = never; -1 = always)
150    -stationAnnotIDOnly         - Display station ID alone (when available)
151
152    -remoteType                 - Type of attached remote control
153                                  [None|X10|Hauppauge|PixelView]
154
155    -recCmdMpeg2                - MPEG-2 Audio record command
156    -recCmdMpeg3                - MPEG-3 Audio record command
157    -playCmdMpeg2               - MPEG-2 Audio play   command
158    -playCmdMpeg3               - MPEG-3 Audio play   command
159
160    -videoCnvtScript            - Video convers workhorse script for vid encod.
161
162    -bswap2Bpp                  - Byte/word swap options for direct video
163    -nobswap2Bpp                  (used to match driver's pixel format with
164    -bswap3Bpp                    the video card's)
165    -nobswap3Bpp
166    -bswap4Bpp                        2Bpp - 15/16-bpp modes
167    -nobswap4Bpp                      3Bpp - packed 24bpp modes
168    -bwwap4Bpp                        4Bpp - unpacked 24bpp modes
169    -nowswap4Bpp
170
171    -Bpp24bit [3|4]             - Set frame buff Bytes-per-pixel for 24bpp mode
172    -Bpp32bit [3|4]             - Set frame buff Bytes-per-pixel for 32bpp mode
173
174    -videoCapFile[1-4]          - Optional paths (0-4) to scratch file paths
175                                  to use for vid capt; spread load across disks
176
177    -noafc                      - Disable AFC
178    -disableDirectV             - Disable DMA transfers straight to video card
179    -debug <area>               - Debug Msgs
180                                  {startup,subproc,events,subproc,video,frame}
181    -help                       - Display program options
182
183
1841.6.1 CUSTOMIZING STATION PRESETS
185
186    ---INTRODUCTION:---
187
188    Fxtv supports two tuner modes: "cable" and "antenna".  Each of these
189    two modes can be assigned a frequency set, which determines the
190    frequency-to-channel-number mapping for the tuner mode (which are set
191    via the antennaFreqSet and cableFreqSet resources).  The frequency set
192    you choose for each tuner mode will depend on where you live and who
193    your NTSC or PAL signal providers are.  For example, in the US (NTSC),
194    you probably want to use:
195
196        Fxtv.antennaFreqSet:     nabcst
197        Fxtv.cableFreqSet:       cableirc
198
199    As with any standard NTSC or PAL TV or VCR, Fxtv supports "station
200    preset lists" for each tuner mode (cable and antenna), which
201    effectively define the hot-list of stations you will be surfing.
202    Station preset lists are specified via the:
203
204        Fxtv.antennaStationList: <preset list>
205        Fxtv.cableStationList: <preset list>
206
207    resources.
208
209    Here's how Fxtv models preset lists: Each <preset> in a <preset list>
210    is associated with a specific <channel-num> or a specific <frequency>.
211    Optionally, each <preset> may be also associated with a <station-id>,
212    which is a convenience name used to refer to the station preset
213    (e.g. "E10","ITD",... for the PAL folks; or "FOX","CBS",... for the US
214    folks).
215
216    When specified, <station-id>s can be used for keying-in station changes
217    and will also be displayed on the Fxtv window to reflect the current
218    station.  Whether <station-id>s are specified or not, <channel-num>s
219    and <frequency>s can be used to key-in station changes, and will be
220    used for display in the absense of a <station-id>.
221
222    If you associate a preset with a <channel-num>, when the preset is made
223    active, that channel number is passed to the Bt848 driver which in-turn
224    maps it to a frequency (using the frequency set you configured for that
225    tuner mode).  This frequency is used to configure the tuner.
226
227    If, on the other hand, you associate a preset with a <frequency>, the
228    frequency itself is passed to the Bt848 driver, bypassing its
229    channel-to-freq conversion.  Again, this frequency is used to configure
230    the tuner.
231
232    Specifying a station in terms of its frequency can be useful when the
233    driver doesn't have an accurate channel-to-freq mapping for all
234    of the stations used in your area.
235
236
237    ---SYNTAX:---
238
239    With that preamble, here's the Fxtv syntax for encoding a <preset list>:
240
241         <preset list>       := [<preset>|<preset-chan-range>] ...
242         <preset>            := <channel-num>
243                                F<frequency>
244                                <station-id>(<channel-num>)
245                                <station-id>(F<frequency>)
246         <preset-chan-range> := <channel-num>-<channel-num>
247         <channel-num>       := a positive integer
248         <frequency>         := a floating point number, in MHz
249
250    Note that <station-id>s are treated as case insensitive.
251
252    ---EXAMPLES:---
253
254    And here are some StationList examples:
255
256         1)  Fxtv.antennaStationList: ITA(f471.25) ITC(15) E32(21) 22-24 99
257         2)  Fxtv.antennaStationList: 3 ABC(5) PBS(f169.00) 83(f61.25)
258         3)  Fxtv.cableStationList:   3-5 19-21 23
259
260    In the first example, the station-id "ITA" is associated with the
261    frequency 471.25 Mhz (with this, either "ITA" or "f471.25" may be used
262    to key-in a station change to this station).  The station ID "ITC" is
263    associated with channel "15" in the frequency set configured for the
264    "antenna" tuner mode.  "E32" is associated with channel "21".  And
265    the channels 22, 23, 24, and 99 are also defined without explicit
266    station IDs (and thus the station-ids are defaulted to be the channel
267    numbers themselves).  The first example is equivalent to the following
268    resource definition:
269
270             Fxtv.antennaStationList: ITA(f471.25) ITC(15) E32(21) 22(22) \
271                                      23(23) 24(24) 99(99)
272
273    The second example is like the first.  Notice station-id 83 though.
274    With station IDs you can override the default channel-num-to-frequency
275    mappings (or put some into place where they didn't exist before -- the
276    more likely case).  And yes, you can also drive yourself nuts by
277    remapping channel numbers to other channel numbers if you want
278    (e.g. "3(5) 5(3)" seemingly swaps channels 3 and 5).
279
280    Note that these examples are a bit contrived just to demonstrate the
281    syntax.  For instance, you probably won't associate station presets
282    directly with frequencies unless the driver doesn't have channel
283    presets for all the stations you receive.  When the driver does have
284    the needed channel presets, with AFC on and presets associated with
285    channel numbers, the tuner will usually be able to zero-in on the
286    station if its slightly off of the channel frequency (the same as if
287    you define a preset with a frequency that's slightly off).
288
2891.6.2 CHANGING STATIONS
290
291    Fxtv provides several ways for the user to change stations:
292
293        1) Station Up/Down Arrow Buttons (on taskbar)
294        2) Station Text Widget Key-in    (on taskbar)
295        3) Video Window Key-ins
296        4) Video Window Action Routines
297
298    The Station Up & Down buttons are straightforward.  These move through
299    your predefined station list for the currently selected tuner mode in
300    the direction indicated by the button icon.
301
302    The Station Text Key-in allows you to change to any predefined station
303    or arbitrary channel number or frequency.  Acceptable values are:
304
305        1) the station IDs you've defined in your station list,
306        2) channel numbers, and
307        3) frequencies (prefix with "F" when entering).
308
309    Examples:  "E1", "FOX", "23", "f61.25".
310
311    Video Window Key-in allows you to type in channel numbers directly on
312    top of the video window.  The format is the same as with the text
313    key-in, except that station ID entry should be prefixed by "C".  This
314    is for compatibility with action routines.  Examples: "cE1", "cFOX",
315    "23", "f61.25".
316
317    And finally, Video Window Action Routines provide the user a way to
318    redefine the keys on their keyboard to change stations the way the user
319    prefers when the X pointer is over the video window.  Station changes
320    may be specified both relative to the current station, or absolutely
321    (by specifying a station ID, channel number, or frequency).  An example
322    first, followed by explanation:
323
324         Fxtv*videoWin.translations: #override            \
325            <Key>+           : TVSetStation( +1 )         \n\
326            <Key>-           : TVSetStation( -1 )         \n\
327            <Key>KP_Add      : TVSetStation( +1 )         \n\
328            <Key>KP_Subtract : TVSetStation( -1 )         \n\
329            <Key>F6          : TVSetStation( FOX )        \n\
330            <Key>F7          : TVSetStation( 23 )         \n\
331            <Key>F8          : TVSetStation( f61.25 )     \n\
332            <Key>F9          : TVSetStation( -f )         \n\
333            <Key>F10         : TVSetStation( +f )         \n
334
335    The first 4 bind both pairs of "+" and "-" keys to perform relative
336    station changes. The 5th defines F6 to set the station to the one with
337    the station ID "FOX".  The 6th defines F7 to change to the station to
338    channel 23 (assuming no station with an ID of "23" exists, in which
339    case it would take precedence).  The 7th defines F8 to change station
340    to a frequency of 61.25 MHz.  And the last two bind F9 and F10 to
341    increment and decrement frequency in small increments.
342
343    Note that "no-op()" has been registered as a valid action routine
344    for convenient unbinding of translations.
345
346    Having read 1.6.1 and customized your station presets (key in: "ITC" or
347    "15").
348
349
3501.6.3 CONFIGURING A REMOTE CONTROL
351
352    At this time, the X10 MouseRemote, Hauppauge, and PixelView remote
353    controls are supported.
354
3551.6.3.1 X10-SPECIFIC CONFIGURATION
356
357    Both stand-alone and system-mouse pass-through configuration are
358    supported in X.  Both require an updated version of moused (see
359    moused(8)), which has support for the X10 MouseRemote.
360
361    My moused patch for X10 remote support is included with this verions of
362    Fxtv, though it may already be incorporated into your moused.  You can
363    determine whether it has by running moused as follows:
364
365        moused -p /dev/cuaa0 -t x10mouseremote -3
366
367    substituting the path to the serial port your mouse is attached to
368    in place of /dev/cuaa0.  If you see:
369
370        moused: no such mouse type `x10mouseremote'
371
372    It hasn't and you need to rebuild moused with the patch.  Get it here:
373
374        http://www.freebsd.org/~rhh/fxtv/moused.x10remote.patch
375
376    And apply it like this:
377
378        # cd /usr/src/usr.sbin/moused
379        # patch < moused.x10remote.patch
380        # make
381
382    Now you're ready to go.  Kick off moused on the MouseRemote serial
383    port (if you haven't already).  For example, if your MouseRemote is
384    plugged into COM1 (cuaa0):
385
386           moused -p /dev/cuaa0 -t x10mouseremote -3
387
388    You may just want to configure this into your rc.conf so it's run each
389    time you boot up.
390
391    Next, insert these lines in your Fxtv resource file:
392
393         Fxtv.remoteType:    X10
394
395    You're ready to use your remote control!  Run Fxtv and play around with
396    it to make sure things are working.  If you have trouble,
397    run "fxtv -debug remote" to see whether fxtv is getting any remote
398    events.
399
4001.6.3.2 HAUPPAUGE-SPECIFIC CONFIGURATION
401
402    Simply insert these lines in your Fxtv resource file:
403
404         Fxtv.remoteType:    Hauppauge
405
406    and you're ready to use your remote control!  Run Fxtv and play around
407    with it to make sure things are working.  If you have trouble, run
408    "fxtv -debug remote" to see whether fxtv is getting any remote events.
409
4101.6.3.3 PIXELVIEW-SPECIFIC CONFIGURATION
411
412    Simply insert these lines in your Fxtv resource file:
413
414         Fxtv.remoteType:    PixelView
415
416    and you're ready to use your remote control!  Run Fxtv and play around
417    with it to make sure things are working.  If you have trouble, run
418    "fxtv -debug remote" to see whether fxtv is getting any remote events.
419
4201.6.3.4 COMMON CONFIGURATION
421
422    Now that you've played with it, you probably will want to custom
423    configure some of the buttons to behave differently than the default
424    configuration.  To do so, set up the remoteTranslations resource in
425    your Fxtv resource file.  You can map any button to any provided
426    Fxtv action routine, similar to the way you can for mouse events
427    and keyboard keys.  For example:
428
429          ! User-defined Remote Control Translations
430          Fxtv.remoteTranslations: \
431             <Remote>ChanUp   : TVSetStation( +1 )         \n\
432             <Remote>ChanDn   : TVSetStation( -1 )         \n\
433             <Remote>VolUp    : TVSetVolume( +1 )          \n\
434             <Remote>VolDn    : TVSetVolume( -1 )          \n\
435             <Remote>Mute     : TVToggleMute()             \n\
436             <Remote>Disp     : TVToggleZoom( fullscreen ) \n\
437             <Remote>A-B      : TVSetCaptureInput( +1 )    \n\
438             <Remote>Pause    : TVToggleFreeze()           \n\
439             <Remote>Rec      : TVVideoRecordStart()       \n\
440             <Remote>Stop     : TVVideoRecordStop()        \n\
441             <Remote>Power    : TVQuit()                   \n
442
443    Here is the list of <Remote> key names supported by the X10 Remote
444    (case insensitive):
445
446          Power,AllOn,PC,CD,Web,DVD,Phone,0,1,Home,2,Up,3,PgUp,4,Left,5,6,
447          Right,7,End,8,Down,9,PgDn,ENTER,VolUp,BrightUp,VolDn,BrightDn,
448          ChanUp,On,ChanDn,Off,MUTE,AllOff,A-B,DISP,PLAY,REW,FF,STOP,REC,
449          PAUSE,LAST
450
451    Here is the list of <Remote> key names supported by the Hauppauge
452    Remote (case insensitive):
453
454          0,1,2,3,4,5,6,7,8,9,Radio,Mute,Tv,VolUp,VolDn,Reserved,
455          ChanUp,ChanDn,Source,Minimize,FullScreen
456
4572.0 SAVING IMAGES -- TIPS
458
459    Fxtv now supports saving of the last frozen image to disk.
460
461    Saving in TIFF and PPM formats is supported.
462
463    Fxtv can save the pic in the filename you specify, or that filename
464    with an image number appended.  The latter is useful when you want to
465    capture a lot of stills on-demand (freeze, snap, freeze, snap, ...).
466
467    The action routine TVSaveImage() is provided for binding image save to
468    keyboard key or mouse button for repetitive on-demand image captures.
469
470
4713.0 SAVING AUDIO -- TIPS
472
473    Saving audio streams to disk (and playing the resulting streams) is now
474    supported in the following formats:
475
476           RAW             WAV
477           AU              AIFF
478           VOC             MPEG (Levels 2 & 3)
479
480    The capture sample format, frequency, and number of channels can be
481    specified as well.
482
483    RAW and AU are supported without the aid of external programs.  The
484    rest require that "sox" be installed (and in the PATH).
485
486    In addition, MPEG Level 2 & 3 support also require that MPEG audio
487    encoder and player utilities be installed.  The recommended player is
488    "mpg123", and the recommended encoder is the one from dist10 (see
489    RUN-TIME DEPENDENCIES above).
490
491    The MPEG player and encoder utilities are identified to Fxtv via X
492    resources in the Fxtv resource file:
493
494          ! Custom MPEG record and play commands
495          Fxtv.recCmdMpeg2:       mpeg_musicin -l 2 -p 1
496          Fxtv.recCmdMpeg3:       mpeg_musicin -l 3 -p 2
497          Fxtv.playCmdMpeg2:      mpg123
498          Fxtv.playCmdMpeg3:      mpg123
499
500    TIP:  If audio save and/or play doesn't seem to be working, fxtv
501          probably can't find "sox" or the mpeg encoder/player programs.
502          Try:
503                       fxtv -debug subproc
504
505          for more verbose output.
506
507
5083.0 SAVING VIDEO -- TIPS
509
510    Three useful video targets are supported:
511
512             Images
513             MPEG Ready
514             MPEG
515
516    With each, audio may optionally be saved at the same time.
517    The image format, capture resolution, capture rate, audio format, and
518    audio rate can also be specified.  A simple frame rate optimizer is
519    provided as well.
520
521    Selecting the "Images" target causes Fxtv to convert the captured
522    video stream into a sequence of numbered images in the specified format.
523    If audio save is enabled, audio will be simultaneously captured, and
524    post-converted to the specified format.
525
526    Selecting the "MPEG Ready" target causes Fxtv to capture images and
527    audio as with "Images", with a few additions.  The frame rate
528    is buffered to 30 frames per second, and an mpeg_encode parameter file
529    and convenience "go" shell script are created so the user is ready
530    to tweak the encoding parameters and kick it off on their own.
531
532    Finally, selecting "MPEG" is like "MPEG Ready" except that Fxtv manages
533    the entire process of running the conversion and encoding programs,
534    informing the user of the current encoding status via dialogs.
535    This is useful for grabbing video and building an MPEG as quickly and
536    simply as possible.
537
538    TIP #1 -- IF VIDEO SAVE/ENCODE DOESN'T WORK
539
540       As with audio save, if video save doesn't seem to be working,
541       try:
542                 fxtv -debug subproc
543
544    TIP #2 -- MPEG_ENCODE FRAME RATE LIMITATIONS
545
546       mpeg_encode, used to convert a sequence of images into an MPEG-1
547       video stream, is limited to frame rates of:
548
549           {23.976,  24,  25,  29.97,  30,  50, 59.94, 60}
550
551       So in general you'll get better results if you choose frame rates of
552       24, 25, or 30.
553
554    TIP #3 -- OPTIMIZING FRAME RATE
555
556       First, use the "Fxtv.videoCapFile[1-4]" resources to specify up to
557       four different files to interleave raw video/audio capture to.  If
558       you point these resources to paths on different disks, you'll get
559       much higher bandwidth than you would with just one disk (the default).
560
561       The "Optimize" control provided here is a first-cut and too
562       simplistic.  It blasts 100 frames at 30 fps to the disk at the
563       target resolution, and (averaging across blocking disk writes) it
564       looks at how long this process took to estimate the approximate
565       frame rate your disk might sustain without long hickups.
566
567       For now, you can probably eyeball a better estimate by running fxtv
568       like this:
569
570                fxtv -debug video
571
572       and doing RAW format captures at your target resolution and frame
573       rate.  Watch the output fly by in your xterm.  If you see half- to
574       whole-second delay "hickups", back the frame rate off a bit and
575       repeat until you see a fairly constant "gate" in skipped frames.
576
577    TIP #4 -- DRIVER BUG
578
579       Temporal decimation doesn't work perfectly in the driver yet.  As
580       before, 30 fps will work fine at any resolution.  With the 970604
581       driver, FPS adjustment < 30 should work OK for single-field captures
582       (i.e. num pixel rows <= 240).  However, double-field captures
583       (i.e. num pixel rows > 240) at < 30fps don't work yet, so avoid that
584       combination.  With a driver rev dated  pre-970604, don't even bother
585       with anything other than 30fps.
586
587
588APPENDIX A - BUILDING MPEG LAYER 2 & 3 ENCODER SOFTWARE
589
590  First, grab dist10.tar.gz from:
591
592  http://www.pagesz.net/~aa8vb/fxtv, or
593  ftp://ftp.tnt.uni-hannover.de/pub/MPEG/audio/mpeg2/software/technical_report
594
595  Then:
596
597  tar -zxovf dist10.tar.gz
598  cd dist10/lsf/encoder
599  ./configure
600  gmake
601  mv encode /usr/local/bin/mpeg_musicin
602  find tables -print | cpio -dumpv /usr/local/lib/mpegaudio
603  cd ../decoder
604  ./configure
605  gmake
606  mv decode /usr/local/bin/mpeg_musicout
607
608  and finally, put this env var setting in your profile:
609
610  MPEGTABLES=/usr/local/lib/mpegaudio/tables
611
612  NOTE:  For every last pinch of speed, after each "configure", modify
613  the Makefiles and change "-O" to "-O3 -ffast-math -mfancy-math-387".
614
615  NOTE:  An older version of this software is packaged as the FreeBSD
616  "mpeg_audio" port, but it doesn't like some AIFF files (byte order
617  problems), and it doesn't seem to do Level 3 audio.  dist10 does.
618
619
620APPENDIX B - MINIMIZING SCREEN CORRUPTION WHEN USING DIRECT VIDEO
621
622   Disable SaveUnders and BackingStore in your Window Manager configuration
623   to minimize the occurance of stray video trash that may appear on your
624   desktop when moving and resizing the Fxtv window while Fxtv is
625   in direct video mode.
626
627   Note that you can also use the "Refresh Screen" window manager function
628   to clean up any spurious trash as well.
629
630   FWIW, the author uses the AfterStep window manager and hardly ever sees
631   stray video trash left on the desktop or another client window.
632
633APPENDEX C - LICENSING AND DISTRIBUTION DETAILS
634
635The license and distribution terms for any publically available version or
636derivative of this code cannot be changed.  i.e. this code cannot simply be
637copied and put under another distribution license
638[including the GNU Public License.]
639
640______________________________________________________________________________
641______________________________________________________________________________
642
643
644Have fun!
645
646All suggestions, bug reports, fixes, and enhancements welcome.  Please
647mail to multimedia@freebsd.org.
648