BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

Problema con este script

BocaDePez
BocaDePez

Hola a todos/as.

Me he creado este sencillo script en bash para poder volcar emisiones en streaming o en descarga codificándolas automáticamente a MP3:

#!/bin/bash

# Este script sirve para volcar y codificar a MP3 una emisión en streaming o en descarga de audio o vídeo
# CÓMO USAR: ./mp3enc2 [URL_de_streaming] [bitrate] [frecuencia{8|11.025|12|16|22.05|24|32|44.1|48}]

# NOTA: NO es posible usar: cat "[nombre_lista]" | while read URL; do ./mp3enc2 .....

mkfifo /tmp/MP3

KEY=$(echo $1 | cut -d'/' -f3)
NOW=$(date +%F-%H.%M.%S)

lame -h -b $2 --resample $3 /tmp/MP3 "$KEY"_"$NOW".mp3 &

mplayer -novideo $1 -ao pcm:file=/tmp/MP3

rm /tmp/MP3

mp3gain -c -r -d 5.0 "$KEY"_"$NOW".mp3

Bien. Si invoco el script con solamente una URL, p.e.:

./mp3enc2ivoox.com/cofrentes-accion-greenpeace-15…35136_1.html 32 44.1

el volcado y codificado a 32kbps con 44100 Hz en MP3 es correcto.

El problema viene cuando intento pasarle al script un archivo de texto con un listado de URL's a volcar de la siguiente manera:

cat [archivo_texto] | while read URL; do ./mp3enc2 $URL 32 44.1; done

De la anterior manera solamente se me vuelca la primera URL de la lista y el script se detiene. No entiendo qué es lo que falla. Con otros scripts no me pasa.

Muchas gracias.

Salud.

BocaDePez
BocaDePez

Bueno, me respondo a mí mismo. Esta es la solución:

for URL in $(cat [nombre_lista]); do ./mp3enc2 $URL [bitrate] [frecuencia{8|11.025|12|16|22.05|24|32|44.1|48}]; done

Asunto resuelto.

Salud.

🗨️ 1
BocaDePez
BocaDePez

No necesitas lanzar el proceso de cat, puedes uasr $(

for URL in $(< [nombre_lista]); do

./mp3enc2 $URL [bitrate] [frecuencia{8|11.025|12|16|22.05|24|32|44.1|48}]

done