What version of Indy use you?
Main Topics
Browse All TopicsOk, you've looked at and maybe even answered parts 1 and 2 of this, maybe posted a comment, maybe even collected the points. Now, on to part 3. I'm still interested in parts 1 and 2, and will award the points even if this part is answered first; I only say that because if somebody answers this part well, I won't need parts 1 and 2.
You can see Parts 1 and 2 here :
http://www.experts-exchang
http://www.experts-exchang
I recommend you read at least the first part of part 1, so you're familiar with what I'm doing and what I'm trying to accomplish.
That said, if DSPack and/or TASFWriter aren't up your alley, that's fine by me because I'd like to get away from TASFWriter anyway, and this part can be answered (I imagine) without any real knowledge of TASFWriter or DSPack.
As with the other two parts, this question is worth 1000 points. I'll provide the other 500 points in another question once this one is answered.
Ok, so I've mentioned I have a webcam app in development, that I want to add streaming capabilities to it, and that I've been trying to use TASFWriter to accomplish that. Even if parts 1 and 2 are answered to my satisfaction, I still have a problem. I don't want viewers of the webcam to have to use windows media player to view the webcam.
What I'd like to do is make streaming available, via mpeg, divx, or whatever other codecs I (or the user) may have available. Now, as you should be aware if you checked out my app, it has a built-in HTTP server. What I'd like to do is provide via a java applet, or javascript, a way for them to view the stream inside IE. The following framework outlines this, it's pretty basic, I'm going to describe it just for clarity.
1) user connects to the internal HTTP server, which already maintains a list of available cams and handles viewing them.
2) user clicks on the "stream" URL for a cam, which directs them to another URL on the internal HTTP server.
3) the internal http server serves up the java/javascript applet, which will connect back to the server machine on a different port to get view the stream.
This is what I've no clue about -- how to create this stream. What I have available is the standard filtergraph I've built using DSPack, a buffer that holds the most recently captured bitmap via a samplegrabber in the graph, and a jpeg compressed version of that bitmap. I currently capture at a rate of 1FPS, but I can of course do this faster if your implementation requires it.
What I'm looking for is twofold.
1) Generate the stream to serve to the client. This stream needs to be compressed. By a 3rd party component if that's what you're comfortable with, by an installed windows codec if you know how to do this would be best.
2) The java/javascript code I'll need to serve to the client that connects to the custom port on the webcam app/server to view the stream. I'll post a link to this Q in the java and javascript areas since I realize this isn't the best place for this. I'm asking here because I'm also willing to accept a lightweight delphi client instead of java/javascript, as long as the code works fine as an ActiveX component. I'd like to avoid the ActiveX route if possible because people, like myself, are leery of downloading an unsigned ActiveX control, or even a signed one that still pops up with security warnings; Also, this is fairly hard on the app user. I can serve the component via the internal HTTP server, but the user will still get security warnings in IE.
As an example of what I'd like to see.. delphi code to take a series of bitmaps and convert them into an mpeg (mjpeg, divx, heck even avi or asf) stream. Generate an event every so often, say once a second, to tell me that a buffer of that length is ready to be sent. I'll grab the buffer and send it over the socket to all connected clients.
On the java side, all it needs to do is be able to correctly interpret and display this stream. It shouldn't send anything, it's a one-sided affair. The java client connects and immediately starts to receive the stream it is to display. A minimal protocol will be required just to make sure the client knows the format of the stream, but I leave that detail to those of you who thing you want a shake at the points. :)
I'll provide 1000 points each for these two parts, provided they work together. ;) This means if one of you comes up with the delphi/sending side and somebody else comes up with the java/client side, you'll get 1k points each. If one enterprising and skilled individual comes up with a solution that implements both sides, I'll throw you the full 2k.
Answers that help me get there on my own but don't implement the full thing will get some points at my discretion, but I'd really like to see both sides from one person, just so I don't have to worry about any collaboration between coders; especially with regard to picking somebody to blame if the two parts don't communicate properly with one another. ;) I'm a coder myself, not a manager, and I don't want to be one. If you can work it out between yourselves, by all means, collaborate away.
I hope that covers everything.. if not, feel free to ask away.
This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.
Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.
If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.
Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.
Access the answers to your technology questions today.
30-day free trial. Register in 60 seconds.
Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Try it out and discover for yourself.
30-day free trial. Register in 60 seconds.
Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.
Thanks Lee. I'll check it out today or tomorrow. Had a bit of a meltdown on monday that kept me without a machine until last night.
The bad news is I'm running the same psu/mobo right now after I did some hardware hacking to get it working. The good news is Tyan has agreed to RMA the motherboard, no questions asked, which I didn't expect.
You can spend some idle time looking at the pictures here. ;)
http://asym.macroshell.com
http://asym.macroshell.com
http://asym.macroshell.com
Hi, it's me again, just had a quick look at this question as well, and was just wondering if i was missing something??
If you take the solution we created in part 1 it creates a stream on port 3333 of the localhost by default.. Then you can embed standard MS Media player in a html file to view that stream. So what other functionality is it you are looking for.. I included some html to embed the control below, just in case :-)
Let me know,
Regards,
Dj
<snip>
<HTML>
<HEAD>
<TITLE>Embedded Windows Media Player 6.4 Control</TITLE>
</HEAD>
<BODY>
<OBJECT ID="MediaPlayer" WIDTH=320 HEIGHT=240
CLASSID="CLSID:22D6f312-B0
STANDBY="Loading Windows Media Player components..."
TYPE="application/x-oleobj
CODEBASE=
"http://activex.microsoft.
<PARAM name="autoStart" value="True">
<PARAM name="filename" value="http://localhost:33
<EMBED TYPE="application/x-mplaye
SRC="http://localhost:3333
NAME="MediaPlayer"
WIDTH=320
HEIGHT=240>
</EMBED>
</OBJECT>
</BODY>
</HTML>
</snip>
Well I want to get away from using WMP if I can, that's the point of this question..
Parts 1 and 2 are for getting that going, but it's limited to windows clients with WMP 9 or newer being able to view the webcam; more restrictive than I'd like to be.
If I can get the profiles (part 2) going right, then I can dumb it down to V7 and I'd be ok with that.. one or the other, so I'll keep this in mind and an answer if we can get part 2 going. ;)
Ok Lee, I gave the demo (just the bins) a shot.. they're showing the proper resolution, but a blank image. Occasionally when I choose a codec the "server" side says "bad format"; It always seems to generate an exception when I close it.
I'll check out the source and see if I can figure out what's going on, but one question. Does this require the viewer to have the client application on their end?
Ideally I'd like something that can be viewed in a webpage..
Right, I was guessing that much.. I didn't have a chance to look at the source yet, any idea what could be causing that? I can't seem to find a combination that works properly..
ActiveX would work but I'm really hoping for another solution.. That's going to involve all kinds of "security warning" garbage and what not, and once again limits me to Windows + IE only.. if I'm limited to that combination, the ASF solution works just as well. ;)
asymmetric:
This old question needs to be finalized -- accept an answer, split points, or get a refund. For information on your options, please click here-> http:/help/closing.jsp#1
EXPERTS:
Post your closing recommendations! No comment means you don't care.
Rietbergdj
Sorry about the (loooooooooooooooong) delay here. I've been off doing all kinds of crazy things, and my development on this project had dwindled away to nothing. I revived it yesterday, bascially rewriting from scratch, and came here to look at questions I'd asked to see If I'd posted any code snippets for things I'd worked around/fixed in my old questions, as I had one of my drives fail; I thought I had but so far, no luck.
Anyway I didn't even realize I still had questions open.
I'm awarding you the 500 points here, as your suggestion of streaming (sticking with ASF) and embedding a media player in the webpage is exactly what I did.
I'm not awarding the other 500 anywhere as what I set out to do (Initial post for this Q) was to get *away* from using media player in any form; I wanted the stream to be cross-platform playable, not limited to windows clients, but it looks like that was too much to ask from some unpaid volunteers.. ;)
Cya 'round the forums.
-asym
Business Accounts
Answer for Membership
by: Lee_NoverPosted on 2003-05-04 at 04:57:53ID: 8454598
check out my VideoCoDec demo and VoIP demo ;) /isapi/pas 2html.dll/ pas2html?F ile=/ delph i/projects /VideoCoDe cDemo/ /VideoCoDe cDemoBin.z ip /VideoCoDe cDemoSrc.z ip
/isapi/pas 2html.dll/ pas2html?F ile=/ delph i/projects /VoIP /VoIP.zip /VoIP_src. zip
VideoCoDec:
http://leenover.dyndns.org
alternate:
http://files.delphi-si.com
http://files.delphi-si.com
VoIP:
http://leenover.dyndns.org
alternate:
http://files.delphi-si.com
http://files.delphi-si.com
all the needed 3rd party components are in the 3rd party dirs
for Video I use DSPack and my VideoCoDec class
for Audio the ACM Components from peter morris
the transport is done with Indy UDP compos but can simply be remade to use TCP
you'll be mostly interested in the VideoCoDec demo
to get sound from there just add another sample grabber and set it's format
then use the code from VoIP to do the compression ;)
have fun