InicioLinuxscript para sincronizar pistas de audio

script para sincronizar pistas de audio

Linux5/29/2013

nota: se pueden añadir mas funciones
este es un script que les puede servir bastante para sincronizar pistas de audio
requiere que tenga instalados los siguientes programas

mkvtoolnix
mplayer
ffmpeg

y que entiendan que
para que el sonido llegue mas tarde que el video hay que hacer asi
00:01:00
00:00:59
con esto retrasariamos un segundo al audio.
para adelantarlo seria asi
00:01:00
00:01:01
es lo basico y es la pregunta que mas les hará el script

la utilidad de dicho script se basa en tener dos archivos de video
1 en buena calidad otro en mala calidad pero con el audio que no queremos
en primera instancia extraeriamos las dos pistas de audio y luego pasaríamos a sincronizar.
tambien está la sugerencia de eliminar los espacios en los titulos ejemplo;
pelicula de accion
pelicula.de.accion
esto solo es por comodidad
tambien este script permite volver a dejar el audio como lo teniamos
ya que cada vez que hacemos modificaciones realiza un backup de nuestro archivo de audio.
para evitar lios.
este script permite a su vez dejar incompleto un trabajo y retomarlo.
nota
esta muy verde

así que pueden hacer comentarios sobre sus modificaciones.
y es facil de entender.


ahi va el script

#!/bin/bash
clear
ls |tr 't' 'n'
echo "
=======================================================
¿eliminar espacios en los titulos? [recomendado][s]/[n]
======================================================="
read deletet
#
if [ "$deletet" = s ];then
for ficheros in *
do
mv "$ficheros" `echo $ficheros |tr -s ' ' '.'`
done
clear
echo "
===================
listado de archivos
==================="
ls |tr 't' 'n'
elif [ "$deletet" = n ];then
echo "
======================
ha seleccionado que no
======================"
else
echo "
=================
comando no valido
================="
fi
#
echo "
  [opciones posibles]
