#!/bin/bash rm -f stream.mp2 stream.m1v killall -q sox twolame sleep mencoder rawtoyuv 709to601 mpeg2enc dd mplex sleep 2 killall -9 -q sox twolame sleep mencoder rawtoyuv 709to601 mpeg2enc dd mplex sleep 2 function audio { sox -V0 --single-threaded -t .raw -r 48000 -b 16 -e signed-integer -L -c 2 - \ -t .raw -r 44100 -b 16 -e signed-integer -L -c 1 - \ channels 1 vol 2 rate -v < stream.pcm | twolame --quiet -r -N 1 -s 44100 -m s -b 224 -p - stream.mp2 & sleep 2 mencoder -quiet \ -ofps 24000/1001 \ -nozoom \ -aid 4354 \ -nosub \ -noautosub \ -sws 2 \ -vf crop=1446:1080,scale=352:240:::0.33333333333333333:0.33333333333333333,harddup,dsize=107/80,format=iyuv \ -aspect 107:80 \ -cache 16384 \ -vc ffvc1 \ -ovc raw \ -ac ffac3 \ -af format=s16le \ -oac pcm \ -of rawaudio \ -o stream.pcm \ -bluray-device /media/STORAGE/DISC"$2" \ -bluray-angle 1 \ br://"$3" } function video { ./rawtoyuv < stream.yuv | ./709to601 | mpeg2enc -v 0 -n n -f 1 -F 1 -a 2 -4 1 -2 1 -o stream.m1v & sleep 2 mencoder -quiet \ -ofps 24000/1001 \ -nozoom \ -aid 4354 \ -nosub \ -noautosub \ -sws 2 \ -vf crop=1446:1080,scale=352:240:::0.33333333333333333:0.33333333333333333,harddup,dsize=107/80,format=iyuv \ -aspect 107:80 \ -cache 16384 \ -vc ffvc1 \ -ovc raw \ -ac ffac3 \ -af format=s16le \ -oac pcm \ -of rawvideo \ -o stream.yuv \ -bluray-device /media/STORAGE/DISC"$2" \ -bluray-angle 1 \ br://"$3" } dd if=stream.yuv iflag=nonblock of=/dev/null 2>/dev/null dd if=stream.pcm iflag=nonblock of=/dev/null 2>/dev/null audio "$@" & video "$@" & wait dd if=stream.yuv iflag=nonblock of=/dev/null 2>/dev/null dd if=stream.pcm iflag=nonblock of=/dev/null 2>/dev/null mplex -v 1 -f 1 -o TOS"$1".MPG stream.m1v stream.mp2 MPLEX_OUT=$? wait exit $MPLEX_OUT