#!/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_$$