Log in

View Full Version : Designing a tiny shell for bbMPEG in Delphi


vhelp
8th July 2003, 00:24
Hi all.

It was suggested that I post in the Development FORUM. So, here goes.

LATEST LOOKS:
http://www.westnet.com/~vhelp/slimg.jpg

-- -- -- -- -- -- -- -- SLIM-G (a bbMPEG GUI) -- -- -- -- -- -- --

I'm trying to create a really short and tiny app. Maybe it's a shell,
or whatever, but I'm having really difficult time trying to get it
to (the MUXing) work successfully :)
It's ben a whole lot of trial and error this long weekend, but I
haven't make to much progress. Now, I'm here, asking for some assistance
with those who have had success ie, DVD2SVCD for instance :)

I've searched the net quite a bit, and the closest I've come to getting
my app ahead is with this confusing line:
----------------
Executing RunbbMPEG. Commandline:
"D:\video-ohjelmat\DVD2SVCD\bbMPEG\RunbbMPEG.exe" "D:\LEFFAT\patriootti\TitlePicture.bmp.mpg"
----------------

The above doesn't make any sense, but DVD2SVCD uses it in it's code
somehow. I know I'm missing something, or maybe put too much into the
params or something, but I would really love some assist on this. So,
How does DVD2SVCD do it ?? That same code snip is what I need, I think.

Below is what I've acommplished so far:

In my Delphi app, I have the following source snip to activate
bbMPEG w/ the Button and other relevant code:

Here are my Text strings, for this test excercise:
----------------

edit1.text:='h:\runbbmpeg.exe';
edit2.text:='h:\1.mpg';
edit3.text:='h:\1.m1v';
// when contenated inside WinExec(), final string will be:
// h:\runbbmpeg.exe h:\1.mpg h:\1.m1v

----------------



Here is the code to start up runbbMPEG.exe w/ the assumed
parameters, based on above or text boxes filled in at run time:

----------------

procedure TForm1.btn_MUXClick(Sender: TObject);
var
pc:Array[0..256] of char; {PChar array}
begin
// just show us what's going on w/ concatenating all strings..
statusbar1.Panels.Items[0].Text:=Edit1.Text + ' ' + edit2.text + ' ' + edit3.text;

// this line will start the bbMPEG app, including parsed text
WinExec(StrPlCopy(pc,Edit1.Text + ' ' + edit2.text + ' ' + edit3.text,255),SW_ShowNormal);
end;

----------------

* I read somewhere's that you have to Save whatever settings you
...require to use from that point on, in Default.ini which I did.
* Also, all relevent files are in the same directory ie, H:\
* And, I'm assuming that based on last saved Default.ini file, that when
...runbbMPEG.exe is run, it would starup, using Default.ini 's last settings,
...and that all I have to supply is the two items above, my source, and dest
...filenames.

Did you notice in the PIC how the Program File: H:\1.mpg was filled in ??
but that the other two above it weren't ?? ie, Video file: and Audio 1 file:

My goal is to create a tiny app that will MUX my audio and video, instead of
having to constantly open bbMPEG and setting up the files, and waiting for the
directory to display (I have tones of files, which slows things down) and
save on other repeditive actions. Saving to a default.ini or creating a config
file doesn't help my eliminating my many steps. That's where my app comes in.
Since I do lots of test encodes by making only .m1v or m2v files, and .mp2 audio
files, I need a faster and less combersome process for MUXing the final two
together. There's just to many steps w/ bbMPEG :(

I would really be greatful to the answere to my delima above :)
Thank you all for your support and assistance here.
-vhelp

jj59
8th July 2003, 21:33
Hi Vhelp

perhaps you could try mmgrover's port of the bbmpeg muxer more info
http://forum.doom9.org/showthread.php?s=&threadid=34355

or you could give mplex of the mjpegtools a shot which can mux mpa, ac3, dts and lpcm with multiple audiostreams.
A recent win32 build (not cygwin) is in the tystudio-win32 release at
http://sourceforge.net/projects/dvd-create/

jj

