- admin.sh : RTG lancé directement sur le Mac (plus de conteneur), nginx joint l'interface par host.docker.internal:8765 ; variante conteneur conservée (admin-docker.sh, docker-compose-conteneur.yml) - Compression : réglages lus dans les fichiers (CRF, codec), refaire seulement le 1080p ou le 720p, seulement si les réglages ont changé ; réglages vidéo propres à chaque voyage ; « Compression actuelle » affichée - Plus d'arrêt automatique après 2 h d'inactivité (--arret-inactif, 0 par défaut) ; arrêt propre qui attend la fin des encodages en cours - Aide contextuelle dans l'interface (rtg/interface/aide) ; README centré sur l'installation et la mise en place - Cœurs attribués au conteneur détectés (cgroup) et signalés Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Mf2kATMtqVABHSYdxJMnim
56 lines
3.4 KiB
HTML
56 lines
3.4 KiB
HTML
<div id="compression" class="encart compression" hx-get="{{ base }}/voyage/compression?v={{ v.chemin|url }}"
|
||
hx-trigger="tache-finie from:body" hx-swap="outerHTML">
|
||
<h3>Compression des vidéos</h3>
|
||
<table>
|
||
<thead><tr><th></th><th>Vidéos actuelles</th><th>Prochains encodages</th></tr></thead>
|
||
<tbody>
|
||
{% for version in ("1080p", "720p") %}
|
||
{% set b = bilan[version] %}{% set c = cibles[version] %}
|
||
<tr>
|
||
<td><strong>{{ version }}</strong></td>
|
||
<td>
|
||
{% if not b.total %}<span class="discret">aucune</span>
|
||
{% else %}
|
||
{% for reg, n in b.reglages.most_common() %}
|
||
<div>{{ reg[0] }}{% if reg[1] is not none %} CRF {{ reg[1]|crf }}{% else %} <span class="discret">(réglages non inscrits : encodeur matériel ?)</span>{% endif %}
|
||
<span class="discret">× {{ n }}</span>
|
||
{% if reg == c %}<span class="pastille ok">conforme</span>{% else %}<span class="pastille attention">différent</span>{% endif %}
|
||
</div>
|
||
{% endfor %}
|
||
<div class="discret">{{ b.total }} vidéo{{ 's' if b.total > 1 }}{% if b.lues < b.total %} · échantillon de {{ b.lues }}{% endif %}</div>
|
||
{% endif %}
|
||
</td>
|
||
<td>{{ c[0] }}{% if c[1] is not none %} CRF {{ c[1]|crf }}{% else %} (encodeur matériel){% endif %}</td>
|
||
</tr>
|
||
{% endfor %}
|
||
</tbody>
|
||
</table>
|
||
<p class="aide">Qualité {{ noms_qualites.get(cfg.video.qualite, cfg.video.qualite) }}, vitesse {{ cfg.video.preset }},
|
||
encodeur {{ "matériel" if p.encodeur == "vt" else "processeur" }} :
|
||
{{ "réglages propres à ce voyage" if propre else "réglages du site" }}.
|
||
Plus le CRF est élevé, plus les fichiers sont légers, et moins la qualité est bonne.</p>
|
||
|
||
<details {{ 'open' if propre }}>
|
||
<summary>Réglages vidéo propres à ce voyage</summary>
|
||
<form class="formulaire" hx-post="{{ base }}/voyage/video" hx-target="#compression" hx-swap="outerHTML">
|
||
<input type="hidden" name="v" value="{{ v.chemin }}">
|
||
<label>Qualité
|
||
<select name="qualite">
|
||
<option value="">Comme le site ({{ noms_qualites.get(site.video.qualite, site.video.qualite) }})</option>
|
||
{% for q in qualites %}<option value="{{ q }}" {{ 'selected' if propre.qualite == q }}>{{ noms_qualites[q]|capitalize }} (CRF {{ qualites[q].crf_hevc }} / {{ qualites[q].crf_h264 }})</option>{% endfor %}
|
||
</select></label>
|
||
<label>Vitesse de l'encodeur
|
||
<select name="preset">
|
||
<option value="">Comme le site ({{ site.video.preset }})</option>
|
||
{% for pr in presets %}<option {{ 'selected' if propre.preset == pr }}>{{ pr }}</option>{% endfor %}
|
||
</select>
|
||
<span class="aide">Plus lent = un peu plus léger à qualité égale.</span></label>
|
||
<label>CRF 1080p (HEVC), pour un essai
|
||
<input type="number" name="crf_hevc" min="0" max="51" value="{{ propre.crf_hevc if propre.crf_hevc is defined }}" placeholder="selon la qualité ({{ qualites.get(cfg.video.qualite, qualites.equilibree).crf_hevc }})"></label>
|
||
<label>CRF 720p (H.264), pour un essai
|
||
<input type="number" name="crf_h264" min="0" max="51" value="{{ propre.crf_h264 if propre.crf_h264 is defined }}" placeholder="selon la qualité ({{ qualites.get(cfg.video.qualite, qualites.equilibree).crf_h264 }})"></label>
|
||
<p><button class="principal">Enregistrer</button> <span class="ok">{{ message }}</span></p>
|
||
</form>
|
||
</details>
|
||
</div>
|