Works with my DVD Drivers with DVD+RW disks: growisofs -speed=4 -Z /dev/dvd -J -r -l -publisher Axis -p Blaine /mnt/suse9.1cds "cdrecord -scanbus" making CDROM work??? PIPING cdrecord always specifies output device (may be able to specify /dev/stdout?), but can use - to specify stdin for input. mkisofs reads and writes stdin/stdout unless args given. !!! dd (and therefore the *iso* programs) can't open sym-link devices (at least sometimes), therefore keep running "ls -l /dev/stdin" to get down to the real 'c' device, and use that device path. splitpipe is a volume-splitting program: splitpipe -b 50 -s 8349608 -o 'growisofs -Z /dev/dvd=/dev/stdin' # N.b., -b is in KB, -s is in M. -s size here is for DL DVD. http://ds9a.nl/splitpipe/ Best calculation I can make for absolute byte capacity of DL is 8549998592 bytes = 7.96 real GB. 8349608 KB (8549998592 bytes). (This is std. DVD cap * 8.55 / 4.7, truncated to 2KB. Former from splitpipe docs; last two capacities from Wikipedia). DVD BOOTABILITY! Apparently need the following growisfos options: -J -r -l -no-emul-boot -b boot/loader/isolinux.bin -c boot/loader/boot.cat -boot-load-size 4 -boot-info-table (necessary?: -V SU00FTP.001 -L -P "SuSE Linux AG"; note that the catalog file must not exist.) DVD WRITING [Can't tell from docs whether should set-root growisofs. I guess safer to just run it as root for now.] growisofs. Need > 5.20.4.10.8 for DVD+R DL. growisofs -Z /dev/hda /path/to/dir1 /path/to/dir2 [Contents of all dirs will be merged onto the DVD]. growisofs arbitrary refuses to write a DL unless disk will be > 50% full. Remember that you're writing iso9660, not a UNIX FS, so forget keeping special file permissions, sym or hard links, etc. To save that stuff, make a tar, ufsdump, zip file and save that. N.b. iso9660 has a max file size. Some people write that is may be 4G. If try to write to a DVDR that has already been written to, get the non-intuitive error message "WRITE@LBA... Invalid argument". Real capacity of 8.5G DL DVD: Seems to not hold 8.5 real G (1024 * 1024 * 1024). Does hold 7.916 real G = 8,500,008,960 real bytes df -k of Suse DVD#1 shows 8331742K = 7.955G (real G). Some useful looking scripts, particularly for making a bootable DVD (but many be too Mandrake-specific): http://crashrecovery.org/oss-dvd/HOWTO-ossdvd.html Check out "normalize". Graphical wav editors snd dap mxv (too advanced?) xwave (nongraphical?) An mp3 file (44100 Khz) has 67900 frames for about a half hour ~> 38/s To read in an audio-type CD: As root, cdrdao read-cd --driver generic-mmc --device 0,0,0 master.toc This writes "master.toc" and "data.bin", where data.bin is in ".cdr" format. Remember that times used by cdrdao are MM:SS:FF, where 1 frame = 1/76 s. (therefore, frames go from 0 to 75); whereas sox uses MM:SS.dec Need to convert to waves like sox -t cdr data.bin ego.wav trim 32:16.434 1:35 (I think that the input to notlame must be a .wav, not a .cdr). New LG (Mitsubishi 24x, 10x, 40x (Write CDR, Write CDRW, Read any) wavplay -i gives good info about .wav files. sox FILE -e stat. Gives lostsa info, length is in seconds :( Some old CDROMs can't read CDRWs. aegir's CDROM once got stuck reading a CDR, with Media Errors in the syslog. I mounted other CDs, then remounted this one and all seems to be ok now. Takes about 16 minutes to write a full CDRW Takes 10 to 13 minutes to write a full CDR For some reason, after writing a CD, you MUST eject it (and reload obviously) before you can mount it up. Syncing the filesystem makes no difference. First have to get the IDE CDRW recognized as a SCSI device in "cdrecord -scanbus" output. (It will be accessed via /dev/scd0). May have to rmmod ide-cd to make the drive availalbe as SCSI. I had to run add lines to /etc/modules.conf as explained in the Linux CD Writing HOWTO (at linuxdoc.org). I still have to run "modprobe sr_mod". kudzu added proper lines to /etc/modules.conf for capture card. I think that i had to run "modprobe bttv". WRITING DATA mkisofs -r -o file.iso input_directory cdrecord [blank=fast] -v -eject dev=1,0,0 file.iso (Man page implies that speeds 0, 2, and 4 are more reliable, but if run without the speed= argument, it chooses speed of 8 for cdr and works great. I have no idea how units compare to CDROM x# speed, since the drive is 24x, not 8x). (Won't get a progress meter without -v; defaults to data for most file extensions) WRITING AUDIO To make Real-Audio, or anything, into .wav, just invoke the player you would normally use, but throw "vsound" in front of it... vsound realplay /tmp/god.rm (can run a command like "cdrdao read-toc --driver generic-mmc --device 0,0,0 live.toc" to make yourself a sample toc file from an existing audio CD) Note that the time format of sox is Hrs:Mins:Secs.portion, but that in .toc files is Mins:Secs:Frames, where frames goes from 0 to 74 inclusive. CLIP ADJUSTMENT: "sox infile outfile trim 1:30.5" ('trim start length') (Use this for the conversion from .wav to .cdr) VOLUME ADJUSTMENT (Amplitude) General -v switch: "sox -v 1.5 infile outfile" (Use this for the conversion from .wav to .cdr) Find optimal value : "sox infile.wav -e stat -v" Write .toc file. Audio files must be specific wave files or specific raw data files (.cdr) REQUIREMENTS Waves: .wav, 44.1 kHz rate, 16 bps, stereo, little endian Raw: big endian. I think that these are sox's .cdr files, also 44 kHz. Conversion from mp3 to raw .cdr files. mpg321 --cdr file.cdr file.mp3 sox file.wav file.cdr (Need .wav files then l2ea for vcds: mpg321 --wav file.wav file.mp3 ) ( Need to run this if a CDRW has anything on it: cdrdao blank --driver generic-mmc --device 1,0,0 cdrecord blank=fast -v dev=1,0,0 file.iso ?? 9 minutes to blank a very-little used disk :( ) cdrdao write --driver generic-mmc --device 1,0,0 --eject file.toc (The sizes printed are sizes of the data that you supply, not sizes which are actually written onto the CD-- that is smaller) VCD. Will ONLY WORK if Burner has DAO capability. Size to capture: 352x240 Frame rate???. Either 24, 23.976, 30, or 29.970 (Most useful resource seems to be http://www.vcdimager.org/guides/#guides) In addition to installing all the software at ftp://home/ftp/pub/vcd, make sure that you have the RedHat rpms cdrdao, ... (I forget what else I had to install. You will be told when you try to install an RPM that has a dependency.) CREATE VCD I have to do "modprobe bttv" between boot-up and using the capture card. I added lines to /etc/modules.conf as in the .../src/Doc*/.../btt/Modules.conf and increased gbuffer(s) as in the Ins* file there. (This got rid of my frame double-write problems). # Capture raw YUV video stream and Wave file # POSTNOTE: xawtv has been superceded by "motv". streamer -t 1:00 -F stereo -b 16 -t 1:00 -n ntsc -o streamer.yuv \ -O streamer.wav -f 4mpeg -i composite1 -s 352x240 -r 24 (you MUST supply a max time (WITH MINUTES!)/frames with -t, but you can Ctrl-C before that; streamer is an xawtv program) (NTSC is 30 fps, but the example in "streamer -h" has '-r 24' ??) (I wanted to specify the newer YUV format with "-f 4mpeg"-- broken?) OR Edit $HOME/.xawtv file to make all needed settings. xawtv &. Hit R. (Need to load bttv with gbuffer insmod option or will get 2bl frame-writes; I notice that xawt on main Options screen shows "audio mode" only if run in -noxv mode, and it is always set to mono regardless of cfg file. The V command doesn't do a damned thing but freeze the screen for me. Note that you CAN change most values shown by clicking on them) # Encode video and audio portions ( Can not use .cdr audio files :( ) mp2enc -b 224 -o movie.l2ea < movie.wav # Writes Layer II Elementary Audio mpeg2enc -o movie.m1v < movie.yuv # May want to try VCD -f settings (both of these programs are from jpegtools. toolame is supposed to be better than mp2enc, but damned thing has dependency problems. There's a toolame project at Sourceforge). # Merge encoded audio and video into an Mpeg file mplex -f 1 -s 2324 -p 1 -o movie.mpeg movie.m1v movie.l2ea (Somebody says that 2324 is the default) # Write xml file vcdxgen track1.mpg track2.mpg... ( Makes a basic .xml file to start with ) # Create a .bin SVCD image and a .cue file vcdimager -p -l 'My Label' scene1.mpg scene2.mpg... OR vcdxbuild -p file.xml (defaults to "-t vcd2"; each .mpg file above is a sequential "track") (I get a warning: "INFO.{VCD,SVD}: assuming PAL resolution type for track #0". Why? I see no command-line switches to deal with that) # Burn ( Need to run this if a CDRW has anything on it: cdrdao blank --driver generic-mmc --device 1,0,0 ) cdrdao write --driver generic-mmc --device 1,0,0 --eject *.cue (Unlike cdrecord, cdrdao seems to correctly guess the right speed, and the units are the actual x units of the drive). STILLS. "Segment files" Have to use VCD2.0 (For NTSC, have to re-aspect them by 110% horizontally.) Make stills at 768x576, then resize to 704x480 in Mpeg1 format http://www.mir.com/DMG/stills.html convert beginning.file file.ppm ppmtoy4m -Ip -F30000:1001 file.ppm | yuvscaler -0 SIZE_704x480 | mpeg2enc -f 6 -T 120 -o file.m1v (file.m1v is Mpeg-1 encoded) (can also do low-res) mplex -f 6 -o file.mpg file.m1v (You can't multiplex audio with it, but you can multiplex a high and a low-res image-- don't know why???) TRICK TO GET AUDIO OVER A STILL Starting with a Selection for your still, copy it to another selection for the audio. Still selection has next-ref and timeout-ref=id-of-audio-sel, wait=0 Add audio file to segment-items (The audio selection and still have same