TFM_TheMask
8th July 2003, 23:07
Hi,

I'm using bbmpeg in my program The FilmMachine (made with Delphi) and it works fine.

What you have to do is open your win.ini file in your system directory and add batch=1 to the [bbMPEG] section. Now when you start Runbbmpeg it will use default.ini in the bbmpeg directory for batch processing.

I don't know if you are using a default.ini file and what it looks like, maybe you can post it for a better understanding of what's missing in your case.

vhelp
9th July 2003, 01:07
Hi fellow friends..

Just to be clear. I'm not trying to create any fancy GUI or some
commercial app. I'm just simply trying to cut some corners w/ the
many steps involved in MUXing my audio/video when I use bbMPEG, which
I find it to be my preference. I just need to "retain" those same
settings I use when I MUX my MPEG's but only use my app instead :)

I thank you all for your response. I appreciate them all, and I will
look them over.

@ TFM_TheMask..
I remember visiting your site a month ago. I got confused and left.
I'll give your site another swing by. Maybe i looking for something
else at the time. I can't remember.

@ TFM_TheMask..
Another question..
I basically don't want to have that GUI screen pop up (see my pic)
I would just like the MUXing to take place in the background. Is that
at all possible ??
Maybe I will need to see some things going on, but I could make that
decission when I reach that point. Thanks for your input. I'm looking
forward to visiting your site shortly.

-vhelp

TFM_TheMask
9th July 2003, 09:40
@Vhelp
Why were you confused by my site??

Background progress:
If you use SW_HIDE instead SW_SHOWNORMAL you won't see bbmpeg popup.

vhelp
9th July 2003, 14:59
hi TFM..

I was confused cause I didn't know what you "the film machine" does.

Anyways.. I went to your site yesterday. I looked around for the
source code (assuming that was what you were getting at) but I did
not find any.

I also D/L'ed your two .RAR files and, unfortunately, I installed it :)

Only one app - "The FilmMachine 0.9.8.exe"
and installed it, thinking that i'd see a bunch of smaller files
and maybe finally arriving at the source code. But, still only one file, a shortcut to "the FilmMachine", and no source code.

So, yes, I'm confused :eek:

So this doesn't help me though:
SW_HIDE instead SW_SHOWNORMAL

Thanks for any help you can give :)
-vhelp

migor
9th July 2003, 17:52
vhelp,

I think, the best and simplest way is to go by the way, that jj59 suggest - both programms have commandline options and are well-working solutions. For running them (hidden or visible) just go to http://www.torry.net/ and find here few application runner components, with sources. You can use it as is or investigate the source and change it as you want. My preferred muxer is I-Author's multiplexer, I have my own solution for running it.

TFM_TheMask
9th July 2003, 19:45
Vhelp,

I never said anything about sourcecode or that you could find any at my site. I don't release my sourcecode yet because I am not satisfied yet.

By the way you use WinExec in your first post to start bbMpeg. If you look any further in that line you see SW_ShowNormal. So you must change that in SW_Hide.

And if you like to see how I did it, just ask.

vhelp
10th July 2003, 00:51
hi TFM_TheMask..


By the way you use WinExec in your first post to start bbMpeg. If you look any further in that line you see SW_ShowNormal. So you must change that in SW_Hide.


Thanks for the tip.

But, I'm still at a stand-still. As you saw in my above post, the
pic. Those two edit boxes, "1.mpg" and "1.m1v" (ohh, I just realized
I left out a box for the Audio :eek: I'll have ta add that into my
next update ) should be filled in like this, when run by clicking
the MUX button:

LN 1 - Video file: h:\1.m1v
LN 2 - Audio 1 file: h:\1.mp2
LN 3 - program file: h:\1.mpg

But Lines 1 and 2 are empty, and only Line 3 is filled in w/ my
"first" param. It's like my other two params are ignored.

The source snip I posted in my first post works fine, but it's mising
the param switches or something, that calls the function in bbMPEG.dll
or whatever. I'm not familiar w/ all the param calling convention
in bbMPEG.dll... Actually, none, to be exact, but after a careful
web search, I could not find such a listing anywheres.

