この記事のタイトルがまだ頭を痛め(head hurt)ていなければ、残りの記事は間違いなく痛むでしょう。まあ(Well)、うまくいけば、私は非技術者に意味のある方法でそれを説明することができます。ある日、友人(friend one)に説明しようとすると混乱したので、video/audio codecs becauseIについてこの記事を書いています。
コーデックとは正確には何ですか?あちこちで映画を上映するのに彼らが必要なのは知っていますが、一体何なのでしょう?私が本当に混乱したのは、聞いたことがあるが実際には理解できなかったすべての用語でした: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)非圧縮1080p60フレーム/秒のビデオが約500GBのストレージスペース(storage space)を消費するかどうか本当に気になりますか?おそらくそうではありません。
コーデックとは何ですか?
では、コーデックとは正確には何であり、それは何をするのでしょうか?可能な限り最も簡単な用語では、コーデックはエンコーダー/デコーダー、または元の形式ではコンプレッサー(co)–デコンプレッサー(– decompressor)(dec)です。つまり、コーデックはまさにそれを実行します。デジタルファイルを取得し、保存のために圧縮(またはエンコード)し、表示またはトランスコードのために解凍(またはデコード)します。トランスコーディングとは少し後で説明します。早い段階で混乱しないようにしましょう。
理解しておくべき重要なことは、コーデックはビットストリームの外観の仕様のようなものであるということです。ビットストリームとは何ですか?あまり技術的にならないようにするには、その特定のコーデックのバイトシーケンスをどのように配置する必要があるかです。各コーデックには、特定のガイドラインのセットがあります。たとえば、幅、高さ、アスペクト比などを指定できます。このページを確認してください。ただし、読みすぎないでください。頭が痛くなります。
http://www.cs.cf.ac.uk/Dave/Multimedia/node262.html
これは仕様なので、データをその形式に変換する方法はたくさんあります。したがって(Hence)、1つのコーデックに対して多くのエンコーダが存在する可能性があります。エンコーダについて詳しくは、以下の「人気のあるコーデック」セクション(Popular Codecs section)で説明します。
では、なぜこのすべての圧縮と解凍(compression and decompression)が必要なのですか?上で述べたように、RAWの非圧縮(RAW)1080p(Well)ファイルは、たった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ビデオ(web video today)の配信にも使用されています。つまり、ストリーミングサーバーへの負担が少なくなります。
また、高度にサポートされており、おそらく今後長い間最も人気のあるコーデックになるでしょう。Apple、YouTube、HTML 5、さらにはAdobeFlashでもサポートされています。
H.264の唯一の欠点は、圧縮のアルゴリズムが非常に優れていることです。この形式にビデオをエンコードするのは非常に遅くなります。これについては、以下でトランスコーディングについて説明するときに詳しく説明します。
上で述べたように、単一のコーデックには複数のエンコーダーがあります。H.264コーデック(H.264 codec)の場合、最も人気のあるエンコーダーの1つは、VLCMediaPlayerを(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)を見つけるもう1つの場所は、これらのHDチャンネルが無線で放送されるのを見るときです。これがすべてMPEG-2圧縮(MPEG-2 compression)です。知っておくと面白いことですね。
MPEG-2を使用した圧縮のアルゴリズムは、 H.264よりも大幅に劣っているため、エンコードがはるかに高速であるという利点があります。ただし、ビットレートが低くなると、品質がすぐに低下し、ピクセル化されたビデオになってしまうため、Webストリーミングでは機能しませんでした。(web streaming)それが彼らがMPEG-4パート2(MPEG-4 Part 2)を思いついた理由です。
MPEG-4パート2–すべてが(MPEG-4 Part 2)DivXとXvid(DivX and Xvid)について話していた時代を覚えていますか?これらは、 MPEG-4 Part 2(MPEG-4 Part 2)フォーマット(別名H.263 )のエンコーダーでした。その日にダウンロードした多くの映画は、このコーデックを使用して圧縮されました。これは、ファイルサイズ(file size)が適切で、適切な品質が維持されているためです。ただし、唯一の大きな問題は、高解像度コンテンツが依然として(high-definition content)画質(image quality)の点で苦しんでいることです。そこで、前述のH.264が引き継がれました。(H.264)
Windows Mediaビデオ(Windows Media Video)–これは基本的にMicrosoftのバージョンのMPEG-4コーデック(MPEG-4 codecs)です。WMV 7は1999年に導入され、MPEG-4Part2のコピーでした。その後、WMV 8と9が登場し、続いてVC-1が登場しました。これは、ほとんどが(VC-1)MPEG-4 Part 10をコピーし、現在Blu-rayディスク(Blu-ray discs)でも使用されているコーデックです。WMVとVC-1が表示される他の場所は、ほとんどがWindowsムービーメーカー(Windows Movie Maker)、Silverlight、HD DVD、MicrosoftExpressionEncoderなどの(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)は、基本的に1つ以上のコーデック、ビデオ、オーディオ(video or audio)、またはその両方のパッケージです。コンテナは、ビデオとともにオーディオを追加し、オーディオとビデオ(audio and video)が完全に同期されていることを確認するために使用されます。コンテナには、ストリーミングサーバー(streaming server)またはメディアプレーヤーに必要なその他の情報も含まれます。ビデオとオーディオのビットストリームは、別のビットストリームにラップされています。
コンテナ形式は、 (Container)MP4、MOV、WMV、AVIなどのように私たち全員が使用している一般的なファイル拡張子を見る場所です。最も一般的なコンテナのいくつかを見てみましょう。
MP4 –多くのビデオおよびオーディオコーデックのラッパーである.MP4拡張子の付いた曲をダウンロードした可能性があります。最も一般的には、H.264ビデオとAAC(H.264 video and AAC)エンコードオーディオをラップするために使用されます。また、 MPEG-(MPEG-4 Part 2) 4Part2およびMPEG-2ビデオ(MPEG-2 video)コーデックもサポートしています。また、オーディオはAAC(AAC)以外の他のコーデックを使用してエンコードできます。
AVI –これは1992年のMicrosoftコンテナ(Microsoft container)形式です。当時は非常に人気があり、今でもかなりの割合で使用されています。エンコードを行う場合は、AVIコンテナ(AVI container)形式を使用しないでください。まず、 H.264(H.264)のような新しいコーデックをサポートしていません。また、他にもいくつかの大きな問題があり、それがもう使用されていない理由です。
ASF –Microsoft(Systems)のAdvancedSystems (Advanced) Formatは、通常、.ASFファイル拡張子を使用し(.ASF file extension)ませ(Microsoft don)ん。代わりに、ほとんどのASFコンテナが.WMAまたは.WMVを使用していることがわかります。すべてのMicrosoft(Microsoft)製品を使用している場合は、これらのファイルが表示されます。Microsoft(Microsoft world)の世界を離れると、特にH.264コーデック(H.264 codec)を使用している場合は、ファイルの再生で問題が発生します。
AVCHD – AVCHDは、 HDカムコーダーの最も一般的なコンテナー形式です。(container format)ビデオは通常、 AC3(ドルビーデジタル(Dolby Digital))オーディオまたはリニアPCMを備えたH.264になります。
MKV –最近映画をダウンロードしますか?(Download)おそらく、H.264ビデオ(H.264 video)ファイルを格納するMKVコンテナ(MKV container)形式です。Boxee、PS3 Media Server、XMBC、VLCなどのMKVをサポートするツールはかなりありますが、他のコンテナ形式ほど広くサポートされていません。
FLV –これはAdobe Flashであり、多くの異なるコーデックをサポートしています。最も一般的なのはH.264とAAC(H.264 and AAC)です。Flashビデオは、(Flash video)インターネット(Internet)を介してビデオをストリーミングする最も一般的な方法の1つです。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 doеsn’t alreаdy make your head hurt, then the rest of it definіtely will. Well, hopefully I can explain it in a wаy that makes sense to the non-technical pеrson. I am writing this articlе about νideo/audio сodecs becаuseІ foυnd myself confused when trying to explain it to a friend one daу.
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!