Necesito ejecutar varias líneas de un comando para convertir videos (en este caso con mencoder) y no quiero hacerlo uno por uno lo cual sería así:
mencoder "Película A (a convertir).mp4" -o "Película A (convertida).mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255
y después de que se haya terminado de convertir esa película (tengo que estar allí presente) debo poner en la terminal:
mencoder "Película B (a convertir).mp4" -o "Película B (convertida).mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255
y luego después de que se haya terminado de convertir esa película debo poner en la terminal:
mencoder "Película C (a convertir).mp4" -o "Película C (convertida).mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255
SOLUCIÓN:
La Solución es usar doble && y no debo estar presente sino cuando se terminde de procesar la primer película seguirá automáticamente la siguiente:
mencoder "Película A (a convertir).mp4" -o "Película A (convertida).mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255 && \
mencoder "Película B (a convertir).mp4" -o "Película B (convertida).mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255 && \
mencoder "Película C (a convertir).mp4" -o "Película C (convertida).mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255 && \
Ejemplo:
mencoder "La Mujer del Predicador.mp4" -o "./Mencoder/La Mujer del Predicador.mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255 && \
mencoder "Triunfo En La Adversidad.mp4" -o "./Mencoder/Triunfo En La Adversidad.mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2491:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=192 && \
mencoder "El campamento de mi vida castellano.mp4" -o "./Mencoder/El campamento de mi vida castellano.mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2399:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=320 && \
mencoder "La decisión de Alison.mp4" -o "./Mencoder/La decisión de Alison.mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2836:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=192 && \
mencoder "Policarpo.mp4" -o "./Mencoder/Policarpo.mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2802:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=192 && \
mencoder "Por la Gloria.mp4" -o "./Mencoder/Por la Gloria.mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2441:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=192
Vista en el Editor de texto Geany:
Nota: Tengo configurado ese archivo así:
Esto porque signfica:
A && B && C # Ejecutar B si y sólo si A finalizó con exito y luego ejecutar C si y sólo si B se ejecutó con exito, etc
y la barra inversa \ hace que se ejecute la siguiente línea de abajo (salto de línea)
Nota: Yo se que se podría así:
mencoder "Película A (a convertir).mp4" -o "Película A (convertida).mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255 && mencoder "Película B (a convertir).mp4" -o "Película B (convertida).mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255
Pero el problema de hacerlo así es que no es muy bien entendible, no se puede leer bien lo que está allí, luego es dificil editar los comandos porque sería dificil encontrar las cosas allí dentro de esa maraña porque los nombres de las películas no son cortos
CONSULTAS:
Barra inversa - Wikipedia, la enciclopedia libre
https://es.wikipedia.org/wiki/Barra_inversa
Backslash - Wikipedia
https://en.wikipedia.org/wiki/Backslash
& - Wikipedia, la enciclopedia libre
https://es.wikipedia.org/wiki/%26#Usos_en_inform%C3%A1tica
Ampersand - Wikipedia
https://en.wikipedia.org/wiki/Ampersand#Computing
bash - Which one is better: using ; or && to execute multiple commands in one line? - Ask Ubuntu
https://askubuntu.com/questions/334994/which-one-is-better-using-or-to-execute-multiple-commands-in-one-line
https://askubuntu.com/a/539293/145772
Linux Bash Syntax: Meaning of &&, \, and - - Server Fault
https://serverfault.com/questions/53577/linux-bash-syntax-meaning-of-and
https://serverfault.com/q/53577/800907
Buenas
ResponderBorrarEn ese caso creo que es mejor que pongas `comando0` ; `comando1`.
De esta forma aunque falle la primera ejecución seguirá con la siguiente.
Si estás transformando películas luego miras las que no hayan cambiado el formato y lo relanzas.
Hola Nideapum, gracias por el comentario, bueno es que así lo entiendo bien yo
Borrar