============================
¿extraer tiempos?       [e] 
recuperar copia previa  [r]
recuperar copia prima   [R]
reextraer audio latino  [rs]
reextraer audio nativo  [re]
retomar trabajo abandonado [a]
==========================="
###############################
######un poco mas detallado ###
###############################
#e) extrae las pistas de audio
#r) cada vez que se hacen cambios de sincronizacion se crea
#una copia previa antes de asumirla
#con esta opcion retomariamos de dicha copia
#
#[R] desde el primero momento
#"la extraccion del audio"
#se genera una copia prima para evitar en lo posible
#tener que volver a extraer el audio
#esta opcion nos permite volver de cero a la extraccion original
#[rs] es comun que solo nos interese reextraer una pista
#en este caso reextraeremos la pista del audio latino
#[re] es lo mismo con la otra pista
#cuando salimos quedan las cosas como las dejamos
#[a] si por casualidad queremos volver desde ese punto
#por que nos estaba yendo bien y solo lo dejamos de hacer
#por x inconveniente podemos simplemente salir y retomar con
#esta ultima opcion [a]
##############################################
read extraertiempos
clear
if [ $extraertiempos = e ];then
echo "
===================
listado de archivos
==================="
ls |tr 't' 'n'
echo "
===============
video en ingles
==============="
read "ve"
echo "
================
video en español
================"
read "vs"
ffmpeg -i "$ve" -vn -c:a libmp3lame -b:a 128k eng.mp3
ffmpeg -i "$vs" -vn -c:a libmp3lame -b:a 128k spa.mp3
cp spa.mp3 sspa.mp3
echo "
===================
listado de archivos
==================="
ls |tr 't' 'n'
echo "
============================
DEFINE pista de VIDEO A USAR
============================"
read "vus"
mkvmerge -s 0 "$vus" --language 0:spa spa.mp3 -o x.mkv
clear
clear
echo "tiempo de inicio del reproductor"
read tiempo
mplayer -osdlevel 2 -fs -ss "$tiempo" -alang spa x.mkv
#
elif [ $extraertiempos = r ];then
rm spa.mp3
echo eliminando spa.mp3
sleep 5
cp sspar.mp3 spa.mp3
echo "reemplazando sspar.mp3 x spa.mp3"
sleep 2
echo "
===================
listado de archivos
==================="
ls |tr 't' 'n'
echo "
============================
DEFINE pista de VIDEO A USAR
============================"
read "vus"
mkvmerge -s 0 "$vus" --language 0:spa spa.mp3 -o x.mkv
clear
echo "tiempo de inicio del reproductor"
read tiempo
mplayer -osdlevel 2 -fs -ss "$tiempo" -alang spa x.mkv
#
elif [ $extraertiempos = R ];then
rm spa.mp3
echo eliminando spa.mp3
sleep 5
mv sspa.mp3 spa.mp3
echo "reemplazando sspa.mp3 x spa.mp3"
sleep 2
echo "
===================
listado de archivos
==================="
ls |tr 't' 'n'
echo "
============================
DEFINE pista de VIDEO A USAR
============================"
read "vus"
mkvmerge -s 0 "$vus" --language 0:spa spa.mp3 -o x.mkv
clear
echo "tiempo de inicio del reproductor"
read tiempo
mplayer -osdlevel 2 -fs -ss "$tiempo" -alang spa x.mkv
#
elif [ $extraertiempos = re ];then
echo "
===================
listado de archivos
==================="
ls |tr 't' 'n'
echo "idioma nativo"
read "ve"
ffmpeg -i "$ve" -vn -c:a libmp3lame -b:a 128k -y eng.mp3
#
elif [ $extraertiempos = rs ];then
echo "
===================
listado de archivos
==================="
ls |tr 't' 'n'
echo "video en español"
read "vs"
ffmpeg -i "$vs" -vn -c:a libmp3lame -b:a 128k -y spa.mp3
cp -f spa.mp3 sspa.mp3
echo "
===================
listado de archivos
==================="
ls |tr 't' 'n'
echo "
============================
DEFINE pista de VIDEO A USAR
============================"
read "vus"
mkvmerge -s 0 "$vus" --language 0:spa spa.mp3 -o x.mkv
clear
echo "tiempo de inicio del reproductor"
read tiempo
mplayer -osdlevel 2 -fs -ss "$tiempo" -alang spa x.mkv
#
elif [ $extraertiempos = a ];then
echo "
===================
listado de archivos
==================="
ls |tr 't' 'n'
echo "
============================
DEFINE pista de VIDEO A USAR
============================"
read "vus"
mkvmerge -s 0 "$vus" --language 0:spa spa.mp3 -o x.mkv
clear
echo "tiempo de inicio del reproductor"
read tiempo
mplayer -osdlevel 2 -fs -ss "$tiempo" -alang spa x.mkv
#
else
echo "la opcion ingresada no es valida"
fi
clear
echo "¿sincronizar? [s] / [n]"
read z
while [ "$z" = s ]
do
echo "t = 00:00:00"
read "t"
mplayer -fs -ss "$t" -osdlevel 2 -alang spa x.mkv
echo "$t"
echo "ss = 00:00:00"
read "ss"
ffmpeg -i spa.mp3 -t "$t" -c:a copy -y a.mp3
ffmpeg -i spa.mp3 -ss "$ss" -c:a copy -y b.mp3
cp -f spa.mp3 sspar.mp3
ffmpeg -i "concat:a.mp3|b.mp3" -c:a copy -y spa.mp3
sleep 3
mkvmerge -s 0 "$vus" --language 0:spa spa.mp3 -o x.mkv
#echo "mkvmerge -s 0 "$vus" --language 0:spa spa.mp3 -o x.mkv" >>jj
clear
mplayer -fs -ss "$t" -osdlevel 2 -alang spa x.mkv
clear
echo "
=============
¿sincronizar?
============="
read z
done

nota:
falta ponerle muchas cosas para que se vea mejor.
y se podría llegar a depender de mkvtoolnix usando ffmpeg -i video.extencion -i audio.mp3 salida.extencion
pero por velocidad si se puede creo que va a ser mas comodo usar el primero

fin del post
Datos archivados del Taringa! original
79puntos
233visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
5visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

E
EpilepticMAN🇦🇷
Usuario
Puntos0
Posts57
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.