#!/bin/sh #引数の最初からは結合する動画ファイルの連続。 #初めて-で始まる引数が来たらそれは結合後エンコードオプション #普通変更したいようなものが多数、引数で変更できないので書き換えるべし。 #次の引数は出力先 ins=0 framerate=30 dbg="" mkdir /tmp/avjoin_$$ while true do if printf %s "$1"|grep -q ^- then break elif [ "$1" = "" ] then rm -r /tmp/avjoin_$$ exit 1 fi ins=`expr ${ins} + 1` $dbg mkfifo /tmp/avjoin_$$/a.${ins} $dbg mkfifo /tmp/avjoin_$$/v.${ins} $dbg avconv -i "$1" -vn -f u16le -acodec pcm_s16le -ac 2 -ar 44100 pipe:1 > /tmp/avjoin_$$/a.${ins} 2>/dev/null < /dev/null & $dbg avconv -i "$1" -r ${framerate} -an -f image2pipe -vcodec ppm pipe:1 > /tmp/avjoin_$$/v.${ins} 2>/dev/null < /dev/null & as="${as} /tmp/avjoin_$$/a.${ins}" vs="${vs} /tmp/avjoin_$$/v.${ins}" shift done $dbg mkfifo /tmp/avjoin_$$/a.a $dbg mkfifo /tmp/avjoin_$$/v.a $dbg cat ${as} > /tmp/avjoin_$$/a.a & $dbg cat ${vs} > /tmp/avjoin_$$/v.a & $dbg avconv -f u16le -acodec pcm_s16le -ac 2 -ar 44100 \ -i /tmp/avjoin_$$/a.a \ -r ${framerate} -f image2pipe -vcodec ppm \ -i /tmp/avjoin_$$/v.a \ $1 "$2" rm -r /tmp/avjoin_$$