VideoHelp Forum




+ Reply to Thread
Results 1 to 16 of 16
  1. Member
    Join Date
    Aug 2015
    Location
    Europe
    Search Comp PM
    Name:  Bez tytułu.png
Views: 6809
Size:  3.4 KB
    Can anybody explain to me all these modes, especially differences between h264 vs H264, x264 vs X264 and avc1 vs AVC1? And what VSSH is? Thanks.

    Sorry if in wrong section.
    Quote Quote  
  2. Mod Neophyte redwudz's Avatar
    Join Date
    Sep 2002
    Location
    USA
    Search Comp PM
    Short version links:

    https://forum.videohelp.com/threads/353101-What-is-the-difference-between-x264-and-h264...hey-so-popular

    AVC1 is a bit more vague: http://www.codeccodecs.com/fourcc-avc1-t241.html

    VSSH seems to be some reference to cell phones.

    But, wait a bit. Our other members may give you more info. BTW, What program did you get that screenshot from?
    That could make QUITE a difference in the replies.

    Anyway; Welcome to our forums.
    Quote Quote  
  3. Member racer-x's Avatar
    Join Date
    Mar 2003
    Location
    3rd Rock from the Sun
    Search Comp PM
    I would, but that makes no sense at all. Your comparisons should be equal.....
    Got my retirement plans all set. Looks like I only have to work another 5 years after I die........
    Quote Quote  
  4. Give him a straight answer instead of confusing him. Is that difficult?

    MarioPL98, h264 H264 x264 X264 avc1 and AVC1 are all the same thing so it really doesn't matter.
    H264 is a standard while x264 is the actual encoder, the capitals mean nothing. AVC is the MPEG name for H264 which is what an x264 codec wrapped in an .MP4 container would display.
    VSSH I have no idea what that is.
    Quote Quote  
  5. Those are "fourcc" codes that identify the codec that was used. They make no difference in the encoding. Use whatever works for your playback device(s).
    Quote Quote  
  6. Member
    Join Date
    Aug 2013
    Location
    Central Germany
    Search PM
    A "FourCC" (4 character code) is just a flag in the AVI container that allows a decoder to recognize the content and know it is responsible for decoding such a video stream. There are two kinds of FourCCs in an AVI header describing the video stream it contains (one rather unimportant describing the specific encoder software which created the video, which is probably the one you want to set up here, and another very important which describes the decoder which should be used to decode the video). Read a bit more about them on http://fourcc.org/

    Not all available decoders will recognize all FourCCs, even though they all describe more or less the same kind of content; "more or less", because some decoders only support a small part of the whole specification of a video format. The FourCC "VSSH" was first used by a H.264 codec made by Vangard Software Solutions; it is obsolete today, you should not want to flag your videos with it anymore. "AVC1" is a generic FourCC many decoders should recognize; video streams flagged with it could have been created by many different encoders, including hardware encoder chips (e.g. on AVC cameras). The FourCC "H264" is similarly generic and widely recognized. If you flag it with "x264", it may mean that it was specifically created by the x264vfw codec. Upper/lower case does make a difference; most decoders will recognize both variants, though. The current multi-format decoders "LAV Filters" and "ffdshow" will recognize most of these FourCCs offered to flag AVC video in this codec.

    In general, storing MPEG-4 AVC (H.264) video inside an AVI container is deprecated and discouraged. The AVI container does not provide all the required features necessary to handle AVC video content correctly (it can't differ between I and IDR frames, and it was never designed to handle future references = B frames). Even though using the x264vfw codec is convenient for the lazy user, you should consider using different software in the future, which supports standard compliant containers (like MP4, maybe MKV) handling the video format correctly.
    Last edited by LigH.de; 16th Aug 2015 at 06:16.
    Quote Quote  
  7. Member racer-x's Avatar
    Join Date
    Mar 2003
    Location
    3rd Rock from the Sun
    Search Comp PM
    Well that explains the confusion on my part. I would never put an AVC stream in an AVI container. The only time I use x264_VFW is in my screen capture utility, even then I export as mp4 not avi using a special command line switch.....
    Got my retirement plans all set. Looks like I only have to work another 5 years after I die........
    Quote Quote  
  8. racer-x, the OP asked about FourCC codes and if they even matter. What's there to be confused about? He asked a common newb question that isn't hard to answer.

    Originally Posted by LigH.de View Post
    it can't differ between I and IDR frames
    This one's new. Are IDR frames those that mb tree uses or something? I've never had a problem with H264 in AVI until mb-tree was introduced which caused artifacting when decoded from an AVI container. In fact that's the only reason I abandoned AVI which makes editing extremely annoying given no free tool can edit MP4 or MKV.
    Quote Quote  
  9. Originally Posted by -Habanero- View Post

    This one's new. Are IDR frames those that mb tree uses or something? I've never had a problem with H264 in AVI until mb-tree was introduced which caused artifacting when decoded from an AVI container. In fact that's the only reason I abandoned AVI which makes editing extremely annoying given no free tool can edit MP4 or MKV.
    IDR can be thought of as "true" keyframes or what you think of as a "traditional" keyframe. IDR frames mark the boundaries of a GOP, with no references outside of the GOP. "i" (lower case) frames in contrast are non delimiting frames when you use open GOP . With "i" frames - you can reference outside of that mini GOP . They are basically "filler" frames there to meet the --keyint quota. That's the primary reason for using open GOP - to reduce the keyframe pumping (quality difference in frametype usually at the GOP transition) by referencing outside to the previous GOP .
    Quote Quote  
  10. Member racer-x's Avatar
    Join Date
    Mar 2003
    Location
    3rd Rock from the Sun
    Search Comp PM
    The confusion is I never used fourcc codes because I only put editable intra-frame codecs in an AVI container, never AVC, HEVC or any long GOP codecs. Why are you so confused about that?
    Got my retirement plans all set. Looks like I only have to work another 5 years after I die........
    Quote Quote  
  11. Member
    Join Date
    Aug 2013
    Location
    Central Germany
    Search PM
    A separate "i"-Frame in AVC may also be used to encode an exception to the surrounding content. e.g. a flash; references in P and B would be able to skip this "island" frame. It would be fatal to cut video at such a point. Only IDR (Intra with Decoder Reset) ensure that there will be no references across this frame.
    Quote Quote  
  12. Member
    Join Date
    Aug 2015
    Location
    Europe
    Search Comp PM
    Originally Posted by redwudz View Post
    But, wait a bit. Our other members may give you more info. BTW, What program did you get that screenshot from?
    That could make QUITE a difference in the replies.
    It's screenshot from x264vfw that i'm using to record screen with bandicam or dxtory.
    Quote Quote  
  13. Member
    Join Date
    Aug 2015
    Location
    Europe
    Search Comp PM
    So if THERE ISN'T any difference between small and capital letters, then why developers added them? There is ABSOLUTELY no difference? No difference in compressing algorithms? No difference in performance? No difference in compatibility? No difference in usage? No difference at all?

    I known what avc1 or x264 mean before i started this thread but i couldn't find an answer, why there are for example X264 and x264, why not just once.

    PS Which one of them (photo at start) has best encoding performance in 1080p, 4:2:0, 30fps, standard settings on fast moving scenes like gaming?
    Last edited by MarioPL98; 18th Aug 2015 at 02:57.
    Quote Quote  
  14. fourcc codes are just labels written at the container level. Just like you can write "x264" on the outside of a box to indicate what's in the box. Different developers decided to use different labels when creating h.264 video. So your encoder gives you a choice of which label to use. Some programs/decoders may not recognize some of the fourcc codes. And case can make a difference in that context. But the fourcc code makes no difference in how the h.264 video is encoded.
    Quote Quote  
  15. Member
    Join Date
    Aug 2015
    Location
    Europe
    Search Comp PM
    Originally Posted by jagabo View Post
    fourcc codes are just labels written at the container level. Just like you can write "x264" on the outside of a box to indicate what's in the box. Different developers decided to use different labels when creating h.264 video. So your encoder gives you a choice of which label to use. Some programs/decoders may not recognize some of the fourcc codes. And case can make a difference in that context. But the fourcc code makes no difference in how the h.264 video is encoded.
    that's what i was looking for, thanks
    Quote Quote  
  16. Member
    Join Date
    Aug 2013
    Location
    Central Germany
    Search PM
    As already mentioned, not every decoder installed on every PC out there will recognize all FourCCs. That's sometimes good if the matching encoder only supported a subset of the specification or differs from the specification slightly, so a different FourCC can be used to ensure that only the decoder matching the encoder will try to decode the result, or the decoder won't try to decode material which was encoded by an encoder supporting more of the specification than the limited subset which this early decoder supports.

    Imagine the Vanguard encoder only created AVC in Baseline profile (I don't know if it does, just as a sample); in this case, the Vanguard decoder won't be able to decode AVC video streams in Main or even High profile. So it is certainly a good idea that the Vanguard decoder will only try to decode videos with the FourCC "VSSH", which it will certainly support, but not videos with the FourCC "AVC1", created by any other encoder, which it may or may not support. So it would also be a bad idea to flag video created by x264vfw with the FourCC "VSSH": If anyone had the Vanguard decoder installed and tried to play video encoded by x264, the Vanguard decoder will probably fail, assuming wrong that it would be able to, because it recognized the bad matching FourCC "VSSH".

    tl;dr: If a specific codec does not support most of a format's specs, a different FourCC can be used to give it a niche and separate it from others.
    Last edited by LigH.de; 18th Aug 2015 at 13:32.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!