Ver Mensaje Individual
  #9 (permalink)  
Antiguo 03/06/2008, 21:39
seu230
 
Fecha de Ingreso: noviembre-2004
Mensajes: 116
Antigüedad: 19 años, 5 meses
Puntos: 3
Respuesta: ¿Multiplexar avi+mp3 masivamente?

Lo de usar el automatizador es algo tosco, este automatizador emula movimiento de teclados y del mouse y bueno se puede automatizar casi de todo solo tienes que decirle poco a poco a el automatizador que es lo que quieres ir haciendo, otra mejor alternativa que estuve viendo es crear un archivo .jobs(virtualdub job list) pero no desde el mismo virtualdub sino mas bien desde un script cualquiera, estuve viendo como guarda virtualdub los .jobs y la forma en que los guarda es la sgte:

Código:
// VirtualDub job list (Sylia script format)
// This is a program generated file -- edit at your own risk.
//
// $numjobs 2
//

// $job "Job 1"
// $input "G:\creacionesavi\avis1\Ricardo Arjona - Solo.avi"
// $output "H:\CCE\Ricardo Arjona - Libre.avi"
// $state 0
// $start_time 0 0
// $end_time 0 0
// $script

VirtualDub.Open("G:\\creacionesavi\\avis1\\Ricardo Arjona - Solo.avi","",0);
VirtualDub.RemoveInputStreams();
VirtualDub.stream[0].SetSource("G:\\creacionesavi\\avis1\\Ricardo Arjona - Libre.mp3",0x00000202,0);
VirtualDub.stream[0].DeleteComments(1);
VirtualDub.stream[0].AdjustChapters(1);
VirtualDub.stream[0].SetMode(0);
VirtualDub.stream[0].SetInterleave(1,500,1,0,0);
VirtualDub.stream[0].SetClipMode(1,1);
VirtualDub.stream[0].SetConversion(0,0,0,0,0);
VirtualDub.stream[0].SetVolume();
VirtualDub.stream[0].SetCompression();
VirtualDub.stream[0].EnableFilterGraph(0);
VirtualDub.stream[0].filters.Clear();
VirtualDub.video.DeleteComments(1);
VirtualDub.video.AdjustChapters(1);
VirtualDub.video.SetDepth(24,24);
VirtualDub.video.SetMode(0);
VirtualDub.video.SetFrameRate(0,1);
VirtualDub.video.SetIVTC(0,0,-1,0);
VirtualDub.video.SetRange(0,0);
VirtualDub.video.SetCompression();
VirtualDub.video.filters.Clear();
VirtualDub.subset.Clear();
VirtualDub.subset.AddRange(0,2277);
VirtualDub.SaveAVI("H:\\CCE\\Ricardo Arjona - Libre.avi");
VirtualDub.Close();

// $endjob
//
//--------------------------------------------------
// $job "Job 2"
// $input "G:\creacionesavi\avis1\Los Doltons - El Ultimo Beso.avi"
// $output "H:\CCE\Los Doltons - El Ultimo Beso.avi"
// $state 0
// $start_time 0 0
// $end_time 0 0
// $script

VirtualDub.Open("G:\\creacionesavi\\avis1\\Los Doltons - El Ultimo Beso.avi","",0);
VirtualDub.RemoveInputStreams();
VirtualDub.stream[0].SetSource("G:\\creacionesavi\\avis1\\Los Doltons - El Ultimo Beso.mp3",0x00000202,0);
VirtualDub.stream[0].DeleteComments(1);
VirtualDub.stream[0].AdjustChapters(1);
VirtualDub.stream[0].SetMode(0);
VirtualDub.stream[0].SetInterleave(1,500,1,0,0);
VirtualDub.stream[0].SetClipMode(1,1);
VirtualDub.stream[0].SetConversion(0,0,0,0,0);
VirtualDub.stream[0].SetVolume();
VirtualDub.stream[0].SetCompression();
VirtualDub.stream[0].EnableFilterGraph(0);
VirtualDub.stream[0].filters.Clear();
VirtualDub.video.DeleteComments(1);
VirtualDub.video.AdjustChapters(1);
VirtualDub.video.SetDepth(24,24);
VirtualDub.video.SetMode(0);
VirtualDub.video.SetFrameRate(0,1);
VirtualDub.video.SetIVTC(0,0,-1,0);
VirtualDub.video.SetRange(0,0);
VirtualDub.video.SetCompression();
VirtualDub.video.filters.Clear();
VirtualDub.subset.Clear();
VirtualDub.subset.AddRange(0,1656);
VirtualDub.SaveAVI("H:\\CCE\\Los Doltons - El Ultimo Beso.avi");
VirtualDub.Close();

// $endjob
//
//--------------------------------------------------
// $done
Este ultimo va multiplexar "ricardo arjona - avi" y "los doltons - el ultimo beso.avi" con sus correspondientes mp3.

Estuve probando este script para crear un job no desde virtualdub sino mas bien desde script .bat el script es el sgte:

