parámetros para ejecutar runbbMPEG desde la línea de comandos
CONSIDERACIONES: El bbmpeg.exe y el bbmpeg.dll utilizados para detallar lo anterior son los que han sido modificados por el autor del dvd2svcd (
http://www.dvd2dvd.org/), es decir, los que se consiguen en el sitio oficial del bbmpeg no funcionan de la forma descrita, descárguense el dvd2svcd y extraigan de la carpeta .\bbmpeg lo necesario
Hola amigos.
Tenía el siguiente dilema, como ejecutar el runbbmpeg desde la línea de comandos, la versión que poseo es aquella descargada de
http://www.dvd2dvd.org , la misma que usa el DVD2SVCD, analizando este programa me di cuenta que en el log en pantalla hacía una llamada al programa runbbmpeg.exe con un único parámetro que era el nombre del archivo MPG resultante de la multiplexación, extraño me parecía.
Si desde una línea de comandos nosotros hacemos lo mismo, NO FUNCIONA !!, porque aparece la ventana del runbbMPEG preguntando todo, ¿ que es lo que hice entonces ?
Lo primero fue crear un ejecutable en CLIPPER con el siguiente código:
FUNCTION runbbmpeg( xpar1, xpar2, xpar3, xpar4, xpar5, xpar6, xpar7, xpar8, xpar9, xpar10 )
Local cArchTxt := "runbbmpe.par"
SET CONSOLE OFF
SET DEVICE TO PRINTER
SET PRINTER ON
SET PRINTER TO (cArchTxt)
? xPar1,xPar2, xpar3, xpar4, xpar5, xpar6, xpar7, xpar8, xpar9, xpar10
SET PRINTER TO
SET PRINTER OFF
SET DEVICE TO SCREEN
SET CONSOLE ON
RETURN ( NIL )
A este programa le puse RUNBBMPEG.EXE y la idea era que el DVD2SVCD lo ejecutara con parámetros y estos parámetros mi programa los escribiría en un archivo runbbmpe.txt
Al archivo existente en c:\dvd2svcd\bbmpeg\runbbmpeg.exe le cambié nombre por runbbmpeg.old
Y puse el runbbmpeg.exe creado por mi en c:\dvd2svcd\bbmpeg
Ejecuté el DVD2SVCD y procesé un pequeño AVI, sorpresa la mía que el archivo runbbmpe.txt no lo encontré en c:\dvd2svcd\bbmpeg si no que lo encontré en c:\dvd2svcd\movie y contenía:
C:\DVD2SVCD\MOVIE\ARCA.MPG NIL NIL NIL NIL NIL NIL NIL NIL NIL
Como ven, ningún parámetro adicional, solo como primer parámetro el archivo resultante de la multiplexación.
¿Donde se pasaron todos los parámetros de multiplexación ?, encontré la respuesta en el archivo c:\dvd2svcd\movie\default.ini allí está toda la configuración necesaria y sobre todo dentro en:
[loadsave]
description=DVD2SVCD Settings
[iofiles]
saveTempVideo=0
saveTempAudio=0
intraQuantMatrix=
nonIntraQuantMatrix=
statisticsFilename=
AudioFilename=c:\demosist\demosistema.mp2
VideoFilename=c:\demosist\demosistema.m2v
Audio1Filename=
[general]
breakAfterFirst=1
etc. etc. etc.
Ahora, el runbbmpeg nunca recibe como parámetro el nombre del archivo INI, es decir, lo toma por defecto del directorio actual. Modifiqué este INI, dándole parámetros nuevos como nombre del archivo de video y audio para multiplexar, etc.
Ejecuté el runbbmpeg y nunca tomó este archivo INI en consideración !!!
Ahora, ¿ porqué el default.ini se creó en c:\dvd2svcd\movie y el runbbmpeg.exe se encuentra instalado en c:\dvd2svcd\bbmpeg ? si al runbbmpeg nunca se le pasa como parámetro la ubicación del INI, lo lógico es que el runbbmpeg.exe es copiado temporalmente dentro del directorio c:\dvd2svcd\movie para ejecutarlo desde allí y después borrarlo cuando se termina el multiplexado.
Lo copié allí junto con bbmpeg.dll, ejecuté el runbbmpeg.exe y no funcionó automáticamente, sino que me abrió la venta para ingresar todos los parámetros.
Que fiasco me dije, ¿ como entonces ?, y de repente se me alumbró la ampolleta, me pregunté ¿ porque la dll no tiene el mismo nombre del exe ? y ¿ porqué cuando ejecuto runbbmpeg en el Caption de la ventana me aparece bbMPEG – v1.24 beta 18 y no runbbMPEG – v1.24 beta 18?, así que le cambié nombre al runbbmpeg.exe por bbmpeg.exe, lo ejecuté, y BUALA!!!!, funcionó.
Asi que amigos, a modificar el default.ini o crearlo desde un front-end y en el mismo directorio donde se encuentra el ini copiar el bbmpeg.dll, el bbmpeg.exe y ejecutarlo, que el proceso lo hará en forma automática con los parámetros especificados, casi de la misma forma que lo hace HeadAC3He.
Considerar que deben agregar si no existe dentro del default.ini en la sección [iofiles] lo siguiente:
AudioFileName=c:\demosist\demosistema.mp2
VideoFileName=c:\demosist\demosistema.m2v
Audio1FileName=
Para especificar la ruta de los archivos a considerar.
Además pueden llamar al bbmpeg con un parámetro que es donde quedará el mpg resultante, por ejemplo:
bbmpeg c:\demosist\demosist.mpg
Disculpen lo extenso de esta explicación, pero fue hecho con la intención de alumbrar un poco para descubrir en lo futuro nuevas formas de obtener los parámetros de llamada a programas cuando no existe documentación al respecto o no se conoce.
Además me di la vuelta por este foro y no encontré respuesta.
Y necesitaba con urgencia descubrir la solución.
Que estén bien…