Administration native sur le Mac, réencodage sélectif et aide intégrée

- 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
This commit is contained in:
FabriceandClaude Opus 5.5 committed 2026-10-19 05:32:05 +00:00
1 parent b54ae69b19
commit ada3d76f50
38 files changed
+1067 -264

No files matched your search

+25
View File
@@ -121,3 +121,28 @@ def test_deuxieme_passage_ne_refait_rien(site_test, capsys):
sortie = capsys.readouterr().out
assert "Aucun nouvel encodage" in sortie
assert "0 réduite(s)" in sortie
def test_reencodage_selon_reglages(site_test):
"""Les réglages relus dans les vidéos ; seule la version dont les réglages
ont changé est refaite, et rien quand ils n'ont pas changé."""
from rtg import video
racine, voyage = site_test
cfg = config.reglages_voyage(str(voyage), config.reglages_site(str(racine)))
a = sources.analyser(str(voyage), cfg)
assert video.compresser(str(voyage), cfg, a)
hd, sd = video.sorties(str(voyage), a.videos[0])
assert video.reglages_fichier(hd) == ("HEVC", 26.0)
assert video.reglages_fichier(sd) == ("H.264", 25.0)
dates = (os.path.getmtime(hd), os.path.getmtime(sd))
config.modifier_toml(str(voyage / "voyage.toml"), {"video": {"crf_hevc": 30}})
cfg = config.reglages_voyage(str(voyage), config.reglages_site(str(racine)))
assert video.compresser(str(voyage), cfg, a, refaire="differentes")
assert video.reglages_fichier(hd) == ("HEVC", 30.0)
assert os.path.getmtime(sd) == dates[1] # 720p inchangé
dates = (os.path.getmtime(hd), os.path.getmtime(sd))
assert video.compresser(str(voyage), cfg, a, refaire="differentes")
assert (os.path.getmtime(hd), os.path.getmtime(sd)) == dates # rien à refaire
bilan = video.bilan_compression(str(voyage))
assert bilan["1080p"]["reglages"] == {("HEVC", 30.0): 1}