|
Just a side note.
Larger JPEG files, because of how they
decompress, will not always split up
evenly. (Especially higher resolution images.)
Saving an errant JPEG as a BMP and then using
the BMP with the program fixes the problem.
When I get a chance, I will see if I can make this
adjustment dynamically in the program.
|
|
|
|
|
I updated the zip file at the previous link
to handle the problem I described in my last post.
However, some of the side code, (that I added for testing this,)
acts 'squirrelly'. (The hovering of the small pictureboxs
which changings a setting in the picturebox, results in
the picturebox picking up a 'stray' image.)
The code hopefully is still useful to you.
I have posted in a graphics forum trying to find out
why I am getting the strange behavior on the small picturebox
hover event. (That was added for testing purposes.)
|
|
|
|
|
I have posted a final fix for all the problems
I described, at the same link as before.
Everything behaves now
|
|
|
|
|
WOW! Thanks a heap. The first post was useful, this is excellent! Thanks again!
Posted by The ANZAC
|
|
|
|
|
I have a list of mpgs that i want to merge.
How can i merge two mpg's in my program. I am not interested in using an outside tool.
Is this possible with Graphedit?
Is there any open source code that does this.
If i do a binary copy like with : copy /b (names of files) (output file) than the length of the movie is incorrect (i basically corrupt the header i guess).
Any suggestions?
Thank You,
Michael
mjmimmm@hotmail.com
mjmimmm@hotmail.com
|
|
|
|
|
Graphedit could maybe do it but it can't ouput an mpeg file unless you have a 3rd-party MPEG
encoder filter.
Here's some online resources that may help.
The MPEG Home Page[^]
mpeg.org[^]
Mark
"If you can dodge a wrench, you can dodge a ball."
|
|
|
|
|
I have a an mpeg2 encoder.
How can i merge the current mpgs in directshow with graphedit for instance?
thnx,
Michael
mjmimmm@hotmail.com
|
|
|
|
|
Are you just looking for a tool to do it or are you writing a tool to do it?
Graphedit isn't a viseo editor - it's just for testing filter graphs.
Mark
"If you can dodge a wrench, you can dodge a ball."
|
|
|
|
|
I have 4-5 mpgs with video and sound.
I am writing a program that among other things needs to merge the mpgs into one long mpg and then add background music from a seperate .wav file.
I was thinking of doing this with directshow. I know that graphedit is only a tool . But a lot of times it is possible to use it to test different filters to see how it works out. Basically i need to do two things:
1. Merge the mpgs (which have video and sound).
2. Add background music (this is turning out to be the more complicated demand).
Any advice, guidelines, open source code that does these things?
(windows environment)
thank you,
Michael
mjmimmm@hotmail.com
|
|
|
|
|
|
First of all, I would like to say thank you for the reference, I had not even heard of this before.
It seems from a short glimpse that this would definitly work for my first problem. But I haven't been able to see how i could use this to solve my second problem (inserting\joining\merging\adding a wav to an mpeg file).
Thank You Very Much,
Michael
Mjmimmm@hotmail.com
|
|
|
|
|
Check out the "Introduction to..." link (first link on that page).
It seemed pretty close to what you're wanting to do:
"For example, suppose you wanted to create a video sequence consisting of 4 seconds from source
A, followed by 10 seconds from source B, and ending with 5 seconds from source C. You could
accomplish that much fairly easily using only the core DirectShow API.
But what if you decided that source C should come before source B, not after; that the sequence
should use 8 seconds from source A, not 4; and that the entire production needed a separate audio
track playing in the background? Even minor changes such as these could be difficult to
implement. But the scenario just described is a trivial editing project in DES—you can do it with
a handful of method calls."
You could do it by directly manipulating the filter graph and handling all the timestamp issues
but it could be a TASK!
Mark
"If you can dodge a wrench, you can dodge a ball."
|
|
|
|
|
Hey mark,
I'll check it out.. hopefully i won't ever bug u again.
Thank's alot, now there are no excuses left and i have to get to work...
Good weekend .
Michael
|
|
|
|
|
mjmim wrote: hopefully i won't ever bug u again
If it bothered me I wouldn't be here responding.
If you run into problems then definitely post questions here - that's what the site's for.
Good weekend to you as well, thanks!
Mark
"If you can dodge a wrench, you can dodge a ball."
|
|
|
|
|
Hey Mark,
I am looking into the DirectShow Editing Services and it seems quite interesting, I was already able to play an mpg file with it (after dividing its sound and video part according to the documentation!
One question though, I am reading about the "Writing a Project to a File".
Because eventually i am interested in having a mpg file in the end product.
How exactly is it supposed to work if i do not have a multiplexer codec file from a third party? How does microsoft do the muxing of the uncompressed audio and video data?
Thanks,
Michael
mjmimmm@hotmail.com
|
|
|
|
|
mjmim wrote: How exactly is it supposed to work if i do not have a multiplexer codec file from a third party?
It won't, unfortunately. I believe because of licensing, Microsoft provides no encoders for
MPEG-1,2,3. There is an encoder for MPEG-4 but the resulting file is wrapped in an ASF
(.wma, .wmv, etc.) format "container".
The only mux filter included is for AVI. The multiplexer for ASF format (which is actually part
of the Windows Media Format SDK) is built-in to the WM ASF Writer filter.
I guess I should have been more spcific in my first reply about what type of encoder you'd need.
If you have encoding code it may be fairly easy to develop your own filter. I've developed and
use a few custom filters but I've never done a mux/encode filter so I'm not sure what's involved.
I suppose if you have encoder code (or a library) that takes raw timestamped audio and video input
then it could be fairly easy.
Mark
"If you can dodge a wrench, you can dodge a ball."
|
|
|
|
|
Hey Mark,
I too have written quite a few transform filters. I have never written a multiplexer before, and certainly not a multiplexer for mpeg2. Do you have a direction to point me in for a open source multiplexing code or for a guideline as how to write such a thing? Do you have an estimate for how long it would take to write such a thing? thank you very much...
Michael
mjmimmm@hotmail.com
|
|
|
|
|
Michael,
I have no idea how much work it would be. I've never worked with MPEG.
Using DES, the render engine yields an uncompressed video stream and an uncompressed audio stream.
If I had code to take those streams and make an MPEG file then a filter could be made to do that
fairly easily. If I had to actually compress the data and build the file I wouldn't know where to
start.
Maybe these links will help for resources:
The MPEG Home Page[^]
MPEG Pointers and Resources[^]
Mark
"If you can dodge a wrench, you can dodge a ball."
|
|
|
|
|
I have found a commercial Mpeg-2 multiplexer
What type of Media subtype to i need to specify wheni set the output file?
Name of function: SetOutputFileName
They are many mpeg2 video subtypes.....
Do you know which one?
Thank you,
Michael
mjmimmm@hotmail.com
|
|
|
|
|
Hello everybody!
This is my first message. And first of all i would like to say sorry for my english (because i am ukrainian ).
Currently I developing some educational application. It is Solar Model (you can take a look here -- http://solarmodel.sourceforge.net/). It is free and open source.
So what do i need ?
I want to make step by step more realistic frame rendering in my application. Now it shows planets, main moons, sun, and background starts (static). I plaining to add:
1) Asteroid Belt (it is a ring of asteroids that orbits the Sun between Mars and Jupiter); so does any body have an ideas how can i implement that ? (real 3d models of even thousands asteroids -- bad idea ). any ideas and thoughs are welcome.
2) Our solar system has 4 planets that are gas giants, it is: Saturn, Jupiter, Uranus and Neptune. It is most bigest planets in Solar System. Now they renders as ordinar planet, but in real they should looks another way. (this is most hard to implement idea i guess, but if i here, i would like to ask this too... thanks);
3) Real Sun has fire at its surface. Fire effect is highly needed for me. Alot of games implements it. Does anybody know how they do this?
That is it for now.
If you steel reading -- Thank you
P.S.: it doesn't matter how you can give me ideas (i mean in OpenGL or DirectX terms) -- i can understand both.
|
|
|
|
|
|
There are many ways to do something similar to this. You can take a pre-rendered model and implement animated textures of flame off the sun. This gives you the quality of a raytrace, with precalculated values, and the speed of hardware textures.
Nebulas and gas giants can be done much the same way. Animated textures allow you the speed and flexibility to do many things. You can use raytrace images like povray http://www.geocities.com/ccolefax/galaxy.html[^] to generate images and then use them within the render system. Take a look at how Stellarium[^] does its rendering. Celestia as mentioned allows travel to other planets, where as Stellarium is trying to be your own private planetarium.
_________________________
Asu no koto o ieba, tenjo de nezumi ga warau.
Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
|
|
|
|
|
Can somebody please tell me how I can use the File Source (URL) filter as an input block in a Direct Show Filter Graph. As in, how do I assign the IP address and Port number of a remote sender. Actually I want to send an MPEG stream from a remote sender to my filter graph application to decode it ...
_______________________________________________________
Trying to make sense of it all ........
|
|
|
|
|
You'll need to specify a protocol in your URL to transfer the file data with.
I believe ftp and http are supported but that means you have to have an ftp or http server running
on the source machine.
If you have a mapped network drive then you could probably use a URL of the form
file://driveletter:\path\filename.ext
Otherwise you'll need your own filter that handles the streaming of the data.
Mark
"If you can dodge a wrench, you can dodge a ball."
|
|
|
|
|
Okay I could use a URL in the format u said for transferring data from a file. .... what if the data is coming LIVE in the form of byte arrays ? how can i pick that data and give it to my direct show application ??
|
|
|
|