@ migor.. Hi,
I've visted Torry's but I could not find any such files or sources
or anything matching my criterai. I must be searching wrong.
and find here few application runner components, with sources.
This eludes me.
In fact, I even did a search on "bbmpeg" and "mux" and "audio mux"
and a host of other variations to no avail. Came up w/ no search result.

Anyways, I'll keep on searching. I'm bound to find out how simple it
is to successfully mux using my app as the shell:
runbbmpeg.exe 1.mpg 1.mp2 1.m1v
and vualla.. I have a muxed 1.mpg file, from 1.m1v and 1.mp2 !!

Thank you all for helping me to accomplish this goal. I'll get their
sooner or later. Well, let me get back to searching this out.

Have a great eveing all :)
-vhelp

vhelp
10th July 2003, 04:24
update..

WOW.. I cannot believe how difficult it is to find the answer to
my problem out. Very frustrating!

FWIW..
I did some additional searching, and came up with the following:
* Running mplex in Batchmode (http://forum.doom9.org/showthread.php?s=&threadid=54567&highlight=bbmpeg+AND+shell) - - but not what I'm looking for.
* runbbmpeg.exe (http://forum.doom9.org/showthread.php?s=&threadid=16235&highlight=bbmpeg+AND+command) - - this one much closer, hinting to .ini as main ??
* Is it a way to CUT OFF final CREDITS using DVD2SVCD (http://forum.doom9.org/showthread.php?s=&threadid=35303&highlight=bbmpeg+AND+command) - no relavence
* bbmpeg command line (http://forum.doom9.org/showthread.php?s=&threadid=13887&highlight=bbmpeg+AND+command) - - another close call.

Another update..
* Right now, the way I have it, is when I click on my MUX button, and
...the app opens up, [x] Run in batch mode is checked.
* Right now, I'm not sure how the .ini file plays or how to set it up
...to work. I've ben playing around w/ creating default.ini and even
...my own xx.ini but I just don't get it. Also, as to the "hinting"
...above, w/ respect to .ini setting, I fail to see anywhere's I can
...place the names of 1.m1v and 1.mp2 file, IF the .ini file is suppose
...to be lauched via batch mode.. if I read the "hint" correctly.

This is very confusing. And, still not working. hmmm, I need a break
from all this frustration - arg!!

See you all tomorrow, maybe :)
Thanks guys.
-vhelp

vhelp
10th July 2003, 07:18
Hi all.

@ TFM..

Here is a directory listing of all files in the folder that I am
now working in to keep things simplied (below)

Also, as indicated (again) in my first post's pic, my last settings
WERE saved and recalled. If you note how the pic is showing in the
log file, under Multiplexing.. it's showing my:
DVD with pulldown audo-dectection
Normally, it would say MPEG1.. .. ..

Thanks for your help.
-vhelp

-----------------------------------------



Directory of H:\bbmpeg

. <DIR> 07-11-01 3:53a .
.. <DIR> 07-11-01 3:53a ..
AVI2MPG2 HLP 14,780 05-24-01 11:49p avi2mpg2.hlp
RUNBBM~1 EXE 40,960 12-21-01 5:04p RunbbMPEG.exe
CHANGE LOG 27,552 05-25-01 12:16a change.log
BBMPEG DLL 856,064 05-24-01 11:50p bbmpeg.dll
DEFAULT INI 4,787 07-10-03 12:39a default.ini
AVI2MP~1 HLP 13,516 05-24-01 11:49p avi2mpg2_vfw.hlp
BBMPEG HLP 25,240 05-24-01 11:48p bbmpeg.hlp
README TXT 3,209 05-24-01 11:48p readme.txt
AVI2MPG2 EXE 495,616 02-18-01 2:13a avi2mpg2.exe
AVI2MP~1 EXE 483,328 02-18-01 2:12a avi2mpg2_vfw.exe
INTRA-CG MAT 192 02-23-00 6:28p intra-cg.mat
INTRA-NI MAT 192 02-23-00 6:25p intra-ni.mat
INTER-CG MAT 192 02-23-00 6:25p inter-cg.mat
INTER MAT 192 05-13-94 8:10a inter.mat
INTRA MAT 192 05-13-94 8:08a intra.mat
1 M1V 615,182 07-06-03 5:18p 1.m1v
1 MP2 141,532 07-06-03 4:19p 1.mp2
BBMPEG TXT 0 07-11-01 5:22a bbmpeg.txt
19 file(s) 3,533,524 bytes
2 dir(s) 2,500.00 MB free


Next, is the default.ini file.
Note, the remaining bottom portion of file, I truncated to save space:
---------------------------------------------------
[loadsave]
description=MPEG-1 NTSC video and MPEG audio

[iofiles]
saveTempVideo=0
saveTempAudio=0
intraQuantMatrix=
nonIntraQuantMatrix=
statisticsFilename=

[general]
useFloatingPoint=0
verbose=0
blackAndWhite=0
userEncodeVideo=1
userEncodeAudio=1
multiplexVideo=1
multiplexAudio=1
muxStartTime=0
muxStopTime=0
maxFileSize=0
resetClocks=0
setBrokenLink=0
writeEndCodes=0

[video]
videoType=0
videoPulldownFlag=0
profile=4
level=8
chromaFormat=1
aspectRatio=12
frameRateCode=4
iFramesInGOP=15
ipFrameDistance=3
autoBitrate=0
constBitrateFlag=0
mquantValue=4
constBitrate=1800000
maxBitrate=0
avgBitrate=0
minBitrate=0
firstFrameHours=0
firstFrameMinutes=0
firstFrameSeconds=0
firstFrameFrame=0

[audio]
audioLayer=2
audioMode=0
deEmphasis=0
audioBitrate=11
privateBit=0
copyrightBit=0
originalBit=0
errorProtection=0
psychModel=2

[program]
programStreamType=4
vbrMultiplex=1
padVCDAudio=0
writeProgramEndCode=1
muxSVCDScanOffsets=0
alignSequenceHeaders=1
usePrivateStream2=0
useComputedBitrate=2
frameTimestamps=2
muxPulldownFlag=3
userMuxRate=25200
sectorSize=2048
packetsPerPack=1
videoBufferSize=232
audioBufferSize=4
audio1BufferSize=4
sectorDelay=0
videoDelay=180
audioDelay=180
audio1Delay=180
alwaysWriteSysHeader=0

[advVideo]
colorPrimaries=4
transferCharacteristics=4
matrixCoefficients=5
videoFormat=2
intraDCPrec=0
variableMaxMotion=58
vbvBufferSize=23
forceVBVDelay=0
displayHorizontalSize=352
displayVerticalSize=240
progressiveSequence=1
progressiveFrame=1
fieldPictures=0
topFieldFirst=0
repeatFirstField=0
intraVLCFormatI=0
intraVLCFormatP=0
intraVLCFormatB=0
framePredDCTI=1
framePredDCTP=1
framePredDCTB=1
quantizationScaleI=0
quantizationScaleP=0
quantizationScaleB=0
alternateScanI=0
alternateScanP=0
alternateScanB=0
writeSequenceDisplayExt=1
writeSequenceEndCode=1
embedSVCDUserBlocks=0
writePictureDisplayExt=0
frameCentreHorizontalOffset=0
frameCentreVerticalOffset=0
sliceHdrEveryMBrow=0
reactionParameter=0
initialAverageActivity=0
initialIComplexity=0
initialPComplexity=0
initialBComplexity=0
initialIFullness=0
initialPFullness=0
initialBFullness=0
minFramePercentage=25
padFramePercentage=90
resetPBIVBF=1
autoVectorLengths=1
horzPelMovement=3

TFM_TheMask
10th July 2003, 12:43
Ok, here is how I do it:

procedure TMainForm.Mux;
var
MuxedFile : string;
exInfo: TShellExecuteInfo;
exitcode: DWORD;
begin
MuxedFile := TempFileName + 'TFM_Muxed_File.mpg'; // Output file
With exInfo Do
Begin
cbSize:= Sizeof( exInfo ); // required!
fMask := SEE_MASK_NOCLOSEPROCESS or SEE_MASK_FLAG_DDEWAIT;
Wnd := Handle; // forms handle
lpVerb:= 'open';
lpFile:= Pchar(FilmMachineDir + 'bbMpeg\RunbbMpeg'); // directory for RunbbMpeg
lpParameters:= PChar(MuxedFile); // Output file
nShow := SW_HIDE
End;
If ShellExecuteEx( @exInfo ) Then
Begin
While GetExitCodeProcess( exinfo.hProcess, exitcode )
and (exitcode = STILL_ACTIVE) and not Closing Do
Application.Processmessages;
CloseHandle( exinfo.hProcess );
End
Else
ShowMessage(SysErrorMessage( GetLastError ));
end;


And here is a sample of the default.ini file (keep in mind that you must fill in the video and audio file in the default.ini). Also you must have a intra- and nonintraQuantMatrix file.

Note, the remaining bottom portion of file, I truncated to save space:
---------------------------------------------------
[loadsave]
description=The FilmMachine Settings

[iofiles]
saveTempVideo=0
saveTempAudio=0
intraQuantMatrix=C:\Program Files\The FilmMachine\Intra.mtr
nonIntraQuantMatrix=C:\Program Files\The FilmMachine\Non-Intra.mtr
statisticsFilename=
AudioFilename=C:\Program Files\The FilmMachine\Output\TFM_Encoded_Audio.mp2
Audio1Filename=
VideoFilename=C:\Program Files\The FilmMachine\Output\TFM_Enc_Video.mpv

[general]
breakAfterFirst=0
useFloatingPoint=0
verbose=0
blackAndWhite=0
userEncodeVideo=1
userEncodeAudio=1
multiplexVideo=1
multiplexAudio=1
muxStartTime=2
muxStopTime=999999
maxFileSize=795
resetClocks=1
setBrokenLink=1
writeEndCodes=1

[video]
videoType=2
videoPulldownFlag=0
profile=4
level=8
chromaFormat=1
aspectRatio=2
frameRateCode=4
iFramesInGOP=15
ipFrameDistance=3
autoBitrate=0
constBitrateFlag=0
mquantValue=4
constBitrate=6000000
maxBitrate=0
avgBitrate=0
minBitrate=0
firstFrameHours=0
firstFrameMinutes=0
firstFrameSeconds=0
firstFrameFrame=0
[audio]
audioLayer=2
audioMode=0
deEmphasis=0
audioBitrate=11
privateBit=0
copyrightBit=0
originalBit=0
errorProtection=0
psychModel=2
[program]
programStreamType=3
vbrMultiplex=1
padVCDAudio=0
writeProgramEndCode=1
muxSVCDScanOffsets=1
alignSequenceHeaders=1
usePrivateStream2=0
useComputedBitrate=2
frameTimestamps=0
muxPulldownFlag=3
userMuxRate=0
sectorSize=2324
packetsPerPack=1
videoBufferSize=230
audioBufferSize=4
audio1BufferSize=4
sectorDelay=0
videoDelay=180
audioDelay=180
audio1Delay=180
alwaysWriteSysHeader=0

[advVideo]
colorPrimaries=4
transferCharacteristics=4
matrixCoefficients=5
videoFormat=2
intraDCPrec=1
variableMaxMotion=58
vbvBufferSize=112
forceVBVDelay=1
displayHorizontalSize=720
displayVerticalSize=480
progressiveSequence=0
progressiveFrame=0
fieldPictures=0
topFieldFirst=1
repeatFirstField=0
intraVLCFormatI=1
intraVLCFormatP=0
intraVLCFormatB=0
framePredDCTI=1
framePredDCTP=1
framePredDCTB=1
quantizationScaleI=1
quantizationScaleP=1
quantizationScaleB=1
alternateScanI=1
alternateScanP=1
alternateScanB=1
writeSequenceDisplayExt=1
writeSequenceEndCode=1
embedSVCDUserBlocks=0
writePictureDisplayExt=0
frameCentreHorizontalOffset=0
frameCentreVerticalOffset=0
sliceHdrEveryMBrow=1
reactionParameter=0
initialAverageActivity=0
initialIComplexity=0
initialPComplexity=0
initialBComplexity=0
initialIFullness=0
initialPFullness=0
initialBFullness=0
minFramePercentage=25
padFramePercentage=90
resetPBIVBF=1
autoVectorLengths=1
horzPelMovement=3
vertPelMovement=3


Success with it.

vhelp
10th July 2003, 13:41
Hi TFM_TheMask..

I'm on my way out, but just wanted to say thanks. I'll try this when
I get back home this evening.

If off ta work I go hehe.. :)
-vhelp

migor
10th July 2003, 17:06
vhelp,
I've placed here http://svcdbuilder.sphosting.com/Components the source of ExeApp comp. and D6 comp. for running multiplexor of MjpegTools (no source) - it runs the muxer console program hidden, in additional thread and catches it's output. Simple examples are included.

vhelp
14th July 2003, 00:21
@ TFM_TheMask..

Thanks for your patiance..

I'm getting there. My app is almost done.. made some cosetic changes
already :) Later, I'll refine it and add other features to it. I'm
hoping that others may find some use for it. (after all the hair I
pulled out of my scalp) - AIWS.. Nothing fancy, mind you. Anyways...

I was busy this weekend, and didn't spend as much time as I planned.

Ok, I have a question, you mentioned, intra and non-intra
files.. do you have a sample of this file ??

Also, the top part of your snip seems to be missling some code
snips. I didn't quite get it ta work, though I managed to figure
some things out. I realize that the code snip is to keep the dos
windows in check :wink: but, I'm slowly getting their. I still want
to maintain my "simplicity" code (from above) w/out vearing off too
far, if that's at all possible. Course, I'll do whatever I have to,
to get it to work though hehe..

Intr and non-Intra...
* Ok, bare w/ me.. I'm trying to deduce a little here..
Does this mean (below) and how is the format setup in the file(s) ??
From Standard matrix in TMPG
-----------------------------------
intra:
=8 16 19 22 26 27 29 34
=16 16 22 24 27 29 34 37
=19 22 26 27 29 34 34 38
=22 22 26 27 29 34 37 40
=22 26 27 29 32 35 40 48
=26 27 29 32 35 40 48 58
=26 27 29 34 38 46 56 69
=27 29 35 38 46 56 69 83

non-intra:
=16 17 18 19 20 21 22 23
=17 18 19 20 21 22 23 24
=18 19 20 21 22 23 24 25
=19 20 21 22 23 24 26 27
=20 21 22 23 25 26 27 28
=21 22 23 24 26 27 28 30
=22 23 24 26 27 28 30 31
=23 24 25 27 28 30 31 33
-----------------------------------

Thank you for taking the time out for me on this matter.
-vhelp

vhelp
14th July 2003, 00:58
hi TFM..

I done a little more research (via web) and I found some info on the
intra and non-intra. Apparently there seem to be a requirement for
TWO of these files ie, int.mtr and nonint.mtr, and I also found a
bbmpg setting .ini file. pretty similar to what you gave, though
your's seem to have more info that looked more interesting.
The intra/non-intra looks sort of like what I posted, but just need
to be cleaned up I think, to match those files I D/L'ed elsewheres.

Ok, I'm also not sure of the exact naming of the filename to use
for each file. And also, there must be some form of POINTER to these
files for bbmpeg to see them and use them during command-line ops.

Thanks for any help on this (anyone)
I think I have everything down here so far :)

