This content has been marked as final. Show 8 replies
Well if you don't have an alpha channel then you don't need to Encode it. (I'm at work and didn't check the link, so I'm just talking off the top of my head here about general things.)
There are a couple of different kinds of stuttering. One is the buffer stutter -- where the internet connection isn't fast enough to provide data. As far as I know the only solution is to use a lower data rate or get everybody a fatter pipe!
The other kind of stutter is where the data has arrived at the user's computer, but the processor isn't able to decode and play it back smoothly. This is more common with older processors -- remember pretty much everything Flash does is in the CPU and video cards and extra VRAM won't make a difference.
In this case lower data rates could help, but there are several other things that can be done as well. Some of the following tips could be used to help with either type of stutter.
The first thing I would do is to change the FPS. Many people claim that Flash is totally able to handle 30 fps video, but it just isn't. On some machines maybe, but on some no way. I'm guessing that your original .MOV file was at 30 fps?
I suggest anywhere from 15 to 24, but the lowest value your content will let you get away with.
I'm not sure exactly how the CS3 encoder works, but is the video data rate the overall rate minus the audio? In that case a lot of the data is the audio data. Depending upon what kind of audio you might be using up too much of your bandwidth for the audio? Spoken word and a few simple sound effects can use much rates. I generally us about 20. Also if there isn't a vast difference in your left and right channels you really don't need the stereo. Will your users be listening with something that can really even reproduce a stereo seperation?
Also the size is kind of strange. Is this just a straight cropping or did you resize? What was your original size? Video usually has a 4:3 or 16:9 aspect ratio and this isn't either one of those. So if there is resizing going on (and not just straight cropping) using a strange ratio like that can cause the quality to degrade and forcing a higher bit rate to get results.
Finally, if this is serious work, I would recommend getting a dedicated FLV encoder like Sorenson Squeeze for Flash (pro or not depending upon your need.) It gives you a lot more control over the encoding process and allows you to create higher quality at lower bit rates.
Wow - thanks for the info, Rothrock. I am using an alpha because we green screened a person walking in and talking. I have a Flash movie that is 800x600 (a web page) and I cropped the video to the amount to cover his walking in and hand movements, etc. The video was at 30 fps and I kept the Flash at that, but I will try it at lower fps. I think the stuttering that my client experienced has to do with his processor more so than bandwidth and streaming, but I might be wrong. Thing is, he says he watches other video with no problem - usually on YouTube, but on at least one other Flash site as well. I will try 15 fps and see what happens - I thought that would make it too jumpy or low quality looking. It's just a guy standing there talking - no music either, so I will bring it down to mono - didn't think of that. I will check out Sorenson Squeeze too. Thanks for the advice, I will post what happens.
Here is an interesting article on Adobe.com about video encoding. Hits on a lot of what Rothrock mentioned.
By the way, I imported the movie again, this time at 15 fps and put audio at 64 mono. Not much quality difference, which surprised me. I will find out how playback changes for my client. No noticeable difference in download time or playback for me. It wasn't bad to start with, but still takes too long for the thing to start playing and it still had a buffer stutter in the middle to wait for downloading - I'm on a slower DSL connection (800k). The FLV size decreased only slightly from 17 MB to 16 MB - that surprised me too - thought I'd get a bigger decrease. Just read in that article that you should probably be at about 300 quality for video, combined with the audio shouldn't be more than 400. I left it at 400 and had audio at 64, so I need to adjust and try that. I'll post results.
Ah the green screen explains the alpha and the cropping. I just wanted to be sure that you weren't just doing those cause you thought you needed to.
If you kept the overall data rate the same, then the file should be about the same size. The data rate (oddly enough) is the rate at which the data comes along. So whether the video is 1 or 60 fps if it is 400 kbps then a 1 second video is going to have (more or less) 400 k! The difference is how many frames that amount of date will be divided over. So, in theory at least, a video with the same bit rate, but a lower frame rate (within reason) will appear to be higher because fewer frames are sharing the same amount of data.
For a client I presented a video encoded with the same data rate at 15 fps and 24 fps and the two reviewers both liked the quality of 15 better. The video was basically "talking heads" so the lower frame rate didn't really make anything look choppy. For much motion you might want to think more along the lines of 20 perhaps.
Since you mention you are doing this for a client I might recommend looking into Squeeze, especially if you have many clients that you think you will be doing video work for in the future.
A total of 300 is pretty good for folks over decent lines, but with a dedicated compressor you can get 2-pass variable bit rate video which will really make it easy to get great quality with lower data rates. With the pixel dimensions you mentions I wouldn't be surprised if you could go down to a total rate of 200 or perhaps lower!
Thanks. That's very helpful. Just checked out Squeeze. Looks great, but a hefty price tag. I don't do a lot of video, but I want to be professional with this. I have Cleaner 6 but it doesn't have FLV output settings (though I thought at one point Flash 8 Pro installed some of those settings). Can I just buy Squeeze for Flash Pro ($299) or do I need to get Squeeze 5 for Mac ($799)?
The last settings I used were video quality at 300 and audio at 48 mono. It's posted here (in case anyone wants to view and give feedback on how it plays):
Thanks again for your advice Rothrock!
If you only need to make videos for Flash then you only need Flash Pro. If you plan to make videos for DVD playback and other delivery methods you would need the full version. I think you can download a trial. It will watermark your video, but you can compare the difference for the most part.
BTW, that looks great and plays back well on my machine. I'm sure you know this, but you might want to not use the FLVPlayback component. It has some overhead and adds to the file size of your swf.
Instead look into using the NetStream and net connection classes -- unless you want your users to have access to the rewind, pause, volume, etc.! (If you do continue to use the FLVPlayback you might want to not have some of those controls available -- or maybe you do.)
Thanks. I'm downloading the trial of Squeeze for Flash Pro now. We'll see if it makes a difference. My skills in flash have dropped off because I've been too busy with HTML sites, so the NetStream stuff seems so overly complicated for what I want to do and the FLVPlayback seemed so simple that I went that route. Maybe I should bite the bullet get familiar with the code for that. (As an aside: It just seems that there is a ton of code to do almost anything in Flash. I used to do a lot of Director a long time ago and it did so much with so little effort. I know Flash is more open and you can do some great stuff with it, but man, a lot of seemingly simple things take a ton of coding when you'd think it would be a drag and drop object by now. But I digress.)
Well the components are pretty much drag and drop. But they do add a lot of size -- especially when you are integrating the video and probably don't need the playback chrome.
The code for simply playing back a video is pretty easy. Put a video instance on the stage and call it "myPlayer" and put this code on the frame.
var nc:NetConnection=new NetConnection();
var ns:NetStream=new NetStream(nc);
That is it.You'll probably want a bit more, but that is the basic stuff. As for director I couldn't never get it to do anything because it was all so arcane and nothing made any sense at all.