mirror of
https://github.com/unshackle-dl/unshackle.git
synced 2026-11-13 12:35:05 +00:00
Deployed d12bf31b with MkDocs version: 1.6.1
This commit is contained in:
@@ -2175,6 +2175,17 @@
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#unshackle.core.tracks.Hybrid.align_rpu" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> align_rpu
|
||||
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
@@ -2252,6 +2263,50 @@
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#unshackle.core.tracks.Hybrid.measure_frames" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> measure_frames
|
||||
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#unshackle.core.tracks.Hybrid.dropped_leading_frames" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> dropped_leading_frames
|
||||
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#unshackle.core.tracks.Hybrid.generator_config" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> generator_config
|
||||
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#unshackle.core.tracks.Hybrid.measure_dv" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> measure_dv
|
||||
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
@@ -3670,6 +3725,17 @@
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#unshackle.core.tracks.Hybrid.align_rpu" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> align_rpu
|
||||
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
@@ -3747,6 +3813,50 @@
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#unshackle.core.tracks.Hybrid.measure_frames" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> measure_frames
|
||||
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#unshackle.core.tracks.Hybrid.dropped_leading_frames" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> dropped_leading_frames
|
||||
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#unshackle.core.tracks.Hybrid.generator_config" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> generator_config
|
||||
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li class="md-nav__item">
|
||||
<a href="#unshackle.core.tracks.Hybrid.measure_dv" class="md-nav__link">
|
||||
<span class="md-ellipsis">
|
||||
|
||||
<code class="doc-symbol doc-symbol-toc doc-symbol-method"></code> measure_dv
|
||||
|
||||
</span>
|
||||
</a>
|
||||
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
@@ -5943,7 +6053,8 @@ any existing data.</p>
|
||||
|
||||
<p>Takes the Dolby Vision and HDR10(+) streams out of the VideoTracks.
|
||||
It will then attempt to inject the Dolby Vision metadata layer to the HDR10(+) stream.
|
||||
If no DV track is available but HDR10+ is present, it will convert HDR10+ to DV.</p>
|
||||
If no DV track is available, it makes the DV from the HDR10+ metadata, or from the
|
||||
decoded video when there is no HDR10+ or no hdr10plus_tool.</p>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -5952,6 +6063,28 @@ If no DV track is available but HDR10+ is present, it will convert HDR10+ to DV.
|
||||
|
||||
|
||||
|
||||
<div class="doc doc-object doc-function">
|
||||
|
||||
|
||||
<h3 id="unshackle.core.tracks.Hybrid.align_rpu" class="doc doc-heading">
|
||||
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">align_rpu</span>
|
||||
|
||||
|
||||
<a href="#unshackle.core.tracks.Hybrid.align_rpu" class="headerlink" title="Permanent link">¶</a></h3>
|
||||
<div class="language-python doc-signature highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">align_rpu</span><span class="p">(</span><span class="n">base</span><span class="p">,</span> <span class="n">dv</span><span class="p">)</span>
|
||||
</span></code></pre></div>
|
||||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Shift the RPU so that it starts on the first frame of the base.</p>
|
||||
<p>--sample cuts each track on its own segment grid, so the DV track can start before or after the
|
||||
base. An RPU that starts early loses its first frames; one that starts late repeats its first frame.</p>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="doc doc-object doc-function">
|
||||
|
||||
|
||||
@@ -6111,6 +6244,91 @@ config.generate_dv_mode picks the L1 avg floor: v29 (about 2.4 nits, closest to
|
||||
|
||||
</div>
|
||||
|
||||
<div class="doc doc-object doc-function">
|
||||
|
||||
|
||||
<h3 id="unshackle.core.tracks.Hybrid.measure_frames" class="doc doc-heading">
|
||||
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">measure_frames</span>
|
||||
|
||||
|
||||
<a href="#unshackle.core.tracks.Hybrid.measure_frames" class="headerlink" title="Permanent link">¶</a></h3>
|
||||
<div class="language-python doc-signature highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">measure_frames</span><span class="p">(</span><span class="n">input_video</span><span class="p">,</span> <span class="n">crop</span><span class="p">)</span>
|
||||
</span></code></pre></div>
|
||||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Decode the whole video through MEASURE_GRAPH.</p>
|
||||
<p>Returns its frame_stats and the highest linear frame average (65535 = 10000 nits).</p>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="doc doc-object doc-function">
|
||||
|
||||
|
||||
<h3 id="unshackle.core.tracks.Hybrid.dropped_leading_frames" class="doc doc-heading">
|
||||
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">dropped_leading_frames</span>
|
||||
|
||||
|
||||
<a href="#unshackle.core.tracks.Hybrid.dropped_leading_frames" class="headerlink" title="Permanent link">¶</a></h3>
|
||||
<div class="language-python doc-signature highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">dropped_leading_frames</span><span class="p">(</span><span class="n">stream</span><span class="p">)</span>
|
||||
</span></code></pre></div>
|
||||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>How many frames at the head of a raw HEVC file the decoder gives no picture for.</p>
|
||||
<p>A file that starts on an open GOP holds frames that need the GOP before it.</p>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="doc doc-object doc-function">
|
||||
|
||||
|
||||
<h3 id="unshackle.core.tracks.Hybrid.generator_config" class="doc doc-heading">
|
||||
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">generator_config</span>
|
||||
|
||||
|
||||
<a href="#unshackle.core.tracks.Hybrid.generator_config" class="headerlink" title="Permanent link">¶</a></h3>
|
||||
<div class="language-python doc-signature highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">generator_config</span><span class="p">(</span><span class="n">measured_cll</span><span class="p">,</span> <span class="n">measured_fall</span><span class="p">)</span>
|
||||
</span></code></pre></div>
|
||||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>The dovi_tool generator config without its shots, for config.generate_dv_mode.</p>
|
||||
<p>Level 6 comes from the HDR10 track. The measured light levels fill only what the track does not state.</p>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="doc doc-object doc-function">
|
||||
|
||||
|
||||
<h3 id="unshackle.core.tracks.Hybrid.measure_dv" class="doc doc-heading">
|
||||
<code class="doc-symbol doc-symbol-heading doc-symbol-method"></code> <span class="doc doc-object-name doc-function-name">measure_dv</span>
|
||||
|
||||
|
||||
<a href="#unshackle.core.tracks.Hybrid.measure_dv" class="headerlink" title="Permanent link">¶</a></h3>
|
||||
<div class="language-python doc-signature highlight"><pre><span></span><code><span id="__span-0-1"><a id="__codelineno-0-1" name="__codelineno-0-1" href="#__codelineno-0-1"></a><span class="nf">measure_dv</span><span class="p">(</span><span class="n">crop</span><span class="o">=</span><span class="kc">None</span><span class="p">)</span>
|
||||
</span></code></pre></div>
|
||||
|
||||
<div class="doc doc-contents ">
|
||||
|
||||
<p>Generate a Dolby Vision RPU with L1 measured from the decoded video, one shot per scene cut.</p>
|
||||
<p>It measures HDR10.hevc, the file that gets the RPU, so the shots count the same frames. The first
|
||||
shot takes the leading frames that the decoder drops.</p>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
@@ -2396,7 +2396,7 @@ default. In other words, config only fills in options you did not set on the com
|
||||
<td><code>generate_dv</code></td>
|
||||
<td>bool</td>
|
||||
<td><code>false</code></td>
|
||||
<td>With <code>-r HYBRID</code>, make Dolby Vision from the HDR10+ metadata when a title has no DV track. Needs <code>hdr10plus_tool</code>. See <a href="../../../guide/downloading/#dolby-vision-from-hdr10">Dolby Vision from HDR10+</a>.</td>
|
||||
<td>With <code>-r HYBRID</code>, make Dolby Vision from the HDR10+ metadata or the decoded video when a title has no DV track. With <code>-r HDR10</code> or <code>-r HDR10P</code>, make it for that base and ignore a DV track. See <a href="../../../guide/downloading/#dolby-vision-without-a-dv-track">Dolby Vision without a DV track</a>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>proxy</code></td>
|
||||
@@ -2924,7 +2924,7 @@ Cantonese (<code>yue</code>) stays separate, so <code>cmn</code> and <code>yue</
|
||||
<p>Find the HDR10+ tracks that a service labels as HDR10. Before unshackle lists or selects tracks, it
|
||||
reads the first fragment of HEVC HDR10 tracks from DASH, HLS fMP4 and one-file sources. A track
|
||||
whose first frame carries HDR10+ (SMPTE ST 2094-40) metadata becomes <code>HDR10P</code>. Then <code>-r HDR10P</code>,
|
||||
<code>--list</code> and <a href="../../../guide/downloading/#dolby-vision-from-hdr10"><code>--generate-dv</code></a> use it.</p>
|
||||
<code>--list</code> and <a href="../../../guide/downloading/#dolby-vision-without-a-dv-track"><code>--generate-dv</code></a> use it.</p>
|
||||
<p>unshackle also probes HEVC Dolby Vision tracks. A DV track that carries HDR10+ keeps its <code>DV</code>
|
||||
range, so <code>-r DV</code> selects it, and <code>--list</code> shows it as <code>DV+HDR10P</code>. <code>-r HYBRID</code> uses it as the
|
||||
<a href="../../../guide/downloading/#colour-range">hybrid</a> of its resolution, with no base track. The
|
||||
@@ -2966,7 +2966,7 @@ remote downloads and to the REST API.</p>
|
||||
<ul>
|
||||
<li><strong>Type:</strong> <code>str</code> · <strong>Default:</strong> <code>v29</code></li>
|
||||
</ul>
|
||||
<p>How <a href="../../../guide/downloading/#dolby-vision-from-hdr10"><code>--generate-dv</code></a> sets the Level 1 brightness
|
||||
<p>How <a href="../../../guide/downloading/#dolby-vision-without-a-dv-track"><code>--generate-dv</code></a> sets the Level 1 brightness
|
||||
values of the Dolby Vision it makes from HDR10+. All modes make one shot per HDR10+ scene and keep the
|
||||
same peak and letterbox area. They differ in the scene average, which the TV uses to tone-map.</p>
|
||||
<table>
|
||||
@@ -2993,6 +2993,8 @@ same peak and letterbox area. They differ in the scene average, which the TV use
|
||||
</table>
|
||||
<div class="language-yaml highlight"><pre><span></span><code><span id="__span-14-1"><a id="__codelineno-14-1" name="__codelineno-14-1" href="#__codelineno-14-1"></a><span class="nt">generate_dv_mode</span><span class="p">:</span><span class="w"> </span><span class="l l-Scalar l-Scalar-Plain">v29</span>
|
||||
</span></code></pre></div>
|
||||
<p>Dolby Vision that unshackle measures from the decoded video uses its measured average in all modes.
|
||||
<code>v40</code> raises the lowest average to about 10 nits, and <code>legacy</code> is the same as <code>v29</code>.</p>
|
||||
<p>The setting applies on the machine that runs the hybrid step: the client for a remote download, the
|
||||
server for a REST API job.</p>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user