-vhelp

vhelp
14th July 2003, 01:45
@ TFM..

intra/non-intra files...
I see them where you placed them in your .ini file. Sorry, I need
glasses :rolleyes:

-vhelp

vhelp
14th July 2003, 03:21
@ ??

Update.. :confused:

I'm treading rough roads everywhere. Not working. I think it's because
I have some missing files or wrong ones, or I have some syntax issues
to work out.

But, I'll work them out. I just need a little more time debugging and
things. RaTtS.

I'll keep you all posted, as to my success. I have a friend helping
me out, and he's ben pounding his head just the same. Stay tuned!

Thanks to you all.
-vhelp

vhelp
14th July 2003, 05:24
Update..

Ok.. Argg!!

Ureaka!! I've got it. Finally. We did it. well, actually, my
friend JoeJo went home pooped I figured it out shortly after he
left hehe... He'll find out sooner or later hehe..


Anyways, I'd like ta say THANKS ta everybody for lending me a helping
hand. And, as to those other suggestions, I'll be looking into them
as well. I'm interested in that mplex option !

If any is interested it how its finally coming about, I'll be happy
ta post a sample of it. I'm already getting ideas all the sudden.
In fact, even a QUICK way of saving those edited lines in one sweep!!
And, I love it, I love it hehe..

