(Solucionado) Script para convertir archivos mp4 a vob

Imagen de garusis
0 puntos

Hola, tengo un pequeño problema con un script sencillo que estoy realizando. aclaro que no tengo muchos conocimientos sobre esto, asi que lo mas seguro es que este haciendo algo mal, lo que quiero saber es, que es lo que estoy haciendo mal...

el script, lo usare para tomar una lista de archivos de video en formato mp4 que se encuentran en la carpeta "mis_videos" y convertilos a archivos formato .vob con el mismo nombre.

para convertir los videos, estoy usando el ffmpeg, y para acceder a la lista, estoy realizando un for de esta forma

for i in `ls -1 mis_videos`
do
  echo "$i"
  ffmpeg -i $i -target pal-dvd -s 640x480 -ab 128kb -b 2040kb "/media/Documentos/mis_videos/$i.vob"
done

el script me corre perfetamente, hasta el echo, donde me muestra los nombre de los archivos que quiero convertir; pero el error surge al intentar ejecutar la linea

ffmpeg -i $i -target pal-dvd -s 640x480 -ab 128kb -b 2040kb "/media/Documentos/mis_videos/$i.vob"

con la orden "ffmpeg -i $i" le digo al ffmpeg que tome el archivo que esta en ese momento en la variable $i como archivo de entrada; con "-target pal-dvd -s 640x480 -ab 128kb -b 2040kb" le digo las modificaciones que le hara al archivo; y con "/media/Documentos/mis_videos/$i.vob" le estoy indicando donde debera guardarlos, y el formato... diciendole que lo guarde en la carpeta mis_videos, guardandolos con el nombre de la variable $i pero con formato .vob

sin embargo, no estoy seguro de porder hacer esto. $i.vob

agradeceria mucho la ayuda.

Imagen de slap
+1
0
-1

¿Qué error obtienes?

Es posible que tu error sean las comillas en:

"/media/Documentos/mis_videos/$i.vob"

Es perfectamente válido poner $i.vob, si tu archivo se llamaba pelicula.mp4, después de la conversión se llamará pelicula.mp4.vob.

Si quieres eliminar la antigua extensión puedes hacer esto:

ARCHIVO=`basename $i .mp4`

y usar la línea:

ffmpeg -i $i -target pal-dvd -s 640x480 -ab 128kb -b 2040kb /media/Documentos/mis_videos/$ARCHIVO.vob

Suponiendo que los archivos que conviertes tienen todos la extensión .mp4

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de garusis
+1
0
-1

pues, gracias a lo que me has escrito, he verificado el codigo y he encontrado el error.

lo que sucedia es que yo envia a listar los archivos de la carpeta mis_videos desde /media/Documentos el ls -1 me los listaba, pero al intentar ejecutarse el ffmpeg no encontraba los documentos listados.

asi que lo que hice fue agregar la linea:

cd /media/Documentos/mis_videos

y cambiar la linea del for:

for i in `ls -1 mis_videos`

por simplemente esta:

for i in `ls -1`

haciendo que me liste los archivos de la carpeta desde la que estoy ejecutando el ffmpeg.

para mejorar el script modifique la linea que me enseñaste para evitar el archivo.mp4.vob y que quede simplemente archivo.vob

ahora solo necesito realizar un script para cambiar los espacios en los nombres de archivos pero como no tengo ni pinta de idea de como hacerlo tendre que hacer otro post para recibir ayuda.

por cierto... ¿podrias explicarme para que sirven los codigos que tienes en tu firma?

+1
0
-1
Imagen de garusis
+1
0
-1

en las modificaciones al script que recomendaste, no seria mejor hacerlo en una sola linea?

me refiero a que en vez de usar esta dos lineas:

ARCHIVO=`basename $i .mp4`
ffmpeg -i $i -target pal-dvd -s 640x480 -ab 128kb -b 2040kb /media/Documentos/mis_videos/$ARCHIVO.vob

podria usar:

ffmpeg -i $i -target pal-dvd -s 640x480 -ab 128kb -b 2040kb /media/Documentos/mis_videos/`basename $i .mp4`.vob

o no estaria permitido?.

lo que sucede es que si pongo la linea ARCHIVO=`basename $i .mp4` entonces, tendria que especificarle al ffmpeg el codec que debe usar para recodificarlo

+1
0
-1
Imagen de slap
+1
0
-1

Podrías hacerlo en una sóla línea, como comentas. No es ni mejor ni peor.

Lo que no entiendo es porqué tendrías que especificar el codec.

Y sí, se me había pasado que estabas listando los archivos de un directorio y luego en la línea del ffmpeg no hacías referencia a él.
Podías, simplemente, haber añadido:

ffmpeg -i mis_videos/$i ...

Saludos.


0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://7grados.injiniero.es

+1
0
-1

Saludos.

0000 start out (+FD),A
           ld  BC, +7FFF
           jp 03CB, RAM-CHECK

http://www.injiniero.es

Imagen de garusis
+1
0
-1

pues, es que estaba algo confundido... creo que me enrede un poco, pero ahora que me fijo, no era necesario especificar el codec, ya que estaba indicada la extension del archivo de entrada y el de salida.

tambien me ha parecido buena la modificacion, la verdad no se me habia ocurrido.

muchas gracias por la ayuda

+1
0
-1