This forum software has now been archived into static HTML page (i.e. it does not function as a working forum anymore, so you cannot login.)

In due course a new forum will be available to help support newer CamStudio versions.

Sorry for the inconvenience and thank you for your patience.

Need better understanding of codecs

edited August 2008 in General Discussion
I'm a long-time developer but I am relatively new to A/V recording. I think of a codec as a driver that sits between a capture device and the target file. If the codec supports some feature like a certain fps setting then that's translated to the file. But I don't understand how closely that relates to the codec that viewers need to see the file. I look at that like compression where there are a ton of options like zip, rar, etc, and image types like gif, jpeg, png, etc. - and we all know that the application that opens these files needs to use the same format as the app used to create them.

What I don't understand is how universal some of these codecs are. My first attempt at using the CS codec resulted in a "write-only" file because the target system didn't have the CS codec. Unlike FLV, AVI, WMV and other file types, I think it's asking a bit much to ask people to install the CS codec to view files. So I see this codec as only being used to create material that will be consumed by people you know.

DivX and Xvid are very popular among people who create vids, but I'm not sure how universal they are among typical user/consumers. I don't want to have to tell people to download the DivX codec (run the installer, don't install the player, and ignore the offer to install a browser toolbar...). I can edit files created in CS using Windows Movie Maker. That creates a WMV which is fairly universal for Windows users anyway, but with this I'm concerned about file size and quality.

Then there is the concept of whether people need to do full downloads of vids vs being able to get streaming video. My shared host offers a converter to create an FLV file from AVI, MOV, MPEG or MPG. And they offer Quicktime streaming too. But do people need a media player that supports streaming to play an FLV vs downloading the whole thing and playing from disk?

Finally, since I'm concerned about quality, I'm not sure how various video codecs relate to the audio codec options available. CS offers a variety of settings for KHz and bits, but not all of them are valid with various video codecs (that I can see). Because we may want to do conversion of video formats. My preference might be to record audio and video in separate applications simultaneously, then sync them later. Not only would this avoid the a/v getting out of sync but it should produce smaller files that can be more easily manipulated in other apps for editing. So as long as the viewer has a codec to play the mixed a/v, why does it matter that a specific codec suports a certain type of audio compression for recording?

I'm sure I will have more questions after this. My real goal is to work out some info here that can help all of us to choose the right codecs for our various needs. Thanks!

Comments

  • Hey Starbuck

    Quite a few questions there, but I'll try to answer them as best as I can with my limited knowledge.

    The answers to your questions really depend on how you want to distribute your content.

    Streaming technology came about so people on dial-up could have half a chance of watch video online in "real-time" - now it's used more for convenience, so people don't have to download files and wait to play them on their machine.

    If you want to make your content available to the widest possible audience, use FLV, since 99% of all browsers have the Flash plug-in already installed.

    Video footage compressed with FLV doesn't produce the best results, but that's the trade-off to get your stuff in front of as many people as possible, although things are getting better, with the latest version of Flash now supporting High-Def.

    If you want to people to download your stuff and your audience aren't technically literate, go with WMVs because that's the easiest thing for them to view, since Windows Media Player is on 90% of all desktops and Mac users can get it for their machines as well - so that's 99% of the market covered.

    If you intend to deviate from the above, because you want better quality results or your audience are more tech-savvy, then resign yourself to having to tell your audience to download a particular codec/piece of software to play the content.

    Sorry, but there's no way around it.

    Here are the settings I use with CamStudio when recording my desktop that give me the best results:

    Video Codec: CamStudio Lossless Codec
    Quality: 60%
    Keyframes: Every 30 frames

    Capture Frames: Every 50 milliseconds
    Playback Rate: 20 frames/second

    Audio Codec: PCM (no compression) *
    44100Hz, 16KBit, Mono

    MCI Recording (selected - helps to eliminate a/v desync)

    * If I'm going to be creating Flash video using CamStudio, I get the best audio results using PCM as the source.

    If I'm going to upload to somewhere like YouTube or Google Video, I switch the video codec to XViD or DivX as not all video sites recognize the CamStudio Lossless codec (like MSN) and then import the video into VirtualDub to rework the audio into MP3 and then save as a new AVI ready for uploading. It's fiddly, but it works.

    If you intending to record actual video footage, then DivX, XViD, H.264 or a similar MPEG4-type codec is better.

    Ideally when recording your desktop, you're better off using a Lossless Codec, like CamStudio's, Techsmith's TSCC or MSUs.

    Desktop videos recorded using MPEG4 codecs won't look as crisp as videos recorded using Lossless codecs, but unfortunately, not every video hosting site support the lossless codecs listed above.

    I hope that helps a bit.

    Cheers

    Nick :o)
  • Thanks for the note. I'm still confused but on the path to learning. Can anyone point to some decent documents on these topics so that I can educate myself rather than taking up your time with my newbishness?

    Here are a couple recent points of confusion:

    - I've tried the DivX codec and CamStudio says it can't be used and suggests using a default. How can I debug this to find out why I can't encode with DivX? Again, I'm a developer ( though not a C guy ) and will be happy to try to run some debug code here if it will help.

    - I've also tried MSU. CamStudio Player shows a very artistic display of color splashes, but not the vid. Windows Media player shows the vid.

    - Cam Studio Lossless codec obviously works but the original AVI size is twice as big as MSU. (And I'm not even recording audio in these tests.)

    So on my system there are various permutations that may or may not work. I would be happy to record a larger file if I could later compress it for a general audience. Is this where virtual dub and similar apps comes in?

    And then there is the question about scaling. I set my monitor to 1024x768 and for one vid I'd like to record a powerpoint presentation to show how to use a program I wrote. Unless the end-user is viewing this in full-screen mode at 1024x768, the display is pixelated. I don't want to record at 800x600 because the quality of the source is going to be low. Is there a preferred method to record a 1024x768 screen so that when it's displayed back it can be resized without destroying the quality? It looks like the SWF created from CS does this pretty well. But as you mentioned, Flash ( and it's tremendously small file sizes ) is sort of subject to lower quality to start.

    TIA
  • About DivX:
    http://camstudio.org/faq.htm#DivX -- Not sure if the problem lies here though. I haven't used DivX in many years, so no real experience with it either. On a side not, I think that anyone with DivX installed will be able to play XviD encoded video, and possibly vice versa.

    About MSU SCLC and CS LC:
    I think I've experienced the same "problem" with the MSU codec, but I've never really cared. I don't use the CS Player (does anyone?), and I usually converted the file anyway. As for the filesizes of Camstudios codec; yeah, it's not as good as the SCLC. Personally, if I used it for recording, I would convert the video for distribution.


    "I would be happy to record a larger file if I could later compress it for a general audience. Is this where virtual dub and similar apps comes in?"

    That's right. I posted an explanation for 2 pass compression in Virtualdub here:
    http://camstudio.org/forum/comments.php?DiscussionID=77&page=1#Item_3


    "And then there is the question about scaling. Is there a preferred method to record a 1024x768 screen so that when it's displayed back it can be resized without destroying the quality? "

    Without being an expert on the subject, I would think that the quality of scaling depends on the player and what algorithms it uses, not the recording. Could it perhaps be an idea to provide the video in two different sizes, eg. 1024x768 and 800x600? Video can be scaled down with Virtualdub (Video --> Filters --> Add --> resize), and the results are pretty good, I think.
Sign In or Register to comment.