这里有五个处理.脚本功能:
1 视频转码
2 截取视频/音频
3 提取视频/音频
4 合并视频音频
处理5未完成1 mp3+x264
2 get video clip(copy)
3 get audio(pcm)
4 get audio clip(pcm)
5 custom argument
有些用法还是没搞懂,比如终端背景色和前景色的使用.处理5 没想好怎么搞.
命名似乎可以简化.请大大们赐教.多谢.
其实我更希望有人能写个图形前端出来

[bash]#!/bin/bash
# by @naturalaw
BG="\e[32;40m"
OUT=''
GET_TIME(){
echo "example:n secs or 0:1:12"
echo "from:"
read FROM
echo "to:"
read TO
}
if [ $# -ge 1 ];then
{
echo -e "###### mencoder convert######"
echo -e "code\toperation\n"
echo -e "1\tmp3+x264\n2\tget video clip(copy)\n3\tget audio(pcm)\n4\tget audio clip(pcm)\n5\tcustom argument\ninput code:"
read code
echo -e "${BG}please wait.working...\n"
case $code in
1)
mencoder "$1" -oac mp3lame -ovc x264 -o `echo -e "$1" | sed 's/...$/-x264.avi/'` 2>/dev/null
;;
2)
GET_TIME
OUT=`echo -e "$1" | sed 's/....$/-clip.avi/'`
mencoder -oac mp3lame -ovc copy -ss $FROM -endpos $TO "$1" -o $OUT 2>/dev/null
;;
3)
OUT=`echo -e "$1" | sed 's/....$/clip.wav/'`
mencoder "$1" -oac pcm -ovc frameno -o $OUT 2>/dev/null
;;
4)
GET_TIME
OUT=`echo -e "$1" | sed 's/....$/-clip.wav/'`
mencoder -oac pcm -ovc frameno -ss $FROM -endpos $TO "$1" -o $OUT 2>/dev/null
;;
5)
;;
*)
echo "wrong code."
;;
esac
}
else echo -e "Usage: convert foo"
fi
[/bash]
有修正.
[bash]#!/bin/bash
# by @naturalaw
# build 2011-11-06
# modified 2011-11-07
BG="\e[32;40m"
OUT=''
VIDEO="$1"
AUDIO="$2"
echo $VIDEO
GET_TIME(){
mediainfo "$VIDEO" | grep Duration | head -1
echo "example:n secs or 0:1:12"
echo "from:"
read FROM
echo "to:"
read TO
}
if [ $# -ge 1 ];then
{
echo -e "###### mencoder convert######"
echo -e "code\toperation\n"
echo -e "1\tmp3+x264\n2\tget video clip (copy)\n3\tget audio only (pcm)\n4\tget audio clip (pcm)\n5\tget video only (copy)\n6\tmerge audio and video\n7\ttcustom argument\ninput code:"
read code
# echo -e "${BG}please wait.working...\n"
case $code in
1)
OUT="${VIDEO/%.???/-x263.avi}"
mencoder "$VIDEO" -oac mp3lame -ovc x264 -o $OUT 2>/dev/null
;;
2)
GET_TIME
OUT="${VIDEO/%.???/-clip.avi}"
mencoder -oac mp3lame -ovc copy -ss $FROM -endpos $TO "$VIDEO" -o $OUT 2>/dev/null
;;
3)
OUT="${VIDEO/%.???/-clip.wav}"
mencoder "$VIDEO" -oac pcm -ovc frameno -o $OUT 2>/dev/null
;;
4)
GET_TIME
OUT="${VIDEO/%.???/-clip.wav}"
mencoder -oac pcm -ovc frameno -ss $FROM -endpos $TO "$VIDEO" -o $OUT 2>/dev/null
;;
5)
OUT="${VIDEO/%.???/-none-audio.avi}"
ffmpeg -i "$VIDEO" -an -vcodec copy $OUT
;;
6)
OUT="${VIDEO/%.???/-merge.avi}"
echo "How to deal with audio?(output audio codec)"
select OAC in "copy" "mp3lame";do
break
done
mencoder -audiofile "$AUDIO" "$VIDEO" -ovc copy -oac $OAC -mc 0 -noskip -o $OUT 2>/dev/null
;;
*)
echo "wrong code."
;;
esac
# echo -e "\n\nJob Done!\nPlay it?(y/n)"
# read ans
# [ $ans==y ] && mplayer $OUT
}
else echo -e "File "$VIDEO" Not Found.\nUsage: convert video [audio]"
fi
[/bash]
V3暂时不发了.还要修正一下.