>
> vlc -vvv input_stream --sout
> '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
> rtp{mux=ts,dst=239.255.12.42,sap,name="TestStream"}'
>
> No arquivo de configuração, armazeno todos os parâmetros que serão
> passados para o VLC.
>
> CONFIG="-vvv input_stream --sout
> '#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
> rtp{mux=ts,dst=239.255.12.42,sap,name="TestStream"}' "
>
As aspas simples estão ai para que os caracteres especiais não sejam
interpretados (ex: {}"). Mas o programa não espera recebe-las.
# xx () { echo $1:$2:$3 ; }
# xx a b c
a:b:c
# z="a b c"
# xx $z
a:b:c
Aqui esta o problema... o c foi recebido pelo programa com aspas:
# z="a b 'c'"
# xx $z
a:b:'c'
idem...
# z="a b '#c'"
# xx $z
a:b:'#c'
# z="a b #c"
# xx $z
a:b:#c
O que normalmente acontece é:
# xx a b 'c'
a:b:c
Então...
CONFIG="-vvv input_stream --sout
#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:rtp{mux=ts,dst=239.255.12.42,sap,name=\"TestStream\"}"
/sbin/startproc vlc $CONFIG
A unica restrição é que não pode haver espaços (nem com \ ) nos
argumentos. Caso seja necessário podes usar duas variáveis.
CONF1="-vvv input_stream --sout"
CONF2='#transcode{vcodec=mp4v,acodec=mpga,vb=800,ab=128,deinterlace}:
rtp{mux=ts,dst=239.255.12.42,sap,name="TestStream"}'
/sbin/startproc vlc $CON1 "$CONF2"
--
Reinaldo de Carvalho
http://korreio.sf.net (Now available in English)
http://python-cyrus.sf.net