-vhelp

vhelp
14th July 2003, 07:12
Hi all :)

I thought it best to just post a sample pic of what it looks like
(NOW) already, there is change. My wheels just took off, spinning
like crazy. Anyways, Thanks to TFM_TheMask for inlightening me
w/ the bbmpeg syntax, and the rest was just a matter of figuring out.
He really helped me out (with out actually handing me it all, else
how would I learn) At first, the code snips that was presented just
kept crashing and crashing. That was because I did not have any of
the files that bbmpeg needed to properly call via command-line arguments. And, on top of that, I had the wrong bbmpeg files to begin
with LOL. Oh, Thanks to DVD2SVCD too. Well, he didn't help at all.
Didn't even say "good evening" hehe.. actually, it was the files that
I got from his website, that I copied on top of my previous install
that actually got it to work. I must have had a few wrong files mixed
in from other installs.. and there were many.

So, it was a pretty rough ride for a while, and hear it is, after 2 a.m.
and I am finally beginning to see my rewards after hard work. Anyways.. 'nough w/ the corney stuff :)

Here's the pic, I hope it displays on this page.

http://www.westnet.com/~vhelp/slimg.jpg

Again, than you all for your assistance :)
-vhelp

TFM_TheMask
14th July 2003, 08:09
Hi Vhelp,

