<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>H.265 | Tomokatsu Yukishita | yre.jp</title><link>https://yre.jp/tag/h.265/</link><atom:link href="https://yre.jp/tag/h.265/index.xml" rel="self" type="application/rss+xml"/><description>H.265</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>ja-JP</language><lastBuildDate>Sun, 05 Jun 2022 00:00:00 +0000</lastBuildDate><image><url>https://yre.jp/media/icon_hufbc159bd6ce6a866189b19a79c0d0f51_12846_512x512_fill_lanczos_center_3.png</url><title>H.265</title><link>https://yre.jp/tag/h.265/</link></image><item><title>M1 ProのMacBook Proでffmpegを使って4K H.265ハードウェアエンコード速度を検証【videotoolbox vs libx265】</title><link>https://yre.jp/post/m1mac_h265/</link><pubDate>Sun, 05 Jun 2022 00:00:00 +0000</pubDate><guid>https://yre.jp/post/m1mac_h265/</guid><description>&lt;p>M1 Pro搭載のMacBook ProにffmpegをインストールしたついでにMacのハードウェアエンコード性能を検証してみました。videotoolboxを使ったH.265ハードウェアエンコードと、ソフトウェアエンコード（libx265）の速度・画質・ファイルサイズを比較します。&lt;/p>
&lt;h2 id="検証環境">検証環境&lt;/h2>
&lt;p>M1 Pro を搭載した MacBook Pro 16インチで検証しました。&lt;/p>
&lt;p>
&lt;figure id="figure-使用したmacbook-proのスペック">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="M1 Pro搭載MacBook Pro 16インチのシステム情報画面。チップ、メモリ、ストレージのスペックが表示されている" srcset="
/media/m1mac_h265/32de22a71dada0d2cdd6b594740fab04_hub91ea23780590029ee6445e1701a2413_108307_a879ca34f60b23064b2ab11bfb70c424.webp 400w,
/media/m1mac_h265/32de22a71dada0d2cdd6b594740fab04_hub91ea23780590029ee6445e1701a2413_108307_f02dd5763ce6a47e5e2f0ad0842c6168.webp 760w,
/media/m1mac_h265/32de22a71dada0d2cdd6b594740fab04_hub91ea23780590029ee6445e1701a2413_108307_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yre.jp/media/m1mac_h265/32de22a71dada0d2cdd6b594740fab04_hub91ea23780590029ee6445e1701a2413_108307_a879ca34f60b23064b2ab11bfb70c424.webp"
width="570"
height="760"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
使用したMacBook Proのスペック
&lt;/figcaption>&lt;/figure>
&lt;/p>
&lt;h2 id="macのh265ハードウェアエンコーダーvideotoolbox">MacのH.265ハードウェアエンコーダー：videotoolbox&lt;/h2>
&lt;p>Macでのffmpegハードウェアエンコードは &lt;strong>videotoolbox&lt;/strong> が担当します。ffmpegのビルドオプションに &lt;code>--enable-videotoolbox&lt;/code> が含まれていれば利用可能です。&lt;/p>
&lt;p>Homebrewでインストールしたffmpegで確認すると、H.264 / H.265 / ProRes がそれぞれvideoToolbox対応になっていることがわかります。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">ffmpeg -codecs &lt;span class="p">|&lt;/span> grep tool
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl"> DEV.LS h264 H.264 / AVC (encoders: libx264 libx264rgb h264_videotoolbox )
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> DEV.L. hevc H.265 / HEVC (encoders: libx265 hevc_videotoolbox )
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> DEVIL. prores Apple ProRes (encoders: prores prores_aw prores_ks prores_videotoolbox )
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>H.265のハードウェアエンコーダーは &lt;code>hevc_videotoolbox&lt;/code> です。&lt;/p>
&lt;h2 id="検証1hevc_videotoolboxデフォルト設定">検証1：hevc_videotoolbox（デフォルト設定）&lt;/h2>
&lt;p>夜の港北インターチェンジで撮影した4K（3840×2160）動画でエンコードしてみます。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">ffmpeg -i 第三京浜&lt;span class="se">\ &lt;/span>港北インターチェンジ-最大4K.mov &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -c:v hevc_videotoolbox &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> hevc_videotoolbox_default.mp4
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>結果：&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl">frame= 1548 fps= 52 q=-0.0 Lsize= 22975kB time=00:00:51.66 bitrate=3642.7kbits/s speed=1.72x
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>speed=1.72x&lt;/code> — 51秒の4K動画を約30秒でエンコード完了。リアルタイム以上の速度です。&lt;/p>
&lt;p>
&lt;figure id="figure-デフォルト設定のエンコード結果ファイルサイズ">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="hevc_videotoolboxデフォルト設定でエンコードした結果のファイルサイズ比較。元動画から大幅に縮小されている" srcset="
/media/m1mac_h265/c105add4e030f01d18d102d177e3eaf2_hu56afc0848242f9a8bfe5205be13d5982_42381_c36c74b796e07f0c6f96422699493091.webp 400w,
/media/m1mac_h265/c105add4e030f01d18d102d177e3eaf2_hu56afc0848242f9a8bfe5205be13d5982_42381_c28ed2cc8e4351da97c0c673fb8050ab.webp 760w,
/media/m1mac_h265/c105add4e030f01d18d102d177e3eaf2_hu56afc0848242f9a8bfe5205be13d5982_42381_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yre.jp/media/m1mac_h265/c105add4e030f01d18d102d177e3eaf2_hu56afc0848242f9a8bfe5205be13d5982_42381_c36c74b796e07f0c6f96422699493091.webp"
width="760"
height="63"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
デフォルト設定のエンコード結果：ファイルサイズ
&lt;/figcaption>&lt;/figure>
&lt;/p>
&lt;p>ファイルサイズは大幅に削減されました。&lt;/p>
&lt;h3 id="デフォルト設定の画質">デフォルト設定の画質&lt;/h3>
&lt;p>
&lt;figure id="figure-デフォルト設定の画質モヤがかかった印象">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="hevc_videotoolboxデフォルト設定でエンコードした4K映像のキャプチャ。細部にモヤがかかった低品質な画質" srcset="
/media/m1mac_h265/000010-1_hu555ba04e6be6cfade5f5757fe67a7fcb_177487_72c1a7a392674bf8fd7efec9bb16fa5f.webp 400w,
/media/m1mac_h265/000010-1_hu555ba04e6be6cfade5f5757fe67a7fcb_177487_ba0eff34219ac96192fba7c404d79552.webp 760w,
/media/m1mac_h265/000010-1_hu555ba04e6be6cfade5f5757fe67a7fcb_177487_1200x1200_fit_q75_h2_lanczos.webp 1200w"
src="https://yre.jp/media/m1mac_h265/000010-1_hu555ba04e6be6cfade5f5757fe67a7fcb_177487_72c1a7a392674bf8fd7efec9bb16fa5f.webp"
width="760"
height="428"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
デフォルト設定の画質：モヤがかかった印象
&lt;/figcaption>&lt;/figure>
&lt;/p>
&lt;p>ファイルサイズに比例して画質は厳しめです。動きが速い映像では破綻が目立ちそうな印象。&lt;/p>
&lt;h2 id="検証2hevc_videotoolbox品質固定--qv-50">検証2：hevc_videotoolbox（品質固定 -q:v 50）&lt;/h2>
&lt;p>&lt;code>hevc_videotoolbox&lt;/code> では &lt;code>-q:v&lt;/code> オプション（0〜100、値が大きいほど高品質）で品質を固定できます。Apple Siliconで有効になったオプションで、参考: &lt;a href="https://git.ffmpeg.org/gitweb/ffmpeg.git/commit/efece4442f3f583f7d04f98ef5168dfd08eaca5c" target="_blank" rel="noopener">ffmpeg commit&lt;/a> / &lt;a href="https://stackoverflow.com/questions/64924728/optimally-using-hevc-videotoolbox-and-ffmpeg-on-osx" target="_blank" rel="noopener">Stack Overflow解説&lt;/a>。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">ffmpeg -i 第三京浜&lt;span class="se">\ &lt;/span>港北インターチェンジ-最大4K.mov &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -c:v hevc_videotoolbox &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -q:v &lt;span class="m">50&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> hevc_videotoolbox_q50.mp4
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>結果：&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl">frame= 1548 fps= 52 q=-0.0 Lsize= 174735kB time=00:00:51.66 bitrate=27703.6kbits/s speed=1.73x
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>速度はデフォルトとほぼ変わらず &lt;code>speed=1.73x&lt;/code>。ファイルサイズはかなり大きくなります。&lt;/p>
&lt;p>
&lt;figure id="figure-品質固定q50のエンコード結果ファイルサイズ">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="hevc_videotoolbox品質固定(q=50)のエンコード結果のファイルサイズ。デフォルトより大幅に大きいがlibx265より大きい" srcset="
/media/m1mac_h265/9c59858f75398b465c25070283c6cae8_hu56afc0848242f9a8bfe5205be13d5982_69826_ce506931ed8e74eed83dc7b557606daf.webp 400w,
/media/m1mac_h265/9c59858f75398b465c25070283c6cae8_hu56afc0848242f9a8bfe5205be13d5982_69826_39ccb91d1e8f0bf802a6034548a2d4fc.webp 760w,
/media/m1mac_h265/9c59858f75398b465c25070283c6cae8_hu56afc0848242f9a8bfe5205be13d5982_69826_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yre.jp/media/m1mac_h265/9c59858f75398b465c25070283c6cae8_hu56afc0848242f9a8bfe5205be13d5982_69826_ce506931ed8e74eed83dc7b557606daf.webp"
width="760"
height="63"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
品質固定(q=50)のエンコード結果：ファイルサイズ
&lt;/figcaption>&lt;/figure>
&lt;/p>
&lt;h3 id="品質固定-q50-の画質">品質固定 (q=50) の画質&lt;/h3>
&lt;p>
&lt;figure id="figure-品質固定q50の画質なかなかいい仕上がり">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="hevc_videotoolbox品質固定(q=50)でエンコードした4K映像のキャプチャ。デフォルトより鮮明で破綻がほとんど見られない" srcset="
/media/m1mac_h265/000010-2_hu0b41f51119533274c41971990663251f_190730_79d8cfacc815e99f0654a9e3c62b76a4.webp 400w,
/media/m1mac_h265/000010-2_hu0b41f51119533274c41971990663251f_190730_6703885ec0691d89e3587afb61fcb3a2.webp 760w,
/media/m1mac_h265/000010-2_hu0b41f51119533274c41971990663251f_190730_1200x1200_fit_q75_h2_lanczos.webp 1200w"
src="https://yre.jp/media/m1mac_h265/000010-2_hu0b41f51119533274c41971990663251f_190730_79d8cfacc815e99f0654a9e3c62b76a4.webp"
width="760"
height="428"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
品質固定(q=50)の画質：なかなかいい仕上がり
&lt;/figcaption>&lt;/figure>
&lt;/p>
&lt;p>画面全体が大きく動くシーンでないためか、ほぼ破綻なし。なかなかいい仕上がりです。&lt;/p>
&lt;h2 id="検証3libx265ソフトウェアエンコード">検証3：libx265（ソフトウェアエンコード）&lt;/h2>
&lt;p>比較としてソフトウェアエンコードも試します。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">ffmpeg -i ./第三京浜&lt;span class="se">\ &lt;/span>港北インターチェンジ-最大4K.mov &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -c:v libx265 &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -crf &lt;span class="m">28&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -preset fast &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> libx265.mp4
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;strong>結果：&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-text" data-lang="text">&lt;span class="line">&lt;span class="cl">frame= 1548 fps=3.5 q=32.9 Lsize= 24886kB time=00:00:51.66 bitrate=3945.5kbits/s speed=0.116x
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>speed=0.116x&lt;/code> — 51秒の動画のエンコードに約7分半かかりました。&lt;/p>
&lt;p>
&lt;figure id="figure-libx265のエンコード結果驚異的な圧縮率">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="libx265ソフトウェアエンコードの結果ファイルサイズ。hevc_videotoolboxデフォルト設定に近いサイズながら高画質" srcset="
/media/m1mac_h265/fd71711d4df45fd8f6bc1be6e7c91c2c-1024x72_hueadf9a4ad94d94f939d3fc0c74996698_30400_9694e18f7ad3a248ac4a64bd51d798d1.webp 400w,
/media/m1mac_h265/fd71711d4df45fd8f6bc1be6e7c91c2c-1024x72_hueadf9a4ad94d94f939d3fc0c74996698_30400_1fda8349d7b5efa92503c5b1fd75cdd0.webp 760w,
/media/m1mac_h265/fd71711d4df45fd8f6bc1be6e7c91c2c-1024x72_hueadf9a4ad94d94f939d3fc0c74996698_30400_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://yre.jp/media/m1mac_h265/fd71711d4df45fd8f6bc1be6e7c91c2c-1024x72_hueadf9a4ad94d94f939d3fc0c74996698_30400_9694e18f7ad3a248ac4a64bd51d798d1.webp"
width="760"
height="53"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
libx265のエンコード結果：驚異的な圧縮率
&lt;/figcaption>&lt;/figure>
&lt;/p>
&lt;p>
&lt;figure id="figure-libx265の画質文句なしのクオリティ">
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="libx265でエンコードした4K映像のキャプチャ。細部まで鮮明で高画質な仕上がり" srcset="
/media/m1mac_h265/000010-3_hud580602536bdf502747be7b87f8e8cea_188504_5b0e8699dc24deece550a5edd834cd0a.webp 400w,
/media/m1mac_h265/000010-3_hud580602536bdf502747be7b87f8e8cea_188504_78cf45620bf0f01102379c35448ebfb5.webp 760w,
/media/m1mac_h265/000010-3_hud580602536bdf502747be7b87f8e8cea_188504_1200x1200_fit_q75_h2_lanczos.webp 1200w"
src="https://yre.jp/media/m1mac_h265/000010-3_hud580602536bdf502747be7b87f8e8cea_188504_5b0e8699dc24deece550a5edd834cd0a.webp"
width="760"
height="428"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;figcaption>
libx265の画質：文句なしのクオリティ
&lt;/figcaption>&lt;/figure>
&lt;/p>
&lt;p>ファイルサイズはデフォルトのhevc_videotoolboxとほぼ同等でありながら、画質は文句なしのレベルです。&lt;/p>
&lt;h2 id="3手法の比較まとめ">3手法の比較まとめ&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>エンコーダー&lt;/th>
&lt;th>速度&lt;/th>
&lt;th>ファイルサイズ&lt;/th>
&lt;th>画質&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>hevc_videotoolbox（デフォルト）&lt;/td>
&lt;td>&lt;strong>1.72x&lt;/strong> ⚡&lt;/td>
&lt;td>約22MB（小）&lt;/td>
&lt;td>△ モヤがかかる&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>hevc_videotoolbox（-q:v 50）&lt;/td>
&lt;td>&lt;strong>1.73x&lt;/strong> ⚡&lt;/td>
&lt;td>約171MB（大）&lt;/td>
&lt;td>○ 十分実用的&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>libx265（-crf 28 -preset fast）&lt;/td>
&lt;td>0.116x&lt;/td>
&lt;td>約24MB（小）&lt;/td>
&lt;td>◎ 高画質&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>ハードウェアエンコードはソフトウェアエンコードの&lt;strong>約15倍高速&lt;/strong>です。なお、エンコード中のCPU占有率は 30〜50% 程度にとどまっていました。&lt;/p>
&lt;h2 id="まとめ用途別の使い分け">まとめ：用途別の使い分け&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>配信・急ぎの書き出し&lt;/strong> → &lt;code>hevc_videotoolbox -q:v 50&lt;/code>：速くて十分な画質&lt;/li>
&lt;li>&lt;strong>画質最優先・時間に余裕がある&lt;/strong> → &lt;code>libx265 -crf 28&lt;/code>：小さいファイルで高画質&lt;/li>
&lt;li>&lt;strong>とにかく速くファイルサイズを減らしたい&lt;/strong> → &lt;code>hevc_videotoolbox&lt;/code>（デフォルト）：画質は妥協が必要&lt;/li>
&lt;/ul>
&lt;p>M1 Pro のvideoToolboxは4Kリアルタイムエンコードも余裕でこなす十分な性能を持っています。用途に合わせて使い分けるのがおすすめです。&lt;/p></description></item></channel></rss>