Código:
rem reemplazar ");;" por );
rem reemplazar .avi.mp3 por .mp3
rem reemplazar VirtualDub.Open("G:\creacionesavi\avis1\ por VirtualDub.Open("G:\\creacionesavi\\avis1\\
rem reemplzar VirtualDub.stream[0].SetSource("G:\creacionesavi\avis1\ por VirtualDub.stream[0].SetSource("G:\\creacionesavi\\avis1\\
rem reeemplazar VirtualDub.SaveAVI("G:\creacionesavi\avis1\ por VirtualDub.SaveAVI("G:\\
echo.// VirtualDub job list (Sylia script format) >> mijob.jobs
echo.// This is a program generated file -- edit at your own risk. >> mijob.jobs
echo.// >> mijob.jobs
echo.// $numjobs 3 >> mijob.jobs
echo.// >> mijob.jobs

for /R %%i in (*.avi) do (


echo.// $job "Job 1">>mijob.jobs
(
echo.// $input "%%i">>mijob.jobs
echo.// $output "G:\%%i">>mijob.jobs
echo.// $state 0 >> mijob.jobs
echo.// $start_time 0 0 >> mijob.jobs
echo.// $end_time 0 0 >> mijob.jobs
echo.// $script >> mijob.jobs
echo. >> mijob.jobs
)

rem    (
echo.VirtualDub.Open("%%i","",0");;" >> mijob.jobs
echo.VirtualDub.RemoveInputStreams(");;" >> mijob.jobs
echo.VirtualDub.stream[0].SetSource("%%i.mp3",0x00000202,0");;" >> mijob.jobs
echo.VirtualDub.stream[0].DeleteComments(1");;" >> mijob.jobs
echo.VirtualDub.stream[0].AdjustChapters(1");;" >> mijob.jobs
echo.VirtualDub.stream[0].SetMode(0");;" >> mijob.jobs
echo.VirtualDub.stream[0].SetInterleave(1,500,1,0,0");;" >> mijob.jobs
echo.VirtualDub.stream[0].SetClipMode(1,1");;" >> mijob.jobs
echo.VirtualDub.stream[0].SetConversion(0,0,0,0,0");;" >> mijob.jobs
echo.VirtualDub.stream[0].SetVolume(");;" >> mijob.jobs
echo.VirtualDub.stream[0].SetCompression(");;" >> mijob.jobs
echo.VirtualDub.stream[0].EnableFilterGraph(0");;" >> mijob.jobs
echo.VirtualDub.stream[0].filters.Clear(");;" >> mijob.jobs
echo.VirtualDub.video.DeleteComments(1");;" >> mijob.jobs
echo.VirtualDub.video.AdjustChapters(1");;" >> mijob.jobs
echo.VirtualDub.video.SetDepth(24,24");;" >> mijob.jobs
echo.VirtualDub.video.SetMode(0");;" >> mijob.jobs
echo.VirtualDub.video.SetFrameRate(0,1");;" >> mijob.jobs
echo.VirtualDub.video.SetIVTC(0,0,-1,0");;" >> mijob.jobs
echo.VirtualDub.video.SetRange(0,0");;" >> mijob.jobs
echo.VirtualDub.video.SetCompression(");;" >> mijob.jobs
echo.VirtualDub.video.filters.Clear(");;" >> mijob.jobs
echo.VirtualDub.subset.Clear(");;" >> mijob.jobs
echo.VirtualDub.subset.AddRange(0,3000");;" >> mijob.jobs
echo.VirtualDub.SaveAVI("%%i"");;" >> mijob.jobs
echo.VirtualDub.Close(");;" >> mijob.jobs
echo. >> mijob.jobs
echo.// $endjob >> mijob.jobs
echo.// >> mijob.jobs
echo.//-------------------------------------------------- >> mijob.jobs
(
echo.virtualdub("%%i","",0);
)
rem    )


) >> mijob.jobs
echo.// $done >> mijob.jobs
exit
Guardas este archivo con extension .bat y lo metes en la carpeta en donde tengas tus avis y mp3s y simplemente le das doble clik ¡y casi listo! se creara un archivo llamado mijobs.jobs listo para cargar en virtualbud y listo para darle start digo casi listo ya que no soy un programador y hay que hacerle unas modificaciones a este job resultante las cuales estan especificadas al inicio del script pero eso no es mucho problema ire a la seccion de programadores y estoy seguro que alguno de ellos podra arreglarlo sin mucho esfuerzo, el problema mayor ahora es otro ya que en la linea donde virtualdub pone lo sgte:

VirtualDub.subset.AddRange(0,2277);

el numero 2277 representa el numero de frames que detecto el virtualdub al cargar el avi, lo cual el script no puede detectarlo tratare de averiguar para ver si sale algo de ser asi entonces crear jobs desde un script seria una pasada sencilla, ojo que este script serviria solamente si se va multiplexar archivos avis con mp3s de mismo nombre aunque haciendole modificaciones podria hacer muchas otras cosas tal como cargar subtitulos que tengan el mismo nombre que el avi o asignarle una misma forma de codificacion a todas las fuentes, ya les avisare mas luego

P.D. seria genial si virtualdub se pudiese manejar desde linea de comandos asi seria muchisimo mas automatico.