I should use Mpeg-4, and use Apple Quicktime for the conversion. It's very cheap and easy to buy, and it works.
Ooops, I don't think Quicktime supports WMV! Sorry! It supports almost everything else.
[edited by: Matt_Probert at 2:56 pm (utc) on Sep. 21, 2007]
I have started looking at swfobject.js for embedding .flv files found at [blog.deconcept.com...]
Seems to be working pretty well so far. It uses a small "movie.swf" file to stream the .flv file.
I have a .flv converter not sure if it can be scripted or told to do a folder at a time.
|Ooops, I don't think Quicktime supports WMV! Sorry! It supports almost everything else |
QuickTime on Macs can use Flip4Mac to export WMV to other formats, including FLV if you have Flash software.
There are many FLV converters available for Windows but I have never used any of them.
VLC is a useful cross-platform tool, but I'm not sure if it exports directly to FLV yet.
Note that to deliver FLV on the web you will need Flash authoring software anyway to create an SWF file.
Transcoding video can sometimes produce synchronisation problems or loss of audio - good luck.
There are plenty of tools to do these conversions. Unfortunately, they aren't going to give you professional results.
If you want it to look good, always go back to the source (whatever the video was originally shot on) for each conversion. And use a high-quality, lossless source.
Converting from one lossy-compression format to another is almost always going to result is a poorer quality.
|If you want it to look good, always go back to the source. |
Okay, from the source, what would be the best option for me to choose? Should I be considering .flv with a custom Flash player interface? What should I do?
|Okay, from the source, what would be the best option for me to choose? Should I be considering .flv |
The source - what format was it originally recorded in?
Do you possess the source?
If it was recorded on VHS tape, the source is VHS tape, for example.
If it is a computer animation, the source might be a series of still TIFF images.
The highest-quality source accessible to most of us is probably DV. There are now plenty of reasonably-priced DV cameras available to consumers. Yes, DV is a lossy format, but (1) one that was designed to be edited and (2) it's the best format available from the camera. Can't get better than that in any case. If you have DV content, don't muck it up by converting, say, to MPEG before editing! Edit in DV, or some other format that can be converted losslessly from DV, then convert after editing.
Always start with the source, and convert from there. Don't convert a conversion, unless it is in a lossless format. It's OK to convert to some intermediate format first, as long as converting to that format is lossless, or minimally lossy. You might do some post-processing in the process - for example, to clean-up noise on the aforementioned VHS tape. It would make sense then to work with the processed version for editing.
But you're never going to get more information out of the content than was originally recorded. Once you convert to a lossy format (or, at least one that isn't capable of exactly reproducing the original) you are going to lose detail.
There are some specific cases where one lossy format can be converted to another with no loss, or some transforms can be done in a lossy format with no loss. But, these are generally far and few between.
(Example: with the right software a still JPEG image can be rotated 90 degrees with no loss. JPEG was designed to make this possible. Most image-rotating software, though, decompresses the image, rotates it, and re-compresses it - with loss.)
Any time you edit a lossy format, the editor is actually doing the latter. It decompresses images from the input format (in most cases today, having to create frames that aren't even there, since lossy video compression algorithms depend on intra-frame compression) you do your editing, and then it re-compresses. So, you have loss even if you stay in the same format.
(There are exceptions - if you are just doing simple cut-point editing, the editor may leave the parts before and after the cut intact. You will have a few frames with degraded quality around the cut.)
Especially if you are doing any compositing, effects, fade, adding text, etc. the editor will have to decompress and re-compress.
There's way too much willy-nilly converting from one lossy format to another going on. There's a reason YouTube videos are only 320x240, and aren't going to get bigger any time soon if ever. For the service to be practical, they have to be able to convert from whatever format users throw at them. But it's hardly quality video.
If you don't care about image quality, I guess none of this applies, though. There's plenty of software out there that will give you enough rope to hang yourself.
|Let's say that I have 500+ 2 hour videos that are currently in .wmv format and being streamed daily. |
My understanding this would mean smaller sized maybe similar to the Youtube 320x240. If they are streaming then it would most likely be compressed fairly heavily so quality may not be a significant factor.
|Always start with the source, and convert from there. |
I would say the most reasonable "source" is the final edited version of the video. You don't need to edit the video again. If you have an original edited version in a higher quality format than the current .wmv file then yes you should use it to create the new .flv or other chosen file format. If the .flv converter does not support the "source" format then dump it to a higher quality .wmv and then convert.
|If you have an original edited version in a higher quality format than the current .wmv file then yes you should use it to create the new .flv or other chosen file format. |
Yes, I have the original edited versions, that is what was used to convert to .wmv. If I backtrack to the original edited versions, would my best choice be to convert to .flv? What other options do I have besides .flv? Again, I'm looking for the best option for cross platform compatibility.
Also, what should I be planning for on the front end to replace the embedded Windows Media Player?
|What other options do I have besides .flv? Again, I'm looking for the best option for cross platform compatibility. |
If you want cross-platform compatibility, .flv would have to be your first choice. Flash has now surpassed even Java in reach. Adobe claims that 97% of desktop users have Flash installed.
I really don't think there is another choice. There are some players for various formats written in Java. But the load time for the applets puts off users.
Next after that is WMV, and that's where you are now..
The choice of codec, though, is difficult right now. .flv is a container format - it can contain content encoded with different codecs. And this will be an ongoing issue with Flash, as they seem to support one more latest greatest gotta-have codec with each release. You need to make sure to look at the statistics for % of users with each version of Flash installed. Flash 8 and 9 is far from universally-installed at this point.
Sorensen Spark (based on H.263) is available in Flash 6-9.
On2 True Motion VP6 is available in Flash 8-9, and is much superior.
I believe Adobe has announced they will be supporting a codec based on H.264 in the future. Apparently this is supported in recent beta releases.
I would go with Spark for now, and be prepared to support the new H.264 codec in the future. Or you could provide both Spark and VP6, and plan to add the new codec later. Given the superior characteristics of H.264 along with it's projected future popularity, you might just skip over VP6. I don't think VP6 is going to get much uptake with publishers, with H.264 announced.
|Also, what should I be planning for on the front end to replace the embedded Windows Media Player? |
If you go with .flv, there are a number of royalty-free and commercial player applets available. The Wikipedia Page on "Flash Video" lists quite a few of them.
Now do you see why I want you to "use the source"? You're probably going to re-encoding those 200 videos several times in the future. I don't expect the forward march of codecs to stop.
You'd put yourself in an ironic position converting from one highly-compressed lossy web-oriented format to another is that you are going to wind up doing it several times - copy of a copy of a copy of a copy.
The irony is that each codec is better than the previous one, but your video quality is going to degrade with each conversion.
Which brings us to:
|If you have an original edited version in a higher quality format than the current .wmv file then yes you should use it to create the new .flv or other chosen file format |
I'd say use the best edited format you have and convert from there. And hopefully you choose a good edited format. High-end editors generally have a proprietary format that is as close to lossless as possible while being practical about disk space.
It's not *quite* true that you won't have degradation in a conversion as long as the input format is higher quality than the output format. For this to be true, the input format really has to be quite a bit better than the output format. And there are many factors related to specific codec characteristics.
For example, any format that uses P frames is really unsuitable for editing. Yes, consumers edit MPEG. I suppose it's fine for movies of your kids and dog. A good editor will at least give you the option to not use P frames (use only I frames, which stand alone) in the MPEG output. (P frames are frames present in the input that DO NOT EXIST in the output. The player has to predict the content of these frames based on nearby frames. )
Thank you jtara! That answered quite a few of my questions and seems like a pretty solid set of instructions.
Now the flip side. Its been almost two years in the making getting those videos converted to .wmv. Now we get to go back and start the process all over again. :)
Why the change? After viewing visitor metrics over a 6 month period, we have a high percentage of Mac users (Educational) that are having issues viewing the streams.
One word: YouTube.
Really? 500 two (02) hour educational videos to YouTube? Talk to me jtara...
Sorry, I misunderstood your comment "why the change?".
I thought you were asking why the preferred Internet video format has changed to .flv.
You mention Flash versions, how far back do we realistically have to go in terms of support? Are there many users left with only version 6?
IMO - Flash seems to be "it" these days.
You could look into something like Sothink Video Encoder for Adobe Flash to convert the data, (I haven't used it, just read about it).
If you do decide to go the Flash route, you'd want to check out the Adobe / Macromedia Flash Server software to host it yourself, or check out the various FVSS hosted solutions.
1000 hours of video is going to be a bear to convert no matter what -- maybe you can write a batch file or script and go away for a week or so...<grin>.
My personal opinion is FLV format is definitely the way to go. One thing you have to understand that hasn't been mentioned is that the Flash FLV format can be delivered via two separate methods.
The first, Progressive Download, can be achieved by using a simple swf file and embed the flv inside. This is a great little option for small video's that don't necessarily need to be streamed. As it sounds the files are actually progressively downloaded to the users machine and appears to stream. This of course being successful depends on the users machine and network connection speed.
The second and probably what you will need is an actual Streamed FLV via Flash's NetConnection method. You will need either Flash Communication Server to serve the FLV this way for a true stream or you can look into Red5 (open source communication server - or flash server). Using this method you can set buffer times, etc.
I would post the link but don't want to get nailed for trying to promote a product on the forum so just Google Red5.
Good luck on the massive conversion you have in front of you.
|You mention Flash versions, how far back do we realistically have to go in terms of support? |
I would go as far back as possible. If it's just video with no actionscrip involved, then why place any unneccesary barriers? Adobe keeps a table online for market penetration of various version of Flash - good through Sep 2007 right now:
i think y're looking for ffmpeg (not sur i can post a link, so just google it)
it's an open source library that can transcrode pretty much any video format into another (including extensive output configuration like cropping, resizing, re-sampling, extracting thumbnails....)
it is in use in many web video services and has even a handy php extension (ffmpeg-php) so that you can programmatically manipulate your videos right from php
works on linux, windows and MacOs
For direct download via link:
1. MPEG1 , this will play on practically any OS out of the box. Downside is it requires 4x to 5x the filesize for comparable quality for files using codecs like wmv or divx.
2. WMV , this will play on any windows machine, even the 9.X codecs are compatible back to something like windows player 6.4. so technically you can get it to play on Win95 but chances are a win95 machine isn't going to have the CPU required to display anything with larger resolutions.
For embedding in a page:
1. Flash, don't use it myself but it appears to be the way to go as it removes many of the cross browser and cross OS problems, try embedding a WMV with valid markup... just about impossible. The only downside is they need the plug-in but that appears to be less and less an issue.
2. WMV, again this is compatible with all windows machines and can be made to work on some other OS's.
|Converting from one lossy-compression format to another is almost always going to result is a poorer quality. |
Any reencoding of video will result in the loss of quality however the loss is minimal when working with certain formats. DV was mentioned by another poster and this can be re-compressed numerous times into a another DV stream with negligible loss in quality because it uses a very light compression method and each frame is individually stored. You may ask why you would want to do this? If for example you adjust the brightness, hue or add some filters that affect every frame this requires the entire length of the video be re-compressed. In instances where you are just adding transitions any decent editor will only re-compress frames where such changes have occurred. DV has a standard bitrate and resolution so one DV stream will have the identical properties of another, the only place they may differ is whether they are NTSC or PAL which use different resolution and framerates.
This can also be done with MPEG using the appropriate software and settings under the right circumstances. Ulead Video Studio, Womble or for simple cutting there's tool called cuttermaran that is free. These will only re-encode the necessary frames such as where you have made changes like transitions. One thing to be aware of is the properties of any clips you wish to join must exactly match to do this, i.e. resolution, bitrate, etc. If you're working with material from the same device this is quite easy to do.
As far as tools for doing this with WMV or Divx I'm not aware of any but I'm sure they exist. I've never had the reason to research them so I really don't know.
Ideally you want to use a high quality source like DV, either export as DV from an editor to import into the encoder or if your editor supports it encode directly to the desired format. If you need multiple formats or the same format with different properties always go back to your DV file as a source or whatever you have as the most original source. To maintain quality you should do as little as possible to video, minor filtering aside for restoration work you can only make it worse each time you do anything to it.
For what it's worth there are plenty of embedded devices where Flash support is limited to Flash7 currently - probably the biggest example of this is Opera on the Nintendo Wii. Time to go back to your stats to see if this is worth supporting. Storage space allowing, you could feasibly store multiple copies of the same video encoded with different codecs. I've no idea, but I assume you could do some capability checking and download the best quality video the played has support for?