LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 705|回复: 0

一个转换其他格式音乐到ogg的脚本,需要mplayer和oggenc

[复制链接]
发表于 2006-8-1 15:53:47 | 显示全部楼层 |阅读模式

  1. #!/bin/bash

  2. BLUE="\033[0;34m"
  3. GREEN="\033[0;32m"
  4. GREY="\033[1;30m"
  5. CYAN="\033[1;36m"
  6. PURPLE="\033[1;35m"
  7. RED="\033[1;31m"
  8. NO_color="\033[0m"

  9. clear_output_exit(){
  10.         [ -f "$OUTPUTFILE" ] && rm -f "$OUTPUTFILE"
  11.         #wait for the sub process to stop
  12.         sleep 1
  13.         [ -f "$MAGICFILE" ] && rm -f "$MAGICFILE"
  14.         [ -f "$SIGNALFILE" ] && rm -f "$SIGNALFILE"
  15.         echo "Interrupted" 1>&2
  16.         exit 1
  17. }

  18. trap clear_output_exit INT QUIT HUP

  19. cecho(){
  20.         echo -n -e $1
  21.         shift
  22.         echo $@
  23.         echo -n -e $NO_COLOR
  24. }

  25. cecho $GREEN ----------Convert Music To Ogg Vorbis Format-----------

  26. if [ $# = 0 ];then
  27.         cecho $RED usage: $0 [filelist]
  28.         exit 10
  29. fi

  30. while [ true ];do

  31. INPUTFILE="$1"
  32. OUTPUTFILE="${INPUTFILE%.*}.ogg"

  33. if [ "$INPUTFILE" == "$OUTPUTFILE" ];then
  34.         cecho $RED ERROR:your input file is already ogg-post-prefix
  35.         exit 1
  36. fi

  37. echo INPUTFILE :$INPUTFILE
  38. echo OUTPUTFILE:$OUTPUTFILE

  39. cecho $PURPLE convert to tmp wave file...
  40. echo -e $GREY
  41. MAGICFILE=$INPUTFILE.magic
  42. SIGNALFILE=$INPUTFILE.signal
  43. mplayer -ao pcm:file=>(oggenc - -o "$OUTPUTFILE" &>/dev/null; [ $? == 0 ] && touch "$MAGICFILE";touch "$SIGNALFILE") "$INPUTFILE"
  44. echo -e $NO_COLOR

  45. while [ ! -f "$SIGNALFILE" ];do usleep $(( 100*1000 ));done
  46. rm -f "$SIGNALFILE"

  47. if [ -f "$MAGICFILE" ];then
  48.         rm -f "$MAGICFILE"
  49.         cecho $PURPLE 'success!deleting unused file and old music...'
  50.         rm -f "$INPUTFILE"
  51. else
  52.         cecho $RED error detected when encoding tmp wave file
  53.         rm -f "$OUTPUTFILE"
  54. fi

  55. shift
  56. if [ x"$1" == x ];then
  57.         cecho $GREEN done.
  58.         exit 0
  59. fi

  60. done
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表