Solved

Streaming WMV files from an EXE

Posted on 2006-06-12
10
330 Views
Last Modified: 2010-04-05
Hi,

I have a series of WMV files that I want to be able to show as set of random animations for training purposes.  I don't want the end user getting access to the WMV files as they are my IP and took a long time to compile.

I'd really like to create an EXE with them embedded and have them play that way, without, at any time, the raw files being accessible to the end user.

I can get MPG and AVI to stream from an EXE, although the MPG is very jerky.  AVI is fine, but I can't get the compression I want easily from the CINEPAK codec.

So, I have one problem and two options I am exploring:

1. I really want to stream the WMV files from the EXE.  Is this possible?  Do I have to buy a component for this?

2. If I have to stream an AVI, what codec should I use?  DivX?  Can you embed the DivX codec into your code in case the end user PC doesn't have it installed?

I'd really appreciate any help!

- The target platform is XP
- I'm currently using D7 (old, I know!)

Looking forward to some discussion on this!

Thanks,
Chrism
0
Comment
Question by:Chrism
  • 2
  • 2
  • 2
  • +2
10 Comments
 
LVL 28

Expert Comment

by:2266180
ID: 16884743
Hi Chrism,

I have researched this issue and got to the conclusion that it's not doable unless you write your own wmv parser using the sdk. There migth be otehr alternatives as well, but AFAIK, none is imlementable in an easy/less easy way.

However, I can tell you that using directshow, you cna embed mostly any video format (except wmf, wmv).

You can try going the MCI way, and thus support win9x along with XP (in this case only avi files can be streamed) or using DS way, in which case most vide/audio formats can be streamed.
I have a made a demo a while back for someone here: http://www.ciuly.com/delphi/multimedia/
I will start investigatin wmv issue more deeply in a few months and I'll update that page when I find something. until then, I guess I'll just watch this page, maybe someone knows better than me :)
0
 
LVL 14

Expert Comment

by:DragonSlayer
ID: 16949189
Just a suggestion, is it possible to encrypt everything into a single file system (e.g. http://www.aidaim.com/products/sfs/sfs_spec.php) and use normal filestreams to access it?
0
 
LVL 2

Author Comment

by:Chrism
ID: 17982236
Hi cwwkie,

While I appreciate ciuly's comment, it didn't answer the question.  In the end, I have written my own WMV streaming application from Delphi.  It was challenging, but is now done.

Thanks,
Chrism
0
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 
LVL 28

Expert Comment

by:2266180
ID: 17987036
just a though, from what I know (!), you probably used the wm sdk (or some translated header from it) to write either a full wmv parser or some pseudo-parser based on some demo from the sdk in order to make that streaming app. at least this was my line of research a while ago.

of course, I won't be the only one to say that the community would appreciate some information/tips in this direction. I know I personally spent weeks on this issue without getting anywhere too far with it. (some pieces of code from the more trickier parts would be even better)

and then we can say that a paq and refund will be better ;)

thanks
0
 
LVL 14

Expert Comment

by:cwwkie
ID: 17990938
>> While I appreciate ciuly's comment, it didn't answer the question.  In the end, I have written
>> my own WMV streaming application from Delphi.  It was challenging, but is now done.

ciuly's comment looked the best answer, and because you did not responded before, I had to asume you were "happy" with the answer.

But if you tell what exactly you have done to implement this, I'll change my recommendation to paq/refund.
0
 
LVL 2

Author Comment

by:Chrism
ID: 17991045
We have created a local server, written a custom interface for WMP and been able to stream the WMV files locally, reducing impact and overhead on local resources.

As you can see, the comment includes the lines "I have researched this issue and got to the conclusion that it's not doable unless you write your own wmv parser using the sdk." and "I will start investigatin wmv issue more deeply in a few months and I'll update that page when I find something.".  

Both statements are appreciated but certainly cannot qualify as an answer to the question "I really want to stream the WMV files from the EXE.  Is this possible?  Do I have to buy a component for this?"

The sample provided showed me how to stream other file formats, but you'll note in my original question, I could already do that and it wasn't operationally satisfactory as a solution.

Thanks,
Chris
0
 
LVL 14

Expert Comment

by:cwwkie
ID: 17998769
>> Both statements are appreciated but certainly cannot qualify as an answer

The comment from ciuly was more or less "it is not possible to do that", that is not an answer you were looking for, but it is an answer. Only if someone proves it is possible, then it is clear the answer is wrong. Now you have, although one line is a little bit short, but I understand what you mean. I'll change my recommendation.
0
 
LVL 1

Accepted Solution

by:
Computer101 earned 0 total points
ID: 18005654
PAQed with points refunded (500)

Computer101
EE Admin
0

Featured Post

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

A lot of questions regard threads in Delphi.   One of the more specific questions is how to show progress of the thread.   Updating a progressbar from inside a thread is a mistake. A solution to this would be to send a synchronized message to the…
Creating an auto free TStringList The TStringList is a basic and frequently used object in Delphi. On many occasions, you may want to create a temporary list, process some items in the list and be done with the list. In such cases, you have to…
Two types of users will appreciate AOMEI Backupper Pro: 1 - Those with PCIe drives (and haven't found cloning software that works on them). 2 - Those who want a fast clone of their boot drive (no re-boots needed) and it can clone your drive wh…
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question