Script em loop

1. Script em loop

Erik P. Ghijs
Good_speed

(usa Debian)

Enviado em 10/10/2023 - 07:33h

Bom dia,

Hj me deparei com uma situação no qual nunca tinha pensado, vou postar aqui um arquivo de configuração e vou explicar utilizando ele com exemplo.


# Background options
new bg broadcast enabled
# bg just plain black background jpg image
setup bg input "C:\Users\bigo\Pictures\bg1080.png"
setup bg option image-duration=-1
setup bg output #transcode{sfilter=mosaic{width=1920,height=1080,cols=6,rows=6,position=1,order="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32",keep-aspect-ratio=enabled,keep-picture=1,mosaic-align=5},vcodec=mp4v,vb=0,fps=25}:duplicate{dst=display}

# Input options
new 1 broadcast enabled
setup 1 input "rtsp://admin:suporte24por7@10.6.16.1:554/cam/realmonitor?channel=1&subtype=0"
#setup 1 option dshow-size="320x180"
setup 1 output #duplicate{dst=mosaic-bridge{id=1,width=320,height=180},select=video,dst=bridge-out{id=0}}


Preciso criar um script onde ele vai gerar 32 linhas igual esta abaixo, minha dificuldade esta em criar as linhas abaixo utilizando sequencia (1 a 32 e 0 a 31) de numero, ex as linhas new, setup, #setup e setup todos tem a numeração iniciada por 1 sendo repetida quatro vezes, este utilizaria a sequencia 1 a 32, ja na ultima linha dst=bridge-out{id=0} teria que iniciar com a sequencia 0 a 31, no casso o script precisaria criar 32 linhas iguais estas só mudando a sequencia numérica dos campos (new, setup, #setup e setup) e a linha (dst=bridge-out{id=0}), alguém poderia ajudar?

 
# Input options
new 1 broadcast enabled
setup 1 input "rtsp://admin:suporte24por7@10.6.16.1:554/cam/realmonitor?channel=1&subtype=0"
#setup 1 option dshow-size="320x180"
setup 1 output #duplicate{dst=mosaic-bridge{id=1,width=320,height=180},select=video,dst=bridge-out{id=0}}

new 2 broadcast enabled
setup 2 input "rtsp://admin:suporte24por7@10.6.16.1:554/cam/realmonitor?channel=1&subtype=0"
#setup 2 option dshow-size="320x180"
setup 2 output #duplicate{dst=mosaic-bridge{id=2,width=320,height=180},select=video,dst=bridge-out{id=1}}

new 3 broadcast enabled
setup 3 input "rtsp://admin:suporte24por7@10.6.16.1:554/cam/realmonitor?channel=1&subtype=0"
#setup 3 option dshow-size="320x180"
setup 3 output #duplicate{dst=mosaic-bridge{id=3,width=320,height=180},select=video,dst=bridge-out{id=2}}

...


Obrigado


  


2. Re: Script em loop

aguamole
aguamole

(usa KUbuntu)

Enviado em 10/10/2023 - 07:46h

Rapais, esse código precisa ser escrito em uma linguagem especifica? O Bash serviria? Eu acho que o chatGPT teria conseguido programar esse código para você.
Vê se funciona:

#!/bin/bash

for i in {1..32}; do
echo "new $i broadcast enabled"
echo "setup $i input \"rtsp://admin:suporte24por7@10.6.16.1:554/cam/realmonitor?channel=1&subtype=0\""
echo "#setup $i option dshow-size=\"320x180\""
echo "setup $i output #duplicate{dst=mosaic-bridge{id=$i,width=320,height=180},select=video,dst=bridge-out{id=$((i-1))}}"
done


Você precisa que seja gerado um arquivo no lugar de imprimir na tela?


#!/bin/bash

aqivo="nome_do_arquivo"

if [[ "${aqivo}" == "nome_do_arquivo" ]]; then
echo 'Edite o script modificando a variavel "aqivo".'; exit 1
fi

for i in {1..32}; do
echo "new $i broadcast enabled" >${aqivo}
echo "setup $i input \"rtsp://admin:suporte24por7@10.6.16.1:554/cam/realmonitor?channel=1&subtype=0\"" >>${aqivo}
echo "#setup $i option dshow-size=\"320x180\"" >>${aqivo}
echo "setup $i output #duplicate{dst=mosaic-bridge{id=$i,width=320,height=180},select=video,dst=bridge-out{id=$((i-1))}}" >>${aqivo}
echo "" >>${aqivo}
done



3. Re: Script em loop

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 10/10/2023 - 18:16h

Good_speed escreveu:

Bom dia,