Your sample looks promising. I hope you have still some hair left for doing some other things. If you like I can test your program for you. Just send it to me.

It's a good feeling to find the important things yourself, isn't it.

I had that feeling to this weekend when I implemented AVI to DVDR in The FilmMachine (now only the testing has to be done).

Was nice helping you.

Greetings,

vhelp
14th July 2003, 08:14
Hi TFM.. :)

Thanks !!

Right now, I'm trying to work out the "quicky" bugs, in a rush, cause I
have ta get ta bed - it's 3:15am here. I'm rushing to U/L a sneak peak (kvcd.net) and I'll post here too. I'm exhausted. I was mostly
tyring to help others this weekend, rather than myself, and I'm pooped
after all this. Somebody's got ta pay the bills, you know :rolleyes:

Thanks again for all you help (so far)
-vhelp

vhelp
15th July 2003, 05:52
hay TFM..

I'm back.

I got an interesting quesiton for ya. I can't seems to find the answer
to it.

Ok, we both know that bbMPEG will open the default.ini file, but what
if I have several that I created that have specific settings that are
based on the bbmpeg GUI (the TABS you see w/ presets when you click
vcd/svcd/dvd etc) What I've done is, modify some settings, and then
SAVED them each, so now I have a bunch of them. I'd like to incorporate
a dropdown or some form of selection of those .ini settings I went
and created.

