cdda2mp3
上传用户:xiejiait
上传日期:2007-01-06
资源大小:881k
文件大小:2k
源码类别:

SCSI/ASPI

开发平台:

MultiPlatform

  1. # !/bin/sh
  2. # Demo script for processing all audio tracks with a mp3 decoder
  3. # based on a news article by Tom Kludy
  4. # This variant uses named pipes in order to save space.
  5. # There is another variant of this script, which uses temporary
  6. # wav files (see cdda2mp3.new).
  7. #
  8. # usage: cdda2mp3 <name prefix for all mp3 files>
  9. #
  10. # list_audio_tracks is a (symbolic) link to cdda2wav
  11. # and used to generate a list of audio track numbers and start
  12. # sectors, which in turn are used in a loop to spawn cdda2wav
  13. # and the post processor on a track by track basis.
  14. # specify the audio track listing program and its options
  15. LAT=list_audio_tracks
  16. LAT_OPTIONS=
  17. # specify the sampling program and its options
  18. # do not specify the track option here!
  19. CDDA2WAV=cdda2wav
  20. CDDA2WAV_OPTS='-Owav -H -P0 -q'
  21. # for normal use, comment out the next line
  22. #DEBUG='-d1'
  23. # the post processor is fed through a named pipe to avoid space waste
  24. # specify the post processing program and its options
  25. MP_CODER=l3enc
  26. #MP_OPTIONS='2>/dev/null 1>/dev/null'
  27. MP_OPTIONS='-br 128000'
  28. #MP_OPTIONS='-hq'
  29. # name of the named pipe
  30. NPIPEPREFIX='npipe'$$
  31. NPIPE=$NPIPEPREFIX".wav"
  32. FILEPREFIX=${1:-audiotrack}
  33. mkfifo $NPIPE
  34. # clean up named pipe on exit, abort, ...
  35. trap "rm -rf $NPIPE" 0 2 3 4 6 7 8 10 11 12 13 15
  36. # feed track numbers and start sectors into loop
  37. $LAT $LAT_OPTIONS | while read TRACK STARTSECTOR;
  38. do
  39.   $CDDA2WAV $CDDA2WAV_OPTS -t$TRACK $DEBUG $NPIPE &
  40. #  echo n | $MP_CODER $NPIPE $FILEPREFIX$TRACK.mp3 $MP_OPTIONS 
  41.   $MP_CODER $NPIPE $FILEPREFIX$TRACK.mp3 $MP_OPTIONS 
  42.   # check result code
  43.   RES=$?
  44.   if [ $RES = 0 ] ; then
  45.     echo File $FILEPREFIX$TRACK.mp3 finished successfully.
  46.   else
  47.     echo File $FILEPREFIX$TRACK.mp3 failed (result $RES). Aborted. >&2
  48.     break
  49.   fi
  50. done