Hj me deparei com uma situação no qual nunca tinha pensado, vou postar aqui um arquivo de configuração e vou explicar utilizando ele com exemplo.


# Background options
new bg broadcast enabled
# bg just plain black background jpg image
setup bg input "C:\Users\bigo\Pictures\bg1080.png"
setup bg option image-duration=-1
setup bg output #transcode{sfilter=mosaic{width=1920,height=1080,cols=6,rows=6,position=1,order="1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32",keep-aspect-ratio=enabled,keep-picture=1,mosaic-align=5},vcodec=mp4v,vb=0,fps=25}:duplicate{dst=display}

# Input options
new 1 broadcast enabled
setup 1 input "rtsp://admin:suporte24por7@10.6.16.1:554/cam/realmonitor?channel=1&subtype=0"
#setup 1 option dshow-size="320x180"
setup 1 output #duplicate{dst=mosaic-bridge{id=1,width=320,height=180},select=video,dst=bridge-out{id=0}}


Preciso criar um script onde ele vai gerar 32 linhas igual esta abaixo, minha dificuldade esta em criar as linhas abaixo utilizando sequencia (1 a 32 e 0 a 31) de numero, ex as linhas new, setup, #setup e setup todos tem a numeração iniciada por 1 sendo repetida quatro vezes, este utilizaria a sequencia 1 a 32, ja na ultima linha dst=bridge-out{id=0} teria que iniciar com a sequencia 0 a 31, no casso o script precisaria criar 32 linhas iguais estas só mudando a sequencia numérica dos campos (new, setup, #setup e setup) e a linha (dst=bridge-out{id=0}), alguém poderia ajudar?

 
# Input options
new 1 broadcast enabled
setup 1 input "rtsp://admin:suporte24por7@10.6.16.1:554/cam/realmonitor?channel=1&subtype=0"
#setup 1 option dshow-size="320x180"
setup 1 output #duplicate{dst=mosaic-bridge{id=1,width=320,height=180},select=video,dst=bridge-out{id=0}}

new 2 broadcast enabled
setup 2 input "rtsp://admin:suporte24por7@10.6.16.1:554/cam/realmonitor?channel=1&subtype=0"
#setup 2 option dshow-size="320x180"
setup 2 output #duplicate{dst=mosaic-bridge{id=2,width=320,height=180},select=video,dst=bridge-out{id=1}}

new 3 broadcast enabled
setup 3 input "rtsp://admin:suporte24por7@10.6.16.1:554/cam/realmonitor?channel=1&subtype=0"
#setup 3 option dshow-size="320x180"
setup 3 output #duplicate{dst=mosaic-bridge{id=3,width=320,height=180},select=video,dst=bridge-out{id=2}}

Obrigado

Boa noite Good_speed.
É só subtrair ou somar "1"...

#Somando
for ((n=0;n<32;n++)){ printf '%02d:%02d\n' $n $((n+1)); }

#Subtraindo
for ((n=1;n<=32;n++)){ printf '%02d:%02d\n' $n $((n-1)); }

#Script
#!/usr/bin/env bash
ln='#----------------------------------#';

printf '# Input options\n';
for ((n=1;n<33;n++)){
N=$((n-1));
echo "new $n broadcast enabled
setup $n input \"rtsp://admin:suporte24por7@10.6.16.1:554/cam/realmonitor?channel=1&subtype=0\"
#setup $n option dshow-size=\"320x180\"
setup $n output #duplicate{dst=mosaic-bridge{id=1,width=320,height=180},select=video,dst=bridge-out{id=$N}}
${ln}";
}

#Saída:
# Input options
new 1 broadcast enabled
setup 1 input "rtsp://admin:suporte24por7@10.6.16.1:554/cam/realmonitor?channel=1&subtype=0"
#setup 1 option dshow-size="320x180"
setup 1 output #duplicate{dst=mosaic-bridge{id=1,width=320,height=180},select=video,dst=bridge-out{id=0}}
#----------------------------------#
new 2 broadcast enabled
setup 2 input "rtsp://admin:suporte24por7@10.6.16.1:554/cam/realmonitor?channel=1&subtype=0"
#setup 2 option dshow-size="320x180"
setup 2 output #duplicate{dst=mosaic-bridge{id=1,width=320,height=180},select=video,dst=bridge-out{id=1}}
#----------------------------------#
new 3 broadcast enabled
setup 3 input "rtsp://admin:suporte24por7@10.6.16.1:554/cam/realmonitor?channel=1&subtype=0"
#setup 3 option dshow-size="320x180"
setup 3 output #duplicate{dst=mosaic-bridge{id=1,width=320,height=180},select=video,dst=bridge-out{id=2}}
#----------------------------------#
..........

É isso....


______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/ | sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts