이 기사의 제목이 이미 머리를 아프게(head hurt) 하지 않는다면 나머지는 분명히 그럴 것입니다. 글쎄요(Well) , 비기술적인 사람도 이해할 수 있는 방식으로 설명할 수 있기를 바랍니다. video/audio codecs becauseI 에 대한 글을 쓰게 된 이유는 언젠가 친구에게(friend one) 설명하려다가 혼란스러워서 였습니다.
코덱이란 정확히 무엇입니까? 여기저기서 영화를 재생하기 위해 그들이 필요하다는 것을 알고 있지만 실제로는 무엇입니까? 나를 정말로 혼란스럽게 했던 것은 내가 들어본 적이 있지만 결코 이해하지 못한 모든 용어들이었다: H.264 , DivX , MP4 , AVI , MPEG-2 , AVCHD , AAC , OGG , MKV 등. 이것들이 모두 코덱이었습니까? 많은 것을 읽고 배운 후에 (reading and learning)오디오 및 비디오 코덱(audio and video codecs) 과 컨테이너 형식(container format) 의 세계가 매우 혼란스럽다는 것을 깨달았습니다 . 사실 코덱과 컨테이너 형식(container format) 의 차이도 잘 몰랐는데내가 연구를 시작하기 전까지.
주제가 매우 빠르게 매우 간결해지기 시작하기 때문에 자세히 설명하지 않겠습니다. 1시간 분량의 RAW(RAW) 비압축 1080p 60fps 비디오가 거의 500GB의 저장 공간(storage space) 을 차지 한다면 정말 상관이 있습니까? 아마 아닐 것입니다.
코덱이란 무엇입니까?
코덱이란 정확히 무엇이며 어떤 역할을 합니까? 가능한 가장 간단한 용어로 코덱은 인코더/디코더 또는 원래 형태의 압축기(co) – 압축 해제기(– decompressor) (dec)입니다. 이것이 바로 코덱이 하는 일입니다. 디지털 파일을 가져와서 저장을 위해 압축(또는 인코딩)하고 보기 또는 트랜스코딩을 위해 압축을 해제(또는 디코딩)합니다. 트랜스코딩이 무엇인지는 잠시 후에 알려 드리겠습니다. 초반에 혼동하지 맙시다.
이해해야 할 중요한 점은 코덱은 비트스트림이 어떻게 보여야 하는지에 대한 사양과 비슷하다는 것입니다. 비트스트림이란? 기술적으로 설명하지 않으려면 해당 특정 코덱에 대해 바이트 시퀀스를 정렬하는 방법입니다. 각 코덱에는 특정 지침 세트가 있습니다. 예를 들어 너비, 높이, 종횡비 등을 지정할 수 있습니다. 이 페이지를 확인하지만 너무 많이 읽지 마십시오. 머리가 아플 것입니다.
http://www.cs.cf.ac.uk/Dave/Multimedia/node262.html
사양이기 때문에 데이터를 해당 형식으로 변환하는 방법은 여러 가지가 있습니다. 따라서(Hence) 하나의 코덱에 여러 인코더가 있을 수 있습니다. 인코더에 대한 자세한 내용은 아래의 인기 코덱 섹션(Popular Codecs section) 에서 설명 하겠습니다.
그렇다면 이 모든 압축 및 압축 해제(compression and decompression) 가 필요한 이유는 무엇입니까? 위에서(Well) 언급했듯이 RAW 압축되지 않은 1080p 파일은 단 1시간 동안 거의 500GB에 달합니다. 모든 것이 해당 형식으로 녹화된 경우 모든 가족 비디오를 저장하려면 자체 데이터 센터가 필요합니다. 압축이 작동하는 곳입니다. 다양한 유형의 코덱으로 변환되는 다양한 유형의 압축이 있습니다. 그렇다면 인기 있는 코덱은 무엇입니까?
인기 코덱
H.264 (MPEG-4 Part 10 AVC) – 이것은 공식적으로 MPEG-4 Part 10 이라고도 알려져 있지만 H.264 는 일반적으로 듣는 것입니다. 네, 같은 것에도 여러 이름이 있습니다. H.264 는 지금까지 비디오 인코딩에 가장 널리 사용되는 형식입니다. H.264 는 모든 세계의 최고를 제공합니다. 더 작은 파일 크기와 더 높은 품질을 제공합니다.
다시 말하지만(Again) , H.264 는 코덱일 뿐이며 확장자가 .h264인 파일은 찾을 수 없습니다. 이것이 바로 컨테이너 형식의 용도이며 아래 섹션에서 설명하겠습니다. 이 코덱은 스마트폰에서 디지털 캠코더, Blu-ray 디스크(Blu-ray discs) 에 이르기까지 모든 곳에서 사용됩니다 . 또한 높은 압축률(compression ratio) 과 낮은 비트 전송률로 뛰어난 (bit rate)이미지 품질(image quality) 을 제공 하므로 스트리밍 서버에 대한 부담이 적기 때문에 오늘날 많은 웹 비디오 를 제공하는 데 사용됩니다.(web video today)
또한 높은 지원을 받으며 아마도 앞으로도 오랫동안 가장 인기 있는 코덱이 될 것입니다. Apple , YouTube , HTML 5 및 Adobe Flash 에서도 지원됩니다 .
H.264 의 유일한 단점 은 압축 알고리즘이 너무 뛰어나서 이 형식으로 비디오를 인코딩하는 것이 훨씬 느립니다. 아래에서 트랜스코딩에 대해 이야기할 때 이에 대해 자세히 알아볼 수 있습니다.
위에서 언급했듯이 단일 코덱에 대해 여러 인코더가 있습니다. H.264 코덱(H.264 codec) 의 경우 가장 인기 있는 인코더 중 하나는 VLC Media Player 를 만든 사람인 VideoLAN 의 x264 입니다. x264는 무료이며 오픈 소스이지만 상용 H.264 인코더도 많이 있습니다. 비디오 스트림(video stream) 이 이 형식으로 변환되는 방법은 중요하지 않습니다 . 모든 H.264 디코더(H.264 decoder) (예: VLC )에서 파일을 볼 수 있습니다.
MPEG-2 – 여전히 많은 DVD 컬렉션(DVD collection) 이 있습니까? 이것은 모두 MPEG-2 코덱(MPEG-2 codec) 을 사용하여 수행됩니다 . 꽤 오래되었지만 매우 일반적입니다. MPEG-2 압축(MPEG-2 compression) 을 찾을 수 있는 또 다른 장소 는 이러한 HD 채널이 방송을 통해 방송되는 것을 볼 때입니다. 그것이 모두 MPEG-2 압축(MPEG-2 compression) 입니다. 알고 보면 흥미로운 내용이죠?
MPEG-2 를 사용한 압축 알고리즘은 H.264 보다 훨씬 열등하기 때문에 인코딩 속도가 훨씬 빠르다는 장점이 있습니다. 그러나 더 낮은 비트 전송률에서 품질이 빠르게 급락하고 픽셀화된 비디오로 끝나기 때문에 웹 스트리밍(web streaming) 에서는 작동하지 않았습니다 . 그것이 그들이 MPEG-4 Part 2 를 고안한 이유 입니다.
MPEG-4 파트 2 – (MPEG-4 Part 2)DivX와 Xvid(DivX and Xvid) 에 대한 모든 이야기가 나왔던 시절을 기억 하시나요? H.263 이라고도 하는 MPEG-4 Part 2 형식 용 인코더였습니다 . 그 당시에 다운로드한 많은 영화가 이 코덱을 사용하여 압축되었습니다. 좋은 파일 크기(file size) 를 제공하고 합리적인 품질을 유지했기 때문입니다. 그러나 유일한 주요 문제는 고화질 콘텐츠(high-definition content) 가 여전히 화질(image quality) 면에서 어려움을 겪고 있으며 위에서 언급한 H.264 가 그 자리 를 차지했다는 것입니다.
Windows Media Video – 이것은 기본적으로 MPEG-4 코덱 의 (MPEG-4 codecs)Microsoft 버전입니다 . WMV 7은 1999년에 소개되었으며 MPEG-4 Part 2 의 복사본이었습니다 . 나중에 WMV 8 과 9가 나왔고 MPEG-4 Part 10 을 대부분 복사 하고 현재 Blu-ray 디스크 에도 사용되는 코덱인 (Blu-ray discs)VC-1 이 이어졌습니다 . WMV 및 VC-1(VC-1) 을 볼 수 있는 다른 장소 는 대부분 Windows Movie Maker , Silverlight , HD DVD 및 Microsoft Expression Encoder(HD DVD and Microsoft Expression Encoder) 등과 같은 Microsoft 관련 제품 에 있습니다.
이들은 인기 있는 비디오 코덱(video codecs) 일 뿐이며 오디오 코덱도 있으며 아래에서 컨테이너에 대해 이야기할 때 사용됩니다. 인기 있는 오디오 코덱에는 FLAC , AC3 , Dolby Digital Plus , DTS-HD , ALAC 등이 있습니다. 비디오와 마찬가지로 오디오 코덱도 (ALAC)AIFF , WAV 등과 같은 자체 컨테이너 형식 을 가집니다.
이것들은 모든 코덱이 아니라 가장 인기 있는 코덱의 목록일 뿐입니다. 이제 컨테이너 형식에 대해 이야기해 보겠습니다.
컨테이너 형식
Windows Media Player, VLC(Windows Media Player or VLC) , Quicktime 또는 선택한 미디어 플레이어 에서 파일을 재생할 때 일반적으로 컨테이너 형식(container format) 을 엽니다 . 컨테이너 형식 또는 래퍼(container format or wrapper) 는 기본적으로 하나 이상의 코덱, 비디오 또는 오디오(video or audio) 또는 둘 다 의 패키지입니다. 컨테이너는 비디오와 함께 오디오를 추가하고 오디오와 비디오(audio and video) 가 완벽하게 동기화되었는지 확인하는 데 사용됩니다. 컨테이너에는 스트리밍 서버(streaming server) 또는 미디어 플레이어에 필요한 기타 정보도 포함됩니다. 비디오 및 오디오 비트스트림은 다른 비트스트림으로 래핑됩니다.
컨테이너 형식은 (Container)MP4 , MOV , WMV , AVI 등과 같이 우리가 모두 사용하는 일반적인 파일 확장자를 볼 수 있는 곳 입니다. 가장 일반적인 컨테이너를 살펴보겠습니다.
MP4 – 많은 비디오 및 오디오 코덱의 래퍼인 .MP4 확장자가 있는 노래를 다운로드했을 것입니다. 가장 일반적으로 H.264 비디오 및 AAC(H.264 video and AAC) 인코딩 오디오를 래핑하는 데 사용됩니다. 또한 MPEG-4 Part 2 및 MPEG-2 비디오(MPEG-2 video) 코덱도 지원합니다. 또한 오디오는 AAC(AAC) 이외의 다른 코덱을 사용하여 인코딩할 수 있습니다 .
AVI – 이것은 1992년의 Microsoft 컨테이너(Microsoft container) 형식입니다. 당시에는 매우 인기가 있었고 지금도 꽤 많이 사용되고 있습니다. 인코딩을 하면 더 이상 AVI 컨테이너(AVI container) 형식을 사용해서는 안 됩니다. 첫째, H.264(H.264) 와 같은 최신 코덱을 지원하지 않습니다 . 또한 더 이상 사용되지 않는 몇 가지 다른 주요 문제가 있습니다.
ASF – Microsoft 의 (Microsoft don)Advanced Systems Format 은 일반적으로 .ASF 파일 확장자(.ASF file extension) 를 사용하지 않습니다 . 대신 대부분의 ASF 컨테이너가 .WMA 또는 .WMV를 사용하는 것을 볼 수 있습니다. 모든 Microsoft(Microsoft) 제품 을 사용하는 경우 이러한 파일을 볼 수 있습니다. Microsoft 세계(Microsoft world) 를 벗어나면 특히 H.264 코덱(H.264 codec) 을 사용하는 경우 파일을 재생하는 데 문제가 발생합니다 .
AVCHD – AVCHD 는 HD 캠코더 의 가장 일반적인 컨테이너 형식 입니다. (container format)비디오는 일반적으로 AC3 ((AC3) Dolby Digital(Dolby Digital) ) 오디오 또는 Linear PCM 이 있는 (PCM)H.264 가 됩니다.
MKV – 최근에 영화를 다운로드 하시겠습니까? (Download)아마도 H.264 비디오(H.264 video) 파일 이 들어 있는 MKV 컨테이너(MKV container) 형식일 것입니다. Boxee , PS3 Media Server , XMBC , VLC 등과 같은 많은 도구가 MKV 를 지원 하지만 아직 다른 컨테이너 형식만큼 널리 지원되지는 않습니다.
FLV – 이것은 다양한 코덱을 지원하는 Adobe Flash 이며, 가장 일반적인 것은 (Adobe Flash)H.264 및 AAC(H.264 and AAC) 입니다. 플래시 비디오 는 비디오가 (Flash video)인터넷(Internet) 을 통해 스트리밍되는 가장 인기 있는 방법 중 하나입니다 . HTML 5 와 Apple 이 iDevice에서 (Apple)플래시(let flash) 를 실행하도록 허용하지 않는다는 사실 때문에 기반을 잃고 있지만 여전히 매우 일반적 입니다 .(losing ground)
QuickTime File Format , OGG , WebM 등과 같은 다른 컨테이너 형식이 있지만 이제 그림을 볼 수 있습니다.
트랜스코딩
이 모든 것에 대해 마지막으로 이해해야 할 점은 캠코더에서 다운로드한 AVCHD 비디오(AVCHD video) 를 iTunes로 가져와서 iPhone에서 재생할 수 있는 다른 형식으로 변환해야 한다는 것입니다. 많은 코덱과 컨테이너 형식(codecs and container formats) 이 있고 각 컨테이너 형식(container format) 은 비디오 및 오디오 코덱의 다른 조합을 가질 수 있으므로 특정 장치에 대해 원하는 파일 유형을 얻으려면 트랜스코더가 필요합니다.
HandBrake , FFmpeg , SUPER , VirtualDub 등 많은 트랜스코더(비디오 변환기)가 있습니다 . 일부는 유료이고 일부는 무료 오픈 소스 도구입니다. HandBrake 와 같은 일부 도구는 사전 설정을 제공하므로 소스 파일(source file) 을 선택하고 iPod 또는 iPhone(iPod or iPhone) 과 같은 출력 형식 을 선택한 (output format)다음 시작(Start) 을 클릭하기만 하면 됩니다. 모든 설정, 컨테이너, 코덱 등을 선택합니다. 그러나 이 게시물을 읽은 후에는 이제 조금 더 이해하고 형식 간에 비디오를 변환하고 기본 프로세스를 조금 더 잘 이해할 수 있기를 바랍니다. 즐기다!
OTT Guide to Codecs, Container Formats and Transcoding
If the title of this аrticle doeѕn’t already make your head hurt, then the rest of it definitely will. Well, hopefully I can explain it in a way that makes sense to the non-technicаl person. I am writing this article about video/audio codecs becauseI found myself confused when trying to explain it to a friend one day.
What exactly is a codec? I know you need them to play a movie here and there, but what the heck is it really? What really confused me were all the terms I’ve heard of, but never really understood: H.264, DivX, MP4, AVI, MPEG-2, AVCHD, AAC, OGG, MKV, etc, etc. Were these all codecs? After much reading and learning, I realized that the world of audio and video codecs and container formats is very confusing. Actually, I really didn’t even know the difference between a codec and a container format until I started researching.
I won’t be going into much detail, just because the topic starts to become very terse very fast. Do you really care if 1 hour of RAW uncompressed 1080p 60 frames per second video eats up almost 500 GB of storage space? Probably not.
What is a Codec?
So what exactly is a codec and what does it do? In the most simple terms possible, a codec is an encoder/decoder or, in it’s original form, a compressor (co) – decompressor (dec). So that is exactly what a codec does: it takes a digital file and compresses it (or encodes it) for storage and decompresses it (or decodes it) for viewing or transcoding. I’ll tell you what transcoding is a little bit later on, let’s not confuse ourselves this early on.
The important thing to understand is that a codec is kind of like a specification of how the bitstream should look. What is a bitstream? To not get very technical, it’s how the sequence of bytes should be arranged for that particular codec. Each codec has a specific set of guidelines. For example, it can specify the width, height, aspect ratio, etc. Check out this page, but don’t read too much or your head will hurt:
http://www.cs.cf.ac.uk/Dave/Multimedia/node262.html
Because it’s a specification, there can me many ways to convert data into that format. Hence, there can be many encoders for one codec. I’ll explain more about encoders in the Popular Codecs section below.
So why do we even need all this compression and decompression? Well like I mentioned above, a RAW uncompressed 1080p file is almost a whopping 500GB for just one hour. You would need your own data center to store all your family videos if everything was recorded in that format. That’s where compressions comes into play. There are different types of compression, which translates into different types of codecs. So what are some popular codecs?
Popular Codecs
H.264 (MPEG-4 Part 10 AVC) – This is also officially known as MPEG-4 Part 10, but H.264 is what you commonly hear. Yes, there are also multiple names for the same thing. H.264 is by far the most popular format for encoding videos. H.264 offers the best of all worlds: smaller file sizes with higher quality.
Again, remember, H.264 is just the codec, you won’t find any files with .h264 extensions. That’s what container formats are for, which I’ll explain in the section below. This codec is used all over the place from smartphones to digital camcorders to Blu-ray discs. It’s also used for delivering a lot of web video today because of it’s ability to give you great image quality with a high compression ratio and a low bit rate, meaning less strain on streaming servers.
It’s also highly supported and probably will be the most popular codec for a long time to come. It’s supported by Apple, YouTube, HTML 5, and even in Adobe Flash.
The only downside to H.264 is that it’s algorithms for compression are so good, it’s a lot slower to encode a video into this format. You’ll find out more about that when we talk about transcoding down below.
As I had mentioned above, there are multiple encoders for a single codec. For the H.264 codec, one of the most popular encoders is x264 from VideoLAN, the same people who create VLC Media Player. x264 is free and open-source, but there are many commercial H.264 encoders also. It doesn’t matter how the video stream gets converted into this format, any H.264 decoder (like VLC) will be able to view the file.
MPEG-2 – Still have a large DVD collection? That’s all done using the MPEG-2 codec. It’s pretty old, but very common. The other place where you find MPEG-2 compression is when you watch those HD channels broadcast over-the-air. That’s all MPEG-2 compression. Interesting stuff to know, right?
Since the algorithm for compression using MPEG-2 is vastly inferior to H.264, it’s got the advantage of being a lot faster to encode. However, it never worked for web streaming because at a lower bitrate, the quality would quickly nosedive and you’d end up with pixelated video. That’s why they came up with MPEG-4 Part 2.
MPEG-4 Part 2 – You probably remember the days when everything talked about DivX and Xvid right? Those were encoders for the MPEG-4 Part 2 format, aka H.263. A lot of movies that you downloaded back in the day were compressed using this codec because it gave you a good file size and maintained reasonable quality. However, the only major problem is that high-definition content still suffered in terms of image quality and that’s where H.264 that I mentioned above took over.
Windows Media Video – This is basically Microsoft’s version of the MPEG-4 codecs. WMV 7 was introduced in 1999 and was a copy of MPEG-4 Part 2. Later on, WMV 8 and 9 came, followed by VC-1, a codec that mostly copies MPEG-4 Part 10 and is currently used in Blu-ray discs too. The only other places you see WMV and VC-1 are mostly in Microsoft related products like Windows Movie Maker, Silverlight, HD DVD and Microsoft Expression Encoder, etc.
These are just the popular video codecs, you also have your audio codecs, which come into play when we talk about containers below. Popular audio codecs include FLAC, AC3, Dolby Digital Plus, DTS-HD, ALAC, etc. As with video, audio codecs have their own container formats like AIFF, WAV, etc.
These are not by any means all the codecs out there, it’s just a list of some of the most popular ones. Now let’s talk about container formats.
Container Formats
When you play a file in Windows Media Player or VLC or Quicktime or whatever your media player of choice, you’re usually opening a container format. A container format or wrapper is basically package of one or more codecs, video or audio or both. A container is used to add audio along with video and to make sure the audio and video are synchronized perfectly. The container will also contain other information needed by a streaming server or by the media player. The video and audio bitstreams are just wrapped in another bitstream.
Container formats are where you see the common file extensions we are all used too like MP4, MOV, WMV, AVI, etc. Let’s go through some of the most common containers:
MP4 – You’ve probably downloaded a song that had an .MP4 extension, which is a wrapper for an many video and audio codecs. Most commonly, it’s used to wrap H.264 video and AAC encoded audio. It also supports MPEG-4 Part 2 and MPEG-2 video codecs also. Also, audio can be encoded using other codecs other than AAC.
AVI – This is a Microsoft container format from 1992. It was very popular back in my day and it’s still around quite a bit. If you do any encoding, you should never use the AVI container format anymore. Firstly, it doesn’t support newer codecs like H.264. It also has a few other major problems which is why it’s not used anymore.
ASF – The Advanced Systems Format by Microsoft don’t normally use the .ASF file extension. Instead you’ll see most ASF containers use .WMA or .WMV. You’ll see these files around if you’re using all Microsoft products. Once you leave the Microsoft world, you’ll run into issues playing back the files, especially if you use the H.264 codec.
AVCHD – AVCHD is the most common container format for HD camcorders. The video is normally going to be H.264 with AC3 (Dolby Digital) audio or Linear PCM.
MKV – Download a movie lately? It’s probably in the MKV container format, which houses H.264 video files. Quite a few tools support MKV like Boxee, PS3 Media Server, XMBC, VLC, etc, but it’s not as widely supported as other container formats just yet.
FLV – This is Adobe Flash, which supports many different codecs, most common being H.264 and AAC. Flash video is one of the most popular ways videos are streamed over the Internet. It’s losing ground because of HTML 5 and the fact that Apple won’t let flash run on any of it’s iDevice’s, but it’s still very common.
There are other container formats like the QuickTime File Format, OGG, WebM, etc, but you kind of get the picture now.
Transcoding
The last thing to understand about all this is that you probably will have to convert that AVCHD video you downloaded from your camcorder to a different format that you can then import into iTunes and play on your iPhone. Since there are so many codecs and container formats and each container format can have different combinations of video and audio codecs, you need a transcoder to get you the type of file you want for your particular device.
There are many transcoders aka video converters out there: HandBrake, FFmpeg, SUPER, VirtualDub, etc. Some are paid and some are free open-source tools. Some tools, like HandBrake, give you presets so you can simply choose your source file and pick an output format like iPod or iPhone and click Start. It’ll choose all the settings, container, codec, etc for you. However, hopefully after reading this post, you now understand a little bit more and can go about converting videos between formats and understand the underlying process a little better. Enjoy!