Examples:
* kvcd.ini
* vhelp.ini
* TFM.ini (haha)

How do I use any one of them, in a given bbmpeg session (our command
line way) ?? ??

Thank you for your assistance.
-vhelp

TFM_TheMask
15th July 2003, 21:41
Hi,

Just a thought:

From the choosen ini file make a default.ini file like this:

bbMpeg := 'TFM.ini'; // (hahaha) or kvcd.ini or vhelp.ini
Default := default.ini';
if FileExists(bbMpeg) then
begin
AssignFile(f , bbMpeg);
Reset(f);
AssignFile(f1 , Default);
Rewrite(f1);
while not Eof(F) do
begin
Read(F, Ch);
Write(F1, Ch);
end;
CloseFile(F);
CloseFile(F1);
end
else
begin
Exit;
end;


Then change some ini values in the default.ini like this:

bbMpegini := TInifile.Create(Default);
try
bbMpegini.WriteString('iofiles','intraQuantMatrix', FilmMachineDir + 'Intra.mtr');
bbMpegini.WriteString('iofiles','nonIntraQuantMatrix', FilmMachineDir + 'Non-Intra.mtr');
bbMpegini.WriteString('iofiles','AudioFilename', deOutput.Text + 'TFM_Encoded_Audio.mp2');
if Pull then
bbMpegini.WriteString('iofiles','VideoFilename', deOutput.Text + 'TFM_Pull_Enc_Video.mpv')
else
bbMpegini.WriteString('iofiles','VideoFilename', deOutput.Text + 'TFM_Enc_Video.mpv');
bbMpegini.WriteInteger('general','breakAfterFirst', 0);
case cbCdSize.ItemIndex of
0 : bbMpegini.WriteInteger('general','maxFileSize', 735);
1 : bbMpegini.WriteInteger('general','maxFileSize', 795);
2 : bbMpegini.WriteInteger('general','maxFileSize', 895);
3 : bbMpegini.WriteInteger('general','maxFileSize', 994);
end;
if rgOutput.ItemIndex = 1 then
begin
bbMpegini.WriteInteger('program','programStreamType', 1);
bbMpegini.WriteInteger('program','vbrMultiplex', 0);
bbMpegini.WriteInteger('program','muxSVCDScanoffsets', 0);
bbMpegini.WriteInteger('program','alignSequenceHeaders', 0);
bbMpegini.WriteInteger('program','useComputedBitrate', 0);
bbMpegini.WriteInteger('program','muxPulldownFlag', 0);
bbMpegini.WriteInteger('program','userMuxRate', 3528);
bbMpegini.WriteInteger('program','videoBufferSize', 46);
bbMpegini.WriteInteger('program','sectorDelay', 400);
bbMpegini.WriteInteger('program','videoDelay', 344);
bbMpegini.WriteInteger('program','audioDelay', 344);
bbMpegini.WriteInteger('program','audio1Delay', 344);
end;
finally
bbMpegini.Free;
end;

