{"componentChunkName":"component---src-templates-post-template-js","path":"/posts/audio-video-streaming-data-basics","result":{"data":{"markdownRemark":{"id":"fdc35ac9-6a29-59d3-ab98-0b81dfc655a9","html":"<p>音声・動画・ストリーミングについて、データフォーマットを起点に調べたことをまとめます。</p>\n<p>取っ掛かりとして Wikipedia の以下のページから見始めて、気になる用語などを色々調べました。</p>\n<ul>\n<li><a href=\"https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ファイルフォーマット - Wikipedia</a></li>\n</ul>\n<h2 id=\"基本用語\" style=\"position:relative;\"><a href=\"#%E5%9F%BA%E6%9C%AC%E7%94%A8%E8%AA%9E\" aria-label=\"基本用語 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>基本用語</h2>\n<p>まず、音声や動画データを扱う上で登場する、以下の 4 つの用語についてまとめます。</p>\n<ul>\n<li>エンコード</li>\n<li>デコード</li>\n<li>コーデック</li>\n<li>コンテナフォーマット</li>\n</ul>\n<h3 id=\"エンコード\" style=\"position:relative;\"><a href=\"#%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89\" aria-label=\"エンコード permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>エンコード</h3>\n<p>音声や動画については、圧縮することをエンコードと言います。</p>\n<p>参考: <a href=\"https://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">エンコード - Wikipedia</a></p>\n<p>どのように圧縮しているかの概要は、以下のページが分かりやすかったです。</p>\n<ul>\n<li><a href=\"https://www.stream.co.jp/blog/blogpost-13919/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">エンコードの仕組みとは？高精細な動画エンコードのためにおさえておきたい 5 つのポイント【前編】 - ブログ - Ｊストリーム</a></li>\n</ul>\n<h3 id=\"デコード\" style=\"position:relative;\"><a href=\"#%E3%83%87%E3%82%B3%E3%83%BC%E3%83%89\" aria-label=\"デコード permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>デコード</h3>\n<p>エンコードされた状態のデータはそのまま再生できないため、再生するときに行う処理がデコードです。</p>\n<h3 id=\"コーデック\" style=\"position:relative;\"><a href=\"#%E3%82%B3%E3%83%BC%E3%83%87%E3%83%83%E3%82%AF\" aria-label=\"コーデック permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>コーデック</h3>\n<p>エンコードとデコードが可能な装置やソフトウェア、アルゴリズムをコーデックと言います。</p>\n<p>参考: <a href=\"https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%BC%E3%83%87%E3%83%83%E3%82%AF\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">コーデック - Wikipedia</a></p>\n<h3 id=\"コンテナフォーマット\" style=\"position:relative;\"><a href=\"#%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88\" aria-label=\"コンテナフォーマット permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>コンテナフォーマット</h3>\n<p>複数のデータを 1 つのファイルにまとめる際の形式をコンテナフォーマットと言います。</p>\n<p>例えば、</p>\n<ul>\n<li>WAV</li>\n<li>MOV (QuickTime file Format)</li>\n<li>MP4</li>\n</ul>\n<p>といったファイル形式は、コンテナフォーマットの一種です。</p>\n<p>この中に音声・動画・チャプター・字幕などのデータを入れます。</p>\n<p>参考: <a href=\"https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">コンテナフォーマット - Wikipedia</a></p>\n<p>なお、これらの用語については以下のサイトの解説も分かりやすいです。</p>\n<ul>\n<li><a href=\"https://michisugara.jp/video_and_audio\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">動画・音声の規格について -コーデック・コンテナ-│ パソコン実践 BLOG -道すがら講堂-</a></li>\n</ul>\n<p>なお、コンテナフォーマットと tar などのアーカイブの違いについては、少し調べても分かりませんでした。</p>\n<h2 id=\"音声ファイルフォーマット\" style=\"position:relative;\"><a href=\"#%E9%9F%B3%E5%A3%B0%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88\" aria-label=\"音声ファイルフォーマット permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>音声ファイルフォーマット</h2>\n<p>次に、音声データについて書いていきます。</p>\n<p>音声ファイルフォーマットとしてよく耳にするのは、</p>\n<ul>\n<li>WAV</li>\n<li>MP3</li>\n</ul>\n<p>あたりだと思います。</p>\n<h3 id=\"wav-または-wave\" style=\"position:relative;\"><a href=\"#wav-%E3%81%BE%E3%81%9F%E3%81%AF-wave\" aria-label=\"wav または wave permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>WAV (または WAVE)</h3>\n<p>WAV は正確には音声データフォーマットではなく、音声データのためのコンテナデータフォーマットです。</p>\n<p>WAV 自体は非圧縮で、内部には任意のデータを持つことができます。</p>\n<p>保持するデータとしては、圧縮されていない音声データの場合もあれば、MP3 のデータを保存することも可能です。</p>\n<p>WAF は圧縮されていない、MP3 は圧縮されている、という説明がされる場合もあるようです。</p>\n<p>参考</p>\n<ul>\n<li><a href=\"https://ja.wikipedia.org/wiki/WAV\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">WAV - Wikipedia</a></li>\n<li><a href=\"https://www.motionelements.com/blog/ja/basic-knowledge/wav-mp3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">【デジタル音源とは？】WAV と MP3 の違い | MotionElements</a></li>\n<li><a href=\"https://vook.vc/n/1076\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">【全ての謎が解けるかも？】MP3 と WAV の違いを徹底検証しましょう！ | Vook(ヴック)</a></li>\n</ul>\n<h3 id=\"mp3-mpeg-1-audio-layer-3\" style=\"position:relative;\"><a href=\"#mp3-mpeg-1-audio-layer-3\" aria-label=\"mp3 mpeg 1 audio layer 3 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>MP3 (MPEG-1 Audio Layer-3)</h3>\n<p>MP3 は、音声データを圧縮したファイルフォーマットです。</p>\n<p>ちなみに、Wikipedia によると MP3 と MP4 は直接関連がないそうです。</p>\n<blockquote>\n<p>MP3 と MP4 の名称が類似していることから MP4 が同類の Audio Layer-4 と誤解されるケースが見受けられるが、MP4 はあくまで MPEG-4 の関連規格であり、直接の関連性はない規格である。</p>\n</blockquote>\n<p>参考: <a href=\"https://ja.wikipedia.org/wiki/MP3\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">MP3 - Wikipedia</a></p>\n<h2 id=\"音声データの処理\" style=\"position:relative;\"><a href=\"#%E9%9F%B3%E5%A3%B0%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%87%A6%E7%90%86\" aria-label=\"音声データの処理 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>音声データの処理</h2>\n<p>音声データの処理で登場する、フーリエ変換などについて少し触れておきます。</p>\n<h3 id=\"フーリエ変換\" style=\"position:relative;\"><a href=\"#%E3%83%95%E3%83%BC%E3%83%AA%E3%82%A8%E5%A4%89%E6%8F%9B\" aria-label=\"フーリエ変換 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>フーリエ変換</h3>\n<p>音声データは様々な周波数から成り立っているため、フーリエ変換で分解して扱うのが定番です。</p>\n<p>参考</p>\n<ul>\n<li><a href=\"https://jorublog.site/python-voice-analysis/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Python で音声解析 – 音声データの周波数特性を調べる方法</a></li>\n<li><a href=\"https://nehori.com/nikki/2020/12/06/post-22673/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">音の機械学習に向けたデータ前処理（python によるフーリエ変換・スペクトログラム） | ねほり.com</a></li>\n</ul>\n<h3 id=\"高速フーリエ変換\" style=\"position:relative;\"><a href=\"#%E9%AB%98%E9%80%9F%E3%83%95%E3%83%BC%E3%83%AA%E3%82%A8%E5%A4%89%E6%8F%9B\" aria-label=\"高速フーリエ変換 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>高速フーリエ変換</h3>\n<p>フーリエ変換をコンピュータで実行するにはそのためのアルゴリズムが必要です。</p>\n<p>コンピュータで高速に (離散) フーリエ変換を実行するためのアルゴリズムが、「高速フーリエ変換」です。</p>\n<h3 id=\"スペクトログラム\" style=\"position:relative;\"><a href=\"#%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0\" aria-label=\"スペクトログラム permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>スペクトログラム</h3>\n<p>音声データをフーリエ変換を利用して可視化したものがスペクトログラムです。</p>\n<p>参考: <a href=\"https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%9A%E3%82%AF%E3%83%88%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%A0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">スペクトログラム - Wikipedia</a></p>\n<h3 id=\"メル尺度\" style=\"position:relative;\"><a href=\"#%E3%83%A1%E3%83%AB%E5%B0%BA%E5%BA%A6\" aria-label=\"メル尺度 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>メル尺度</h3>\n<p>音声を人間の聴覚に基づいて変換する際の尺度として、メル尺度というものがあるそうです。</p>\n<p>参考: <a href=\"https://ja.wikipedia.org/wiki/%E3%83%A1%E3%83%AB%E5%B0%BA%E5%BA%A6\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">メル尺度 - Wikipedia</a></p>\n<h2 id=\"動画ファイルフォーマット\" style=\"position:relative;\"><a href=\"#%E5%8B%95%E7%94%BB%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88\" aria-label=\"動画ファイルフォーマット permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>動画ファイルフォーマット</h2>\n<p>続いて、動画ファイルフォーマットについてです。</p>\n<p>よく登場する</p>\n<ul>\n<li>MP4</li>\n<li>MOV</li>\n<li>H.264/MPEG-4 AVC</li>\n</ul>\n<p>について書いていきます。</p>\n<h3 id=\"mp4-mpeg-4-part-14\" style=\"position:relative;\"><a href=\"#mp4-mpeg-4-part-14\" aria-label=\"mp4 mpeg 4 part 14 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>MP4 (MPEG-4 Part 14)</h3>\n<p>MP4 自体は動画のフォーマットではなく、コンテナフォーマットです。</p>\n<p>内部に動画・音声・静止画・テキストを保存できます。</p>\n<p>参考: <a href=\"https://ja.wikipedia.org/wiki/MP4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">MP4 - Wikipedia</a></p>\n<h3 id=\"mov-quicktime-movie\" style=\"position:relative;\"><a href=\"#mov-quicktime-movie\" aria-label=\"mov quicktime movie permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>MOV (QuickTime Movie)</h3>\n<p>MOV は、Mac OS を中心に使われている QuickTime のコンテナフォーマットです。</p>\n<p>MP4 や MOV の中で保持される動画は、H.264/MPEG-4 AVC などの形式になります。</p>\n<h3 id=\"h264mpeg-4-avc\" style=\"position:relative;\"><a href=\"#h264mpeg-4-avc\" aria-label=\"h264mpeg 4 avc permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>H.264/MPEG-4 AVC</h3>\n<p>H.264 (または MPEG-4 AVC) は、動画圧縮規格 1 つです。</p>\n<p>参考: <a href=\"https://ja.wikipedia.org/wiki/H.264\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">H.264 - Wikipedia</a></p>\n<h2 id=\"ストリーミング\" style=\"position:relative;\"><a href=\"#%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0\" aria-label=\"ストリーミング permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>ストリーミング</h2>\n<p>最後に、音声や動画のストリーミングについてです。</p>\n<p>参考: <a href=\"https://ja.wikipedia.org/wiki/%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ストリーミング - Wikipedia</a></p>\n<h3 id=\"ストリーミングのプロトコル\" style=\"position:relative;\"><a href=\"#%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%81%AE%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB\" aria-label=\"ストリーミングのプロトコル permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>ストリーミングのプロトコル</h3>\n<p>ストリーミングに使われるプロトコル・API として、</p>\n<ul>\n<li>HLS (HTTP Live Streaming)</li>\n<li>WebRTC</li>\n<li>RTMP (Real Time Messaging Protocol)</li>\n</ul>\n<p>について書いていきます。</p>\n<h4 id=\"hls-http-live-streaming\" style=\"position:relative;\"><a href=\"#hls-http-live-streaming\" aria-label=\"hls http live streaming permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>HLS (HTTP Live Streaming)</h4>\n<p>Apple による HTTP ベースのストリーミング・プロトコルです。</p>\n<p>.m3u8 とい拡張子のファイルと、.ts という拡張子のファイルで実現されます。</p>\n<p>仕組みについては、以下のページが分かりやすいです。</p>\n<ul>\n<li><a href=\"https://blog.socialcast.jp/05/post-729/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">HLS とは？：ストリーミング配信を実現する技術 | 動画サイト運営ノウハウブログ by ソーシャルキャスト</a></li>\n</ul>\n<p>HLS 以外にも、HTTP ベースのストリーミングプロトコルとして MPEG-DASH があり、YouTube もこれらを使っていると書いている記事もありました。</p>\n<p>参考: <a href=\"https://www.phileweb.com/review/column/202101/23/1163.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">YouTube はなんでライブ配信が“1 対多”でもスムーズなの？ - PHILE WEB</a></p>\n<h3 id=\"webrtc\" style=\"position:relative;\"><a href=\"#webrtc\" aria-label=\"webrtc permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>WebRTC</h3>\n<p>WebRTC は、Web 標準の P2P マルチキャスト配信の API です。</p>\n<p>プロトコル自体は標準化されていないとのことです。</p>\n<p>Web 会議ツールの実装などで使えるプロトコルとしてよく名前が挙がります。</p>\n<p>(Zoom は WebRTC を使っていないそうです)</p>\n<h3 id=\"rtmp-real-time-messaging-protocol\" style=\"position:relative;\"><a href=\"#rtmp-real-time-messaging-protocol\" aria-label=\"rtmp real time messaging protocol permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>RTMP (Real Time Messaging Protocol)</h3>\n<p>IFTF で標準化されているストリーミングのプロトコルです。</p>\n<p>多くのブラウザは直接対応していません。</p>\n<p>ライブ配信などでよく使われる OBS (Open Broadcaster Software) は、RTMP を送出するツールのため、RTMP をサポートするサービスならどれでも利用可能なようです。</p>\n<p>参考: <a href=\"https://ja.wikipedia.org/wiki/Open_Broadcaster_Software\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Open Broadcaster Software - Wikipedia</a></p>","fields":{"slug":"/posts/audio-video-streaming-data-basics","tagSlugs":["/tag/media/"],"autoRecommendPosts":["image-file-format-basics","movie-processing-software","language-in-audio-data","media-and-xr-lonely-advent-calendar"]},"frontmatter":{"date":"2021-12-05T04:53:39.990Z","description":"音声・動画・ストリーミングについて、データフォーマットを起点に調べたことをまとめます。","tags":["media"],"title":"音声・動画・ストリーミングのデータの基本","socialImage":null,"recommendPosts":null}}},"pageContext":{"slug":"/posts/audio-video-streaming-data-basics"}},"staticQueryHashes":["251939775","3942705351","401334301"]}