I hope this is of any use, have fun.

vhelp
18th July 2003, 02:33
Hay TFM.. :)

I'm back. I was away fro several days (buisness trip)

I looked over your idea, and am a little confused, but I will work
on it !!

I had another suggestion (or idea) but I'm really busy w/ something
that came up in SLIM-G.. so it's got me tied. Actaully, I'm kind of
done checking (debuggin) it out and all, and all is well, but I got
something else cooking. (which Delphi had better "controls/bottons"
for my apps. Anyways..

I'm trying something else on SLIM-G though, before I forget. I've
now started documenting my projects in the source code's bottom
w/ commented notes using "//" and "{}" to aid me and my development.
I just tuck all my ideas at the bottom.

Oh, my idea (in Delphi) was to basically swap files. But this needs
some work, and faster turning of my wheels ;)

But, I'm having fun w/ this project. Mind you, it's not a very
popular app, and that's fine w/ me. I'm sure that maybe someone out
there will find it useful.

EDIT:
After re-looking at your code snip above, I am currently looking at your code snip (though it's very confusing) and see if I can work it
into my app w/ some alterations of course. It will be challenging to
see how it comes out though. I'm not familiar w/ working .INI files
in Delphi, so this will be my first time at it (blinkdly)
I'll let you know how it comes out. Only issue is the Matrix files.
Normally, I wouldn't have a problem with those two files, but there
are various other Matrix's that people use, including the popular,
kVCD's, and the one used w/ CCE. But, I don't know how much of an
impact these Matrix's have w/ bbMPEG. I guess, only some testing will
prove otherwise.

-vhelp