Files
ripster/site/pipeline/encoding/index.html
2026-03-05 11:04:20 +00:00

139 lines
68 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html><html lang=de class=no-js> <head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><meta name=description content="Halbautomatische Disc-Ripping-Plattform für DVDs & Blu-rays mit HandBrake-Encoding"><meta name=author content=Michael><link href=https://mboehmlaender.github.io/ripster/pipeline/encoding/ rel=canonical><link href=../workflow/ rel=prev><link href=../playlist-analysis/ rel=next><link rel=icon href=../../assets/images/favicon.png><meta name=generator content="mkdocs-1.6.1, mkdocs-material-9.7.0"><title>Encode-Planung & Track-Auswahl - Ripster</title><link rel=stylesheet href=../../assets/stylesheets/main.618322db.min.css><link rel=stylesheet href=../../assets/stylesheets/palette.ab4e12ef.min.css><link rel=preconnect href=https://fonts.gstatic.com crossorigin><link rel=stylesheet href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback"><style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style><link rel=stylesheet href=../../stylesheets/extra.css><script>__md_scope=new URL("../..",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script></head> <body dir=ltr data-md-color-scheme=default data-md-color-primary=deep-purple data-md-color-accent=purple> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer autocomplete=off> <input class=md-toggle data-md-toggle=search type=checkbox id=__search autocomplete=off> <label class=md-overlay for=__drawer></label> <div data-md-component=skip> <a href=#encode-planung-track-auswahl class=md-skip> Zum Inhalt </a> </div> <div data-md-component=announce> </div> <div data-md-color-scheme=default data-md-component=outdated hidden> </div> <header class="md-header md-header--shadow md-header--lifted" data-md-component=header> <nav class="md-header__inner md-grid" aria-label=Kopfzeile> <a href=../.. title=Ripster class="md-header__button md-logo" aria-label=Ripster data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 14a2 2 0 0 1-2-2c0-1.11.89-2 2-2s2 .89 2 2a2 2 0 0 1-2 2m0-10a8 8 0 0 0-8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0-8-8"/></svg> </a> <label class="md-header__button md-icon" for=__drawer> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg> </label> <div class=md-header__title data-md-component=header-title> <div class=md-header__ellipsis> <div class=md-header__topic> <span class=md-ellipsis> Ripster </span> </div> <div class=md-header__topic data-md-component=header-topic> <span class=md-ellipsis> Encode-Planung & Track-Auswahl </span> </div> </div> </div> <form class=md-header__option data-md-component=palette> <input class=md-option data-md-color-media data-md-color-scheme=default data-md-color-primary=deep-purple data-md-color-accent=purple aria-label="Dunkelmodus aktivieren" type=radio name=__palette id=__palette_0> <label class="md-header__button md-icon" title="Dunkelmodus aktivieren" for=__palette_1 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> <input class=md-option data-md-color-media data-md-color-scheme=slate data-md-color-primary=deep-purple data-md-color-accent=purple aria-label="Hellmodus aktivieren" type=radio name=__palette id=__palette_1> <label class="md-header__button md-icon" title="Hellmodus aktivieren" for=__palette_0 hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg> </label> </form> <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script> <label class="md-header__button md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> </label> <div class=md-search data-md-component=search role=dialog> <label class=md-search__overlay for=__search></label> <div class=md-search__inner role=search> <form class=md-search__form name=search> <input type=text class=md-search__input name=query aria-label=Suche placeholder=Suche autocapitalize=off autocorrect=off autocomplete=off spellcheck=false data-md-component=search-query required> <label class="md-search__icon md-icon" for=__search> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg> </label> <nav class=md-search__options aria-label=Suche> <button type=reset class="md-search__icon md-icon" title=Zurücksetzen aria-label=Zurücksetzen tabindex=-1> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg> </button> </nav> <div class=md-search__suggest data-md-component=search-suggest></div> </form> <div class=md-search__output> <div class=md-search__scrollwrap tabindex=0 data-md-scrollfix> <div class=md-search-result data-md-component=search-result> <div class=md-search-result__meta> Suche wird initialisiert </div> <ol class=md-search-result__list role=presentation></ol> </div> </div> </div> </div> </div> <div class=md-header__source> <a href=https://github.com/mboehmlaender/ripster title="Zum Repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> ripster </div> </a> </div> </nav> <nav class=md-tabs aria-label=Hauptnavigation data-md-component=tabs> <div class=md-grid> <ul class=md-tabs__list> <li class=md-tabs__item> <a href=../.. class=md-tabs__link> Home </a> </li> <li class=md-tabs__item> <a href=../../getting-started/ class=md-tabs__link> Erste Schritte </a> </li> <li class=md-tabs__item> <a href=../../architecture/ class=md-tabs__link> Architektur </a> </li> <li class="md-tabs__item md-tabs__item--active"> <a href=../ class=md-tabs__link> Pipeline </a> </li> <li class=md-tabs__item> <a href=../../api/ class=md-tabs__link> API-Referenz </a> </li> <li class=md-tabs__item> <a href=../../configuration/ class=md-tabs__link> Konfiguration </a> </li> <li class=md-tabs__item> <a href=../../deployment/ class=md-tabs__link> Deployment </a> </li> <li class=md-tabs__item> <a href=../../tools/ class=md-tabs__link> Externe Tools </a> </li> </ul> </div> </nav> </header> <div class=md-container data-md-component=container> <main class=md-main data-md-component=main> <div class="md-main__inner md-grid"> <div class="md-sidebar md-sidebar--primary" data-md-component=sidebar data-md-type=navigation> <div class=md-sidebar__scrollwrap> <div class=md-sidebar__inner> <nav class="md-nav md-nav--primary md-nav--lifted md-nav--integrated" aria-label=Navigation data-md-level=0> <label class=md-nav__title for=__drawer> <a href=../.. title=Ripster class="md-nav__button md-logo" aria-label=Ripster data-md-component=logo> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M12 14a2 2 0 0 1-2-2c0-1.11.89-2 2-2s2 .89 2 2a2 2 0 0 1-2 2m0-10a8 8 0 0 0-8 8 8 8 0 0 0 8 8 8 8 0 0 0 8-8 8 8 0 0 0-8-8"/></svg> </a> Ripster </label> <div class=md-nav__source> <a href=https://github.com/mboehmlaender/ripster title="Zum Repository" class=md-source data-md-component=source> <div class="md-source__icon md-icon"> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </div> <div class=md-source__repository> ripster </div> </a> </div> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../.. class=md-nav__link> <span class=md-ellipsis> Home </span> </a> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_2> <div class="md-nav__link md-nav__container"> <a href=../../getting-started/ class="md-nav__link "> <span class=md-ellipsis> Erste Schritte </span> </a> <label class="md-nav__link " for=__nav_2 id=__nav_2_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_2_label aria-expanded=false> <label class=md-nav__title for=__nav_2> <span class="md-nav__icon md-icon"></span> Erste Schritte </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../getting-started/prerequisites/ class=md-nav__link> <span class=md-ellipsis> Voraussetzungen </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/installation/ class=md-nav__link> <span class=md-ellipsis> Installation </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/configuration/ class=md-nav__link> <span class=md-ellipsis> Konfiguration </span> </a> </li> <li class=md-nav__item> <a href=../../getting-started/quickstart/ class=md-nav__link> <span class=md-ellipsis> Schnellstart </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_3> <div class="md-nav__link md-nav__container"> <a href=../../architecture/ class="md-nav__link "> <span class=md-ellipsis> Architektur </span> </a> <label class="md-nav__link " for=__nav_3 id=__nav_3_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_3_label aria-expanded=false> <label class=md-nav__title for=__nav_3> <span class="md-nav__icon md-icon"></span> Architektur </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../architecture/overview/ class=md-nav__link> <span class=md-ellipsis> Übersicht </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/backend/ class=md-nav__link> <span class=md-ellipsis> Backend-Services </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/frontend/ class=md-nav__link> <span class=md-ellipsis> Frontend-Komponenten </span> </a> </li> <li class=md-nav__item> <a href=../../architecture/database/ class=md-nav__link> <span class=md-ellipsis> Datenbank </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--active md-nav__item--section md-nav__item--nested"> <input class="md-nav__toggle md-toggle " type=checkbox id=__nav_4 checked> <div class="md-nav__link md-nav__container"> <a href=../ class="md-nav__link "> <span class=md-ellipsis> Pipeline </span> </a> <label class="md-nav__link " for=__nav_4 id=__nav_4_label tabindex> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_4_label aria-expanded=true> <label class=md-nav__title for=__nav_4> <span class="md-nav__icon md-icon"></span> Pipeline </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../workflow/ class=md-nav__link> <span class=md-ellipsis> Workflow & Zustände </span> </a> </li> <li class="md-nav__item md-nav__item--active"> <input class="md-nav__toggle md-toggle" type=checkbox id=__toc> <label class="md-nav__link md-nav__link--active" for=__toc> <span class=md-ellipsis> Encode-Planung & Track-Auswahl </span> <span class="md-nav__icon md-icon"></span> </label> <a href=./ class="md-nav__link md-nav__link--active"> <span class=md-ellipsis> Encode-Planung & Track-Auswahl </span> </a> <nav class="md-nav md-nav--secondary" aria-label=Inhaltsverzeichnis> <label class=md-nav__title for=__toc> <span class="md-nav__icon md-icon"></span> Inhaltsverzeichnis </label> <ul class=md-nav__list data-md-component=toc data-md-scrollfix> <li class=md-nav__item> <a href=#ablauf-im-pipeline-kontext class=md-nav__link> <span class=md-ellipsis> Ablauf im Pipeline-Kontext </span> </a> </li> <li class=md-nav__item> <a href=#phase-1-pre-rip-track-scan class=md-nav__link> <span class=md-ellipsis> Phase 1: Pre-Rip Track-Scan </span> </a> </li> <li class=md-nav__item> <a href=#phase-2-track-selektor-regeln-buildtrackselectors class=md-nav__link> <span class=md-ellipsis> Phase 2: Track-Selektor-Regeln (buildTrackSelectors) </span> </a> </li> <li class=md-nav__item> <a href=#phase-3-automatische-vorauswahl-selecttrackids class=md-nav__link> <span class=md-ellipsis> Phase 3: Automatische Vorauswahl (selectTrackIds) </span> </a> <nav class=md-nav aria-label="Phase 3: Automatische Vorauswahl (selectTrackIds)"> <ul class=md-nav__list> <li class=md-nav__item> <a href=#audio-tracks class=md-nav__link> <span class=md-ellipsis> Audio-Tracks </span> </a> </li> <li class=md-nav__item> <a href=#untertitel-tracks class=md-nav__link> <span class=md-ellipsis> Untertitel-Tracks </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=#phase-4-encoder-aktion-bestimmen-resolveaudioencoderaction class=md-nav__link> <span class=md-ellipsis> Phase 4: Encoder-Aktion bestimmen (resolveAudioEncoderAction) </span> </a> </li> <li class=md-nav__item> <a href=#phase-5-encode-plan-struktur class=md-nav__link> <span class=md-ellipsis> Phase 5: Encode-Plan-Struktur </span> </a> </li> <li class=md-nav__item> <a href=#phase-6-benutzer-review-im-frontend-mediainforeviewpanel class=md-nav__link> <span class=md-ellipsis> Phase 6: Benutzer-Review im Frontend (MediaInfoReviewPanel) </span> </a> </li> <li class=md-nav__item> <a href=#phase-7-benutzer-auswahl-anwenden-applymanualtrackselectiontoplan class=md-nav__link> <span class=md-ellipsis> Phase 7: Benutzer-Auswahl anwenden (applyManualTrackSelectionToPlan) </span> </a> </li> <li class=md-nav__item> <a href=#phase-8-handbrake-cli-befehl class=md-nav__link> <span class=md-ellipsis> Phase 8: HandBrake-CLI-Befehl </span> </a> </li> <li class=md-nav__item> <a href=#dateiname-template class=md-nav__link> <span class=md-ellipsis> Dateiname-Template </span> </a> </li> <li class=md-nav__item> <a href=#re-encoding class=md-nav__link> <span class=md-ellipsis> Re-Encoding </span> </a> </li> </ul> </nav> </li> <li class=md-nav__item> <a href=../playlist-analysis/ class=md-nav__link> <span class=md-ellipsis> Playlist-Analyse </span> </a> </li> <li class=md-nav__item> <a href=../post-encode-scripts/ class=md-nav__link> <span class=md-ellipsis> Post-Encode-Skripte </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_5> <div class="md-nav__link md-nav__container"> <a href=../../api/ class="md-nav__link "> <span class=md-ellipsis> API-Referenz </span> </a> <label class="md-nav__link " for=__nav_5 id=__nav_5_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_5_label aria-expanded=false> <label class=md-nav__title for=__nav_5> <span class="md-nav__icon md-icon"></span> API-Referenz </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../api/pipeline/ class=md-nav__link> <span class=md-ellipsis> Pipeline API </span> </a> </li> <li class=md-nav__item> <a href=../../api/settings/ class=md-nav__link> <span class=md-ellipsis> Settings API </span> </a> </li> <li class=md-nav__item> <a href=../../api/history/ class=md-nav__link> <span class=md-ellipsis> History API </span> </a> </li> <li class=md-nav__item> <a href=../../api/websocket/ class=md-nav__link> <span class=md-ellipsis> WebSocket Events </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_6> <div class="md-nav__link md-nav__container"> <a href=../../configuration/ class="md-nav__link "> <span class=md-ellipsis> Konfiguration </span> </a> <label class="md-nav__link " for=__nav_6 id=__nav_6_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_6_label aria-expanded=false> <label class=md-nav__title for=__nav_6> <span class="md-nav__icon md-icon"></span> Konfiguration </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../configuration/settings-reference/ class=md-nav__link> <span class=md-ellipsis> Alle Einstellungen </span> </a> </li> <li class=md-nav__item> <a href=../../configuration/environment/ class=md-nav__link> <span class=md-ellipsis> Umgebungsvariablen </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_7> <div class="md-nav__link md-nav__container"> <a href=../../deployment/ class="md-nav__link "> <span class=md-ellipsis> Deployment </span> </a> <label class="md-nav__link " for=__nav_7 id=__nav_7_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_7_label aria-expanded=false> <label class=md-nav__title for=__nav_7> <span class="md-nav__icon md-icon"></span> Deployment </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../deployment/development/ class=md-nav__link> <span class=md-ellipsis> Entwicklungsumgebung </span> </a> </li> <li class=md-nav__item> <a href=../../deployment/production/ class=md-nav__link> <span class=md-ellipsis> Produktion </span> </a> </li> </ul> </nav> </li> <li class="md-nav__item md-nav__item--nested"> <input class="md-nav__toggle md-toggle md-toggle--indeterminate" type=checkbox id=__nav_8> <div class="md-nav__link md-nav__container"> <a href=../../tools/ class="md-nav__link "> <span class=md-ellipsis> Externe Tools </span> </a> <label class="md-nav__link " for=__nav_8 id=__nav_8_label tabindex=0> <span class="md-nav__icon md-icon"></span> </label> </div> <nav class=md-nav data-md-level=1 aria-labelledby=__nav_8_label aria-expanded=false> <label class=md-nav__title for=__nav_8> <span class="md-nav__icon md-icon"></span> Externe Tools </label> <ul class=md-nav__list data-md-scrollfix> <li class=md-nav__item> <a href=../../tools/makemkv/ class=md-nav__link> <span class=md-ellipsis> MakeMKV </span> </a> </li> <li class=md-nav__item> <a href=../../tools/handbrake/ class=md-nav__link> <span class=md-ellipsis> HandBrake </span> </a> </li> <li class=md-nav__item> <a href=../../tools/mediainfo/ class=md-nav__link> <span class=md-ellipsis> MediaInfo </span> </a> </li> </ul> </nav> </li> </ul> </nav> </div> </div> </div> <div class=md-content data-md-component=content> <article class="md-content__inner md-typeset"> <h1 id=encode-planung-track-auswahl>Encode-Planung &amp; Track-Auswahl<a class=headerlink href=#encode-planung-track-auswahl title="Permanent link">&para;</a></h1> <p><code>encodePlan.js</code> analysiert die HandBrake-Scan-Ausgabe, wählt Audio- und Untertitelspuren anhand von Regeln vor und erstellt einen vollständigen Encode-Plan für die Benutzer-Review.</p> <hr> <h2 id=ablauf-im-pipeline-kontext>Ablauf im Pipeline-Kontext<a class=headerlink href=#ablauf-im-pipeline-kontext title="Permanent link">&para;</a></h2> <div class="language-text highlight"><pre><span></span><code><span id=__span-0-1><a id=__codelineno-0-1 name=__codelineno-0-1 href=#__codelineno-0-1></a>RIPPING abgeschlossen (oder Pre-Rip-Scan)
</span><span id=__span-0-2><a id=__codelineno-0-2 name=__codelineno-0-2 href=#__codelineno-0-2></a>
</span><span id=__span-0-3><a id=__codelineno-0-3 name=__codelineno-0-3 href=#__codelineno-0-3></a>HandBrake --scan (alle Titel &amp; Tracks einlesen)
</span><span id=__span-0-4><a id=__codelineno-0-4 name=__codelineno-0-4 href=#__codelineno-0-4></a>
</span><span id=__span-0-5><a id=__codelineno-0-5 name=__codelineno-0-5 href=#__codelineno-0-5></a>buildTrackSelectors() ← Regeln aus Einstellungen ableiten
</span><span id=__span-0-6><a id=__codelineno-0-6 name=__codelineno-0-6 href=#__codelineno-0-6></a>
</span><span id=__span-0-7><a id=__codelineno-0-7 name=__codelineno-0-7 href=#__codelineno-0-7></a>selectTrackIds() ← Tracks anhand Regeln vorauswählen
</span><span id=__span-0-8><a id=__codelineno-0-8 name=__codelineno-0-8 href=#__codelineno-0-8></a>
</span><span id=__span-0-9><a id=__codelineno-0-9 name=__codelineno-0-9 href=#__codelineno-0-9></a>resolveAudioEncoderAction() ← Encoder-Aktion pro Track bestimmen
</span><span id=__span-0-10><a id=__codelineno-0-10 name=__codelineno-0-10 href=#__codelineno-0-10></a>
</span><span id=__span-0-11><a id=__codelineno-0-11 name=__codelineno-0-11 href=#__codelineno-0-11></a>buildDiscScanReview() ← Vollständigen Encode-Plan erstellen
</span><span id=__span-0-12><a id=__codelineno-0-12 name=__codelineno-0-12 href=#__codelineno-0-12></a>
</span><span id=__span-0-13><a id=__codelineno-0-13 name=__codelineno-0-13 href=#__codelineno-0-13></a>READY_TO_ENCODE ← Benutzer-Review im Frontend
</span><span id=__span-0-14><a id=__codelineno-0-14 name=__codelineno-0-14 href=#__codelineno-0-14></a>
</span><span id=__span-0-15><a id=__codelineno-0-15 name=__codelineno-0-15 href=#__codelineno-0-15></a>applyManualTrackSelectionToPlan() ← Benutzer-Auswahl anwenden
</span><span id=__span-0-16><a id=__codelineno-0-16 name=__codelineno-0-16 href=#__codelineno-0-16></a>
</span><span id=__span-0-17><a id=__codelineno-0-17 name=__codelineno-0-17 href=#__codelineno-0-17></a>ENCODING ← HandBrake-CLI mit finalem Plan starten
</span></code></pre></div> <hr> <h2 id=phase-1-pre-rip-track-scan>Phase 1: Pre-Rip Track-Scan<a class=headerlink href=#phase-1-pre-rip-track-scan title="Permanent link">&para;</a></h2> <p>Ripster führt einen <strong>HandBrake-Scan</strong> bereits <strong>vor dem eigentlichen Ripping</strong> durch:</p> <div class="language-bash highlight"><pre><span></span><code><span id=__span-1-1><a id=__codelineno-1-1 name=__codelineno-1-1 href=#__codelineno-1-1></a>HandBrakeCLI<span class=w> </span>--scan<span class=w> </span>-i<span class=w> </span>/dev/sr0<span class=w> </span>-t<span class=w> </span><span class=m>0</span>
</span></code></pre></div> <p>Dieser Scan liest alle Titel und deren Tracks aus der Disc (ohne zu encodieren). So kann der Benutzer die Track-Auswahl bereits vor dem zeitintensiven Rip-Prozess bestätigen.</p> <div class="admonition info"> <p class=admonition-title>Pre-Rip vs. Post-Rip</p> <p>Ob der Scan vor oder nach dem Ripping passiert, hängt vom konfigurierten Modus ab. Bei direktem Disc-Zugriff ist Pre-Rip möglich; nach einem MakeMKV-Backup wird die entstandene <code>.mkv</code>-Datei gescannt.</p> </div> <hr> <h2 id=phase-2-track-selektor-regeln-buildtrackselectors>Phase 2: Track-Selektor-Regeln (<code>buildTrackSelectors</code>)<a class=headerlink href=#phase-2-track-selektor-regeln-buildtrackselectors title="Permanent link">&para;</a></h2> <p>Die Regeln werden aus den HandBrake-Einstellungen abgeleitet. Es gibt fünf <strong>Selektionsmodi</strong>:</p> <table> <thead> <tr> <th>Modus</th> <th>Beschreibung</th> </tr> </thead> <tbody> <tr> <td><code>none</code></td> <td>Keine Tracks dieser Art übernehmen</td> </tr> <tr> <td><code>first</code></td> <td>Nur den ersten Track übernehmen</td> </tr> <tr> <td><code>all</code></td> <td>Alle Tracks übernehmen</td> </tr> <tr> <td><code>language</code></td> <td>Nur Tracks in bestimmten Sprachen</td> </tr> <tr> <td><code>explicit</code></td> <td>Bestimmte Track-IDs explizit angeben</td> </tr> </tbody> </table> <p>Der aktive Modus wird aus den <code>handbrake_*</code>-Einstellungen und <code>handbrake_extra_args</code> abgeleitet. Explizite CLI-Argumente (<code>--audio</code>, <code>--audio-lang-list</code>) überschreiben die Basis-Konfiguration.</p> <hr> <h2 id=phase-3-automatische-vorauswahl-selecttrackids>Phase 3: Automatische Vorauswahl (<code>selectTrackIds</code>)<a class=headerlink href=#phase-3-automatische-vorauswahl-selecttrackids title="Permanent link">&para;</a></h2> <h3 id=audio-tracks>Audio-Tracks<a class=headerlink href=#audio-tracks title="Permanent link">&para;</a></h3> <div class="language-text highlight"><pre><span></span><code><span id=__span-2-1><a id=__codelineno-2-1 name=__codelineno-2-1 href=#__codelineno-2-1></a>Modus &#39;none&#39; → Keine Audio-Tracks
</span><span id=__span-2-2><a id=__codelineno-2-2 name=__codelineno-2-2 href=#__codelineno-2-2></a>Modus &#39;all&#39; → Alle Tracks (oder nur erster, wenn firstOnly)
</span><span id=__span-2-3><a id=__codelineno-2-3 name=__codelineno-2-3 href=#__codelineno-2-3></a>Modus &#39;language&#39; → Alle Tracks in den konfigurierten Sprachen
</span><span id=__span-2-4><a id=__codelineno-2-4 name=__codelineno-2-4 href=#__codelineno-2-4></a>Modus &#39;explicit&#39; → Nur die angegebenen Track-IDs
</span><span id=__span-2-5><a id=__codelineno-2-5 name=__codelineno-2-5 href=#__codelineno-2-5></a>Modus &#39;first&#39; → Nur Track 1
</span></code></pre></div> <p>Jeder Audio-Track erhält das Feld <code>selectedByRule: true/false</code> dieses zeigt dem Benutzer, welche Tracks automatisch vorausgewählt wurden.</p> <p><strong>Sprach-Normalisierung (<code>normalizeLanguage</code>):</strong></p> <p>Alle Sprachcodes werden auf <strong>ISO 639-2</strong> (3-Buchstaben) normalisiert:</p> <table> <thead> <tr> <th>Eingabe</th> <th>Normalisiert</th> </tr> </thead> <tbody> <tr> <td><code>de</code>, <code>ger</code></td> <td><code>deu</code></td> </tr> <tr> <td><code>German</code></td> <td><code>deu</code></td> </tr> <tr> <td><code>en</code>, <code>eng</code></td> <td><code>eng</code></td> </tr> <tr> <td><code>English</code></td> <td><code>eng</code></td> </tr> <tr> <td><code>fr</code>, <code>fre</code></td> <td><code>fra</code></td> </tr> <tr> <td><code>ja</code>, <code>jpn</code></td> <td><code>jpn</code></td> </tr> <tr> <td>Unbekannt</td> <td><code>und</code></td> </tr> </tbody> </table> <h3 id=untertitel-tracks>Untertitel-Tracks<a class=headerlink href=#untertitel-tracks title="Permanent link">&para;</a></h3> <p>Gleiche Modus-Logik wie Audio, aber mit <strong>zusätzlichen Flags</strong> pro Track:</p> <table> <thead> <tr> <th>Flag</th> <th>Bedeutung</th> </tr> </thead> <tbody> <tr> <td><code>burnIn</code></td> <td>Untertitel in Video einbrennen (<code>--subtitle-burned</code>)</td> </tr> <tr> <td><code>forced</code></td> <td>Nur erzwungene Untertitel übernehmen (<code>--subtitle-forced</code>)</td> </tr> <tr> <td><code>defaultTrack</code></td> <td>Als Standard-Untertitelspur markieren (<code>--subtitle-default</code>)</td> </tr> </tbody> </table> <p>Diese Flags werden im Encode-Review als Checkboxen angezeigt.</p> <hr> <h2 id=phase-4-encoder-aktion-bestimmen-resolveaudioencoderaction>Phase 4: Encoder-Aktion bestimmen (<code>resolveAudioEncoderAction</code>)<a class=headerlink href=#phase-4-encoder-aktion-bestimmen-resolveaudioencoderaction title="Permanent link">&para;</a></h2> <p>Für jeden vorausgewählten Audio-Track bestimmt Ripster die Encoder-Aktion:</p> <div class="language-text highlight"><pre><span></span><code><span id=__span-3-1><a id=__codelineno-3-1 name=__codelineno-3-1 href=#__codelineno-3-1></a>Encoder-Einstellung Codec-Support in Copy-Mask? Aktion
</span><span id=__span-3-2><a id=__codelineno-3-2 name=__codelineno-3-2 href=#__codelineno-3-2></a>─────────────────────────────────────────────────────────────────────
</span><span id=__span-3-3><a id=__codelineno-3-3 name=__codelineno-3-3 href=#__codelineno-3-3></a>Kein Encoder / &#39;preset-default&#39; → preset-default HandBrake-Preset entscheidet
</span><span id=__span-3-4><a id=__codelineno-3-4 name=__codelineno-3-4 href=#__codelineno-3-4></a>encoder.startsWith(&#39;copy&#39;)
</span><span id=__span-3-5><a id=__codelineno-3-5 name=__codelineno-3-5 href=#__codelineno-3-5></a> UND Codec in audioCopyMask → copy Direktkopie (verlustfrei)
</span><span id=__span-3-6><a id=__codelineno-3-6 name=__codelineno-3-6 href=#__codelineno-3-6></a> UND Codec NICHT in audioCopyMask→ fallback Transcode mit Fallback-Encoder
</span><span id=__span-3-7><a id=__codelineno-3-7 name=__codelineno-3-7 href=#__codelineno-3-7></a>sonstiger Encoder → transcode Transcode mit explizitem Encoder
</span></code></pre></div> <p><strong>Encoder-Aktionstypen:</strong></p> <table> <thead> <tr> <th>Typ</th> <th>Label (UI)</th> <th>Qualität</th> </tr> </thead> <tbody> <tr> <td><code>preset-default</code></td> <td><code>Preset-Default (HandBrake)</code></td> <td>HandBrake entscheidet</td> </tr> <tr> <td><code>copy</code></td> <td><code>Copy (ac3)</code></td> <td>Verlustfrei</td> </tr> <tr> <td><code>fallback</code></td> <td><code>Fallback Transcode (av_aac)</code></td> <td>Mit Qualitätsverlust</td> </tr> <tr> <td><code>transcode</code></td> <td><code>Transcode (av_aac)</code></td> <td>Mit Qualitätsverlust</td> </tr> </tbody> </table> <p><strong>Copy-kompatible Codecs (Standard Copy-Mask):</strong></p> <table> <thead> <tr> <th>Codec</th> <th>Encoder-String</th> </tr> </thead> <tbody> <tr> <td>AC-3</td> <td><code>copy:ac3</code></td> </tr> <tr> <td>E-AC-3</td> <td><code>copy:eac3</code></td> </tr> <tr> <td>AAC</td> <td><code>copy:aac</code></td> </tr> <tr> <td>MP3</td> <td><code>copy:mp3</code></td> </tr> <tr> <td>TrueHD</td> <td><code>copy:truehd</code></td> </tr> <tr> <td>DTS</td> <td><code>copy:dts</code> <em>(nur mit spez. HandBrake-Build)</em></td> </tr> <tr> <td>DTS-HD</td> <td><code>copy:dtshd</code> <em>(nur mit spez. HandBrake-Build)</em></td> </tr> </tbody> </table> <div class="admonition warning"> <p class=admonition-title>DTS im Standard-HandBrake</p> <p>Standard-HandBrake-Builds unterstützen kein DTS-Passthrough. DTS-Tracks werden dann automatisch auf den Fallback-Encoder umgestellt (Standard: <code>av_aac</code>).</p> </div> <hr> <h2 id=phase-5-encode-plan-struktur>Phase 5: Encode-Plan-Struktur<a class=headerlink href=#phase-5-encode-plan-struktur title="Permanent link">&para;</a></h2> <p>Der vollständige Plan wird im Job-Datensatz als <code>encode_plan_json</code> gespeichert:</p> <div class="language-json highlight"><pre><span></span><code><span id=__span-4-1><a id=__codelineno-4-1 name=__codelineno-4-1 href=#__codelineno-4-1></a><span class=p>{</span>
</span><span id=__span-4-2><a id=__codelineno-4-2 name=__codelineno-4-2 href=#__codelineno-4-2></a><span class=w> </span><span class=nt>&quot;mode&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;pre_rip&quot;</span><span class=p>,</span>
</span><span id=__span-4-3><a id=__codelineno-4-3 name=__codelineno-4-3 href=#__codelineno-4-3></a><span class=w> </span><span class=nt>&quot;preRip&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=p>,</span>
</span><span id=__span-4-4><a id=__codelineno-4-4 name=__codelineno-4-4 href=#__codelineno-4-4></a><span class=w> </span><span class=nt>&quot;encodeInputTitleId&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>1</span><span class=p>,</span>
</span><span id=__span-4-5><a id=__codelineno-4-5 name=__codelineno-4-5 href=#__codelineno-4-5></a><span class=w> </span><span class=nt>&quot;encodeInputPath&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;disc-track-scan://title-1&quot;</span><span class=p>,</span>
</span><span id=__span-4-6><a id=__codelineno-4-6 name=__codelineno-4-6 href=#__codelineno-4-6></a><span class=w> </span><span class=nt>&quot;selectors&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
</span><span id=__span-4-7><a id=__codelineno-4-7 name=__codelineno-4-7 href=#__codelineno-4-7></a><span class=w> </span><span class=nt>&quot;audio&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span><span class=w> </span><span class=nt>&quot;mode&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;language&quot;</span><span class=p>,</span><span class=w> </span><span class=nt>&quot;languages&quot;</span><span class=p>:</span><span class=w> </span><span class=p>[</span><span class=s2>&quot;deu&quot;</span><span class=p>,</span><span class=w> </span><span class=s2>&quot;eng&quot;</span><span class=p>],</span><span class=w> </span><span class=nt>&quot;copyMask&quot;</span><span class=p>:</span><span class=w> </span><span class=p>[</span><span class=s2>&quot;copy:ac3&quot;</span><span class=p>,</span><span class=w> </span><span class=s2>&quot;copy:eac3&quot;</span><span class=p>]</span><span class=w> </span><span class=p>},</span>
</span><span id=__span-4-8><a id=__codelineno-4-8 name=__codelineno-4-8 href=#__codelineno-4-8></a><span class=w> </span><span class=nt>&quot;subtitle&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span><span class=w> </span><span class=nt>&quot;mode&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;none&quot;</span><span class=w> </span><span class=p>}</span>
</span><span id=__span-4-9><a id=__codelineno-4-9 name=__codelineno-4-9 href=#__codelineno-4-9></a><span class=w> </span><span class=p>},</span>
</span><span id=__span-4-10><a id=__codelineno-4-10 name=__codelineno-4-10 href=#__codelineno-4-10></a><span class=w> </span><span class=nt>&quot;titles&quot;</span><span class=p>:</span><span class=w> </span><span class=p>[</span>
</span><span id=__span-4-11><a id=__codelineno-4-11 name=__codelineno-4-11 href=#__codelineno-4-11></a><span class=w> </span><span class=p>{</span>
</span><span id=__span-4-12><a id=__codelineno-4-12 name=__codelineno-4-12 href=#__codelineno-4-12></a><span class=w> </span><span class=nt>&quot;id&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>1</span><span class=p>,</span>
</span><span id=__span-4-13><a id=__codelineno-4-13 name=__codelineno-4-13 href=#__codelineno-4-13></a><span class=w> </span><span class=nt>&quot;fileName&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;Disc Title 1&quot;</span><span class=p>,</span>
</span><span id=__span-4-14><a id=__codelineno-4-14 name=__codelineno-4-14 href=#__codelineno-4-14></a><span class=w> </span><span class=nt>&quot;durationSeconds&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>8885</span><span class=p>,</span>
</span><span id=__span-4-15><a id=__codelineno-4-15 name=__codelineno-4-15 href=#__codelineno-4-15></a><span class=w> </span><span class=nt>&quot;selectedByMinLength&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=p>,</span>
</span><span id=__span-4-16><a id=__codelineno-4-16 name=__codelineno-4-16 href=#__codelineno-4-16></a><span class=w> </span><span class=nt>&quot;isEncodeInput&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=p>,</span>
</span><span id=__span-4-17><a id=__codelineno-4-17 name=__codelineno-4-17 href=#__codelineno-4-17></a><span class=w> </span><span class=nt>&quot;audioTracks&quot;</span><span class=p>:</span><span class=w> </span><span class=p>[</span>
</span><span id=__span-4-18><a id=__codelineno-4-18 name=__codelineno-4-18 href=#__codelineno-4-18></a><span class=w> </span><span class=p>{</span>
</span><span id=__span-4-19><a id=__codelineno-4-19 name=__codelineno-4-19 href=#__codelineno-4-19></a><span class=w> </span><span class=nt>&quot;id&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>1</span><span class=p>,</span>
</span><span id=__span-4-20><a id=__codelineno-4-20 name=__codelineno-4-20 href=#__codelineno-4-20></a><span class=w> </span><span class=nt>&quot;sourceTrackId&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>1</span><span class=p>,</span>
</span><span id=__span-4-21><a id=__codelineno-4-21 name=__codelineno-4-21 href=#__codelineno-4-21></a><span class=w> </span><span class=nt>&quot;language&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;eng&quot;</span><span class=p>,</span>
</span><span id=__span-4-22><a id=__codelineno-4-22 name=__codelineno-4-22 href=#__codelineno-4-22></a><span class=w> </span><span class=nt>&quot;languageLabel&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;English&quot;</span><span class=p>,</span>
</span><span id=__span-4-23><a id=__codelineno-4-23 name=__codelineno-4-23 href=#__codelineno-4-23></a><span class=w> </span><span class=nt>&quot;title&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;5.1 Surround&quot;</span><span class=p>,</span>
</span><span id=__span-4-24><a id=__codelineno-4-24 name=__codelineno-4-24 href=#__codelineno-4-24></a><span class=w> </span><span class=nt>&quot;format&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;AC3&quot;</span><span class=p>,</span>
</span><span id=__span-4-25><a id=__codelineno-4-25 name=__codelineno-4-25 href=#__codelineno-4-25></a><span class=w> </span><span class=nt>&quot;codecToken&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;ac3&quot;</span><span class=p>,</span>
</span><span id=__span-4-26><a id=__codelineno-4-26 name=__codelineno-4-26 href=#__codelineno-4-26></a><span class=w> </span><span class=nt>&quot;channels&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;6&quot;</span><span class=p>,</span>
</span><span id=__span-4-27><a id=__codelineno-4-27 name=__codelineno-4-27 href=#__codelineno-4-27></a><span class=w> </span><span class=nt>&quot;selectedByRule&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=p>,</span>
</span><span id=__span-4-28><a id=__codelineno-4-28 name=__codelineno-4-28 href=#__codelineno-4-28></a><span class=w> </span><span class=nt>&quot;selectedForEncode&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=p>,</span>
</span><span id=__span-4-29><a id=__codelineno-4-29 name=__codelineno-4-29 href=#__codelineno-4-29></a><span class=w> </span><span class=nt>&quot;encodePreviewActions&quot;</span><span class=p>:</span><span class=w> </span><span class=p>[</span>
</span><span id=__span-4-30><a id=__codelineno-4-30 name=__codelineno-4-30 href=#__codelineno-4-30></a><span class=w> </span><span class=p>{</span><span class=w> </span><span class=nt>&quot;type&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;copy&quot;</span><span class=p>,</span><span class=w> </span><span class=nt>&quot;encoder&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;copy:ac3&quot;</span><span class=p>,</span><span class=w> </span><span class=nt>&quot;label&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;Copy (ac3)&quot;</span><span class=w> </span><span class=p>}</span>
</span><span id=__span-4-31><a id=__codelineno-4-31 name=__codelineno-4-31 href=#__codelineno-4-31></a><span class=w> </span><span class=p>],</span>
</span><span id=__span-4-32><a id=__codelineno-4-32 name=__codelineno-4-32 href=#__codelineno-4-32></a><span class=w> </span><span class=nt>&quot;encodePreviewSummary&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;Copy (ac3)&quot;</span>
</span><span id=__span-4-33><a id=__codelineno-4-33 name=__codelineno-4-33 href=#__codelineno-4-33></a><span class=w> </span><span class=p>},</span>
</span><span id=__span-4-34><a id=__codelineno-4-34 name=__codelineno-4-34 href=#__codelineno-4-34></a><span class=w> </span><span class=p>{</span>
</span><span id=__span-4-35><a id=__codelineno-4-35 name=__codelineno-4-35 href=#__codelineno-4-35></a><span class=w> </span><span class=nt>&quot;id&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>2</span><span class=p>,</span>
</span><span id=__span-4-36><a id=__codelineno-4-36 name=__codelineno-4-36 href=#__codelineno-4-36></a><span class=w> </span><span class=nt>&quot;sourceTrackId&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>2</span><span class=p>,</span>
</span><span id=__span-4-37><a id=__codelineno-4-37 name=__codelineno-4-37 href=#__codelineno-4-37></a><span class=w> </span><span class=nt>&quot;language&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;deu&quot;</span><span class=p>,</span>
</span><span id=__span-4-38><a id=__codelineno-4-38 name=__codelineno-4-38 href=#__codelineno-4-38></a><span class=w> </span><span class=nt>&quot;languageLabel&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;Deutsch&quot;</span><span class=p>,</span>
</span><span id=__span-4-39><a id=__codelineno-4-39 name=__codelineno-4-39 href=#__codelineno-4-39></a><span class=w> </span><span class=nt>&quot;format&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;DTS&quot;</span><span class=p>,</span>
</span><span id=__span-4-40><a id=__codelineno-4-40 name=__codelineno-4-40 href=#__codelineno-4-40></a><span class=w> </span><span class=nt>&quot;codecToken&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;dts&quot;</span><span class=p>,</span>
</span><span id=__span-4-41><a id=__codelineno-4-41 name=__codelineno-4-41 href=#__codelineno-4-41></a><span class=w> </span><span class=nt>&quot;channels&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;6&quot;</span><span class=p>,</span>
</span><span id=__span-4-42><a id=__codelineno-4-42 name=__codelineno-4-42 href=#__codelineno-4-42></a><span class=w> </span><span class=nt>&quot;selectedByRule&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=p>,</span>
</span><span id=__span-4-43><a id=__codelineno-4-43 name=__codelineno-4-43 href=#__codelineno-4-43></a><span class=w> </span><span class=nt>&quot;selectedForEncode&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=p>,</span>
</span><span id=__span-4-44><a id=__codelineno-4-44 name=__codelineno-4-44 href=#__codelineno-4-44></a><span class=w> </span><span class=nt>&quot;encodePreviewActions&quot;</span><span class=p>:</span><span class=w> </span><span class=p>[</span>
</span><span id=__span-4-45><a id=__codelineno-4-45 name=__codelineno-4-45 href=#__codelineno-4-45></a><span class=w> </span><span class=p>{</span><span class=w> </span><span class=nt>&quot;type&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;fallback&quot;</span><span class=p>,</span><span class=w> </span><span class=nt>&quot;encoder&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;av_aac&quot;</span><span class=p>,</span><span class=w> </span><span class=nt>&quot;label&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;Fallback Transcode (av_aac)&quot;</span><span class=w> </span><span class=p>}</span>
</span><span id=__span-4-46><a id=__codelineno-4-46 name=__codelineno-4-46 href=#__codelineno-4-46></a><span class=w> </span><span class=p>],</span>
</span><span id=__span-4-47><a id=__codelineno-4-47 name=__codelineno-4-47 href=#__codelineno-4-47></a><span class=w> </span><span class=nt>&quot;encodePreviewSummary&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;Fallback Transcode (av_aac)&quot;</span>
</span><span id=__span-4-48><a id=__codelineno-4-48 name=__codelineno-4-48 href=#__codelineno-4-48></a><span class=w> </span><span class=p>},</span>
</span><span id=__span-4-49><a id=__codelineno-4-49 name=__codelineno-4-49 href=#__codelineno-4-49></a><span class=w> </span><span class=p>{</span>
</span><span id=__span-4-50><a id=__codelineno-4-50 name=__codelineno-4-50 href=#__codelineno-4-50></a><span class=w> </span><span class=nt>&quot;id&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>3</span><span class=p>,</span>
</span><span id=__span-4-51><a id=__codelineno-4-51 name=__codelineno-4-51 href=#__codelineno-4-51></a><span class=w> </span><span class=nt>&quot;language&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;fra&quot;</span><span class=p>,</span>
</span><span id=__span-4-52><a id=__codelineno-4-52 name=__codelineno-4-52 href=#__codelineno-4-52></a><span class=w> </span><span class=nt>&quot;languageLabel&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;Français&quot;</span><span class=p>,</span>
</span><span id=__span-4-53><a id=__codelineno-4-53 name=__codelineno-4-53 href=#__codelineno-4-53></a><span class=w> </span><span class=nt>&quot;selectedByRule&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>false</span><span class=p>,</span>
</span><span id=__span-4-54><a id=__codelineno-4-54 name=__codelineno-4-54 href=#__codelineno-4-54></a><span class=w> </span><span class=nt>&quot;selectedForEncode&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>false</span><span class=p>,</span>
</span><span id=__span-4-55><a id=__codelineno-4-55 name=__codelineno-4-55 href=#__codelineno-4-55></a><span class=w> </span><span class=nt>&quot;encodePreviewSummary&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;Nicht übernommen&quot;</span>
</span><span id=__span-4-56><a id=__codelineno-4-56 name=__codelineno-4-56 href=#__codelineno-4-56></a><span class=w> </span><span class=p>}</span>
</span><span id=__span-4-57><a id=__codelineno-4-57 name=__codelineno-4-57 href=#__codelineno-4-57></a><span class=w> </span><span class=p>],</span>
</span><span id=__span-4-58><a id=__codelineno-4-58 name=__codelineno-4-58 href=#__codelineno-4-58></a><span class=w> </span><span class=nt>&quot;subtitleTracks&quot;</span><span class=p>:</span><span class=w> </span><span class=p>[</span>
</span><span id=__span-4-59><a id=__codelineno-4-59 name=__codelineno-4-59 href=#__codelineno-4-59></a><span class=w> </span><span class=p>{</span>
</span><span id=__span-4-60><a id=__codelineno-4-60 name=__codelineno-4-60 href=#__codelineno-4-60></a><span class=w> </span><span class=nt>&quot;id&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>1</span><span class=p>,</span>
</span><span id=__span-4-61><a id=__codelineno-4-61 name=__codelineno-4-61 href=#__codelineno-4-61></a><span class=w> </span><span class=nt>&quot;language&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;deu&quot;</span><span class=p>,</span>
</span><span id=__span-4-62><a id=__codelineno-4-62 name=__codelineno-4-62 href=#__codelineno-4-62></a><span class=w> </span><span class=nt>&quot;selectedByRule&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=p>,</span>
</span><span id=__span-4-63><a id=__codelineno-4-63 name=__codelineno-4-63 href=#__codelineno-4-63></a><span class=w> </span><span class=nt>&quot;selectedForEncode&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=p>,</span>
</span><span id=__span-4-64><a id=__codelineno-4-64 name=__codelineno-4-64 href=#__codelineno-4-64></a><span class=w> </span><span class=nt>&quot;burnIn&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>false</span><span class=p>,</span>
</span><span id=__span-4-65><a id=__codelineno-4-65 name=__codelineno-4-65 href=#__codelineno-4-65></a><span class=w> </span><span class=nt>&quot;forced&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>false</span><span class=p>,</span>
</span><span id=__span-4-66><a id=__codelineno-4-66 name=__codelineno-4-66 href=#__codelineno-4-66></a><span class=w> </span><span class=nt>&quot;defaultTrack&quot;</span><span class=p>:</span><span class=w> </span><span class=kc>true</span><span class=p>,</span>
</span><span id=__span-4-67><a id=__codelineno-4-67 name=__codelineno-4-67 href=#__codelineno-4-67></a><span class=w> </span><span class=nt>&quot;subtitlePreviewSummary&quot;</span><span class=p>:</span><span class=w> </span><span class=s2>&quot;Übernehmen&quot;</span><span class=p>,</span>
</span><span id=__span-4-68><a id=__codelineno-4-68 name=__codelineno-4-68 href=#__codelineno-4-68></a><span class=w> </span><span class=nt>&quot;subtitlePreviewFlags&quot;</span><span class=p>:</span><span class=w> </span><span class=p>[</span><span class=s2>&quot;default&quot;</span><span class=p>]</span>
</span><span id=__span-4-69><a id=__codelineno-4-69 name=__codelineno-4-69 href=#__codelineno-4-69></a><span class=w> </span><span class=p>}</span>
</span><span id=__span-4-70><a id=__codelineno-4-70 name=__codelineno-4-70 href=#__codelineno-4-70></a><span class=w> </span><span class=p>]</span>
</span><span id=__span-4-71><a id=__codelineno-4-71 name=__codelineno-4-71 href=#__codelineno-4-71></a><span class=w> </span><span class=p>}</span>
</span><span id=__span-4-72><a id=__codelineno-4-72 name=__codelineno-4-72 href=#__codelineno-4-72></a><span class=w> </span><span class=p>]</span>
</span><span id=__span-4-73><a id=__codelineno-4-73 name=__codelineno-4-73 href=#__codelineno-4-73></a><span class=p>}</span>
</span></code></pre></div> <hr> <h2 id=phase-6-benutzer-review-im-frontend-mediainforeviewpanel>Phase 6: Benutzer-Review im Frontend (<code>MediaInfoReviewPanel</code>)<a class=headerlink href=#phase-6-benutzer-review-im-frontend-mediainforeviewpanel title="Permanent link">&para;</a></h2> <p>Das Review-Panel zeigt:</p> <div class="language-text highlight"><pre><span></span><code><span id=__span-5-1><a id=__codelineno-5-1 name=__codelineno-5-1 href=#__codelineno-5-1></a>┌─────────────────────────────────────────────────────────────────┐
</span><span id=__span-5-2><a id=__codelineno-5-2 name=__codelineno-5-2 href=#__codelineno-5-2></a>│ Encode-Review Titel: Disc Title 1 │
</span><span id=__span-5-3><a id=__codelineno-5-3 name=__codelineno-5-3 href=#__codelineno-5-3></a>│ Laufzeit: 2:28:05 │
</span><span id=__span-5-4><a id=__codelineno-5-4 name=__codelineno-5-4 href=#__codelineno-5-4></a>├─────────────────────────────────────────────────────────────────┤
</span><span id=__span-5-5><a id=__codelineno-5-5 name=__codelineno-5-5 href=#__codelineno-5-5></a>│ Audio-Spuren │
</span><span id=__span-5-6><a id=__codelineno-5-6 name=__codelineno-5-6 href=#__codelineno-5-6></a>├──────┬──────────────────────────┬──────────────────────────────┤
</span><span id=__span-5-7><a id=__codelineno-5-7 name=__codelineno-5-7 href=#__codelineno-5-7></a>│ [✓] │ Track 1: English (AC3) │ Copy (ac3) │
</span><span id=__span-5-8><a id=__codelineno-5-8 name=__codelineno-5-8 href=#__codelineno-5-8></a>│ [✓] │ Track 2: Deutsch (DTS) │ Fallback Transcode (av_aac) │
</span><span id=__span-5-9><a id=__codelineno-5-9 name=__codelineno-5-9 href=#__codelineno-5-9></a>│ [ ] │ Track 3: Français (DTS) │ Nicht übernommen │
</span><span id=__span-5-10><a id=__codelineno-5-10 name=__codelineno-5-10 href=#__codelineno-5-10></a>├──────┴──────────────────────────┴──────────────────────────────┤
</span><span id=__span-5-11><a id=__codelineno-5-11 name=__codelineno-5-11 href=#__codelineno-5-11></a>│ Untertitel-Spuren │
</span><span id=__span-5-12><a id=__codelineno-5-12 name=__codelineno-5-12 href=#__codelineno-5-12></a>├──────┬──────────────────────────┬────────┬────────┬────────────┤
</span><span id=__span-5-13><a id=__codelineno-5-13 name=__codelineno-5-13 href=#__codelineno-5-13></a>│ [✓] │ Track 1: Deutsch │Einbr.[ ]│Forced[ ]│Default[✓]│
</span><span id=__span-5-14><a id=__codelineno-5-14 name=__codelineno-5-14 href=#__codelineno-5-14></a>│ [ ] │ Track 2: English │Einbr.[ ]│Forced[ ]│Default[ ]│
</span><span id=__span-5-15><a id=__codelineno-5-15 name=__codelineno-5-15 href=#__codelineno-5-15></a>├──────┴──────────────────────────┴────────┴────────┴────────────┤
</span><span id=__span-5-16><a id=__codelineno-5-16 name=__codelineno-5-16 href=#__codelineno-5-16></a>│ [Encode bestätigen] │
</span><span id=__span-5-17><a id=__codelineno-5-17 name=__codelineno-5-17 href=#__codelineno-5-17></a>└─────────────────────────────────────────────────────────────────┘
</span></code></pre></div> <p>Der Benutzer kann: - <strong>Audio-Tracks</strong> per Checkbox aktivieren/deaktivieren - <strong>Untertitel-Flags</strong> (Einbrennen, Forced, Default) setzen - <strong>Mehrere Titel</strong> bei der Titleauswahl wechseln (für Discs mit mehreren Haupttiteln)</p> <hr> <h2 id=phase-7-benutzer-auswahl-anwenden-applymanualtrackselectiontoplan>Phase 7: Benutzer-Auswahl anwenden (<code>applyManualTrackSelectionToPlan</code>)<a class=headerlink href=#phase-7-benutzer-auswahl-anwenden-applymanualtrackselectiontoplan title="Permanent link">&para;</a></h2> <p>Nach "Encode bestätigen" wird die Benutzer-Auswahl auf den Plan angewendet:</p> <div class="language-json highlight"><pre><span></span><code><span id=__span-6-1><a id=__codelineno-6-1 name=__codelineno-6-1 href=#__codelineno-6-1></a><span class=err>Payload</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
</span><span id=__span-6-2><a id=__codelineno-6-2 name=__codelineno-6-2 href=#__codelineno-6-2></a><span class=w> </span><span class=nt>&quot;selectedEncodeTitleId&quot;</span><span class=p>:</span><span class=w> </span><span class=mi>1</span><span class=p>,</span>
</span><span id=__span-6-3><a id=__codelineno-6-3 name=__codelineno-6-3 href=#__codelineno-6-3></a><span class=w> </span><span class=nt>&quot;selectedTrackSelection&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
</span><span id=__span-6-4><a id=__codelineno-6-4 name=__codelineno-6-4 href=#__codelineno-6-4></a><span class=w> </span><span class=nt>&quot;1&quot;</span><span class=p>:</span><span class=w> </span><span class=p>{</span>
</span><span id=__span-6-5><a id=__codelineno-6-5 name=__codelineno-6-5 href=#__codelineno-6-5></a><span class=w> </span><span class=nt>&quot;audioTrackIds&quot;</span><span class=p>:</span><span class=w> </span><span class=p>[</span><span class=mi>1</span><span class=p>,</span><span class=w> </span><span class=mi>2</span><span class=p>],</span>
</span><span id=__span-6-6><a id=__codelineno-6-6 name=__codelineno-6-6 href=#__codelineno-6-6></a><span class=w> </span><span class=nt>&quot;subtitleTrackIds&quot;</span><span class=p>:</span><span class=w> </span><span class=p>[</span><span class=mi>1</span><span class=p>]</span>
</span><span id=__span-6-7><a id=__codelineno-6-7 name=__codelineno-6-7 href=#__codelineno-6-7></a><span class=w> </span><span class=p>}</span>
</span><span id=__span-6-8><a id=__codelineno-6-8 name=__codelineno-6-8 href=#__codelineno-6-8></a><span class=w> </span><span class=p>}</span>
</span><span id=__span-6-9><a id=__codelineno-6-9 name=__codelineno-6-9 href=#__codelineno-6-9></a><span class=p>}</span>
</span></code></pre></div> <p>Jeder Track erhält <code>selectedForEncode: true/false</code> entsprechend der Auswahl. Die Encoder-Aktionen (<code>encodeActions</code>) der nicht gewählten Tracks werden geleert.</p> <hr> <h2 id=phase-8-handbrake-cli-befehl>Phase 8: HandBrake-CLI-Befehl<a class=headerlink href=#phase-8-handbrake-cli-befehl title="Permanent link">&para;</a></h2> <p>Aus dem finalisierten Plan baut Ripster den HandBrake-Aufruf:</p> <div class="language-bash highlight"><pre><span></span><code><span id=__span-7-1><a id=__codelineno-7-1 name=__codelineno-7-1 href=#__codelineno-7-1></a>HandBrakeCLI<span class=w> </span><span class=se>\</span>
</span><span id=__span-7-2><a id=__codelineno-7-2 name=__codelineno-7-2 href=#__codelineno-7-2></a><span class=w> </span>-i<span class=w> </span>/dev/sr0<span class=w> </span><span class=se>\</span>
</span><span id=__span-7-3><a id=__codelineno-7-3 name=__codelineno-7-3 href=#__codelineno-7-3></a><span class=w> </span>-o<span class=w> </span><span class=s2>&quot;/mnt/movies/Inception (2010).mkv&quot;</span><span class=w> </span><span class=se>\</span>
</span><span id=__span-7-4><a id=__codelineno-7-4 name=__codelineno-7-4 href=#__codelineno-7-4></a><span class=w> </span>-t<span class=w> </span><span class=m>1</span><span class=w> </span><span class=se>\</span>
</span><span id=__span-7-5><a id=__codelineno-7-5 name=__codelineno-7-5 href=#__codelineno-7-5></a><span class=w> </span>--preset<span class=w> </span><span class=s2>&quot;H.265 MKV 1080p30&quot;</span><span class=w> </span><span class=se>\</span>
</span><span id=__span-7-6><a id=__codelineno-7-6 name=__codelineno-7-6 href=#__codelineno-7-6></a><span class=w> </span>-a<span class=w> </span><span class=m>1</span>,2<span class=w> </span><span class=se>\</span>
</span><span id=__span-7-7><a id=__codelineno-7-7 name=__codelineno-7-7 href=#__codelineno-7-7></a><span class=w> </span>-E<span class=w> </span>copy:ac3,av_aac<span class=w> </span><span class=se>\</span>
</span><span id=__span-7-8><a id=__codelineno-7-8 name=__codelineno-7-8 href=#__codelineno-7-8></a><span class=w> </span>-s<span class=w> </span><span class=m>1</span><span class=w> </span><span class=se>\</span>
</span><span id=__span-7-9><a id=__codelineno-7-9 name=__codelineno-7-9 href=#__codelineno-7-9></a><span class=w> </span>--subtitle-default<span class=w> </span><span class=m>1</span>
</span></code></pre></div> <table> <thead> <tr> <th>Argument</th> <th>Quelle</th> </tr> </thead> <tbody> <tr> <td><code>-i</code></td> <td><code>encode_input_path</code> aus Job</td> </tr> <tr> <td><code>-o</code></td> <td>Ausgabepfad aus <code>filename_template</code> + <code>movie_dir</code></td> </tr> <tr> <td><code>-t</code></td> <td>Gewählter Titel-Index</td> </tr> <tr> <td><code>-a</code></td> <td>Kommagetrennte Audio-Track-IDs der ausgewählten Tracks</td> </tr> <tr> <td><code>-E</code></td> <td>Kommagetrennte Encoder-Aktionen (eine pro Track, gleiche Reihenfolge wie <code>-a</code>)</td> </tr> <tr> <td><code>-s</code></td> <td>Kommagetrennte Untertitel-Track-IDs</td> </tr> <tr> <td><code>--subtitle-default</code></td> <td>Track-ID der als Default markierten Untertitelspur</td> </tr> <tr> <td><code>--preset</code></td> <td><code>handbrake_preset</code>-Einstellung</td> </tr> <tr> <td>Extras</td> <td><code>handbrake_extra_args</code>-Einstellung</td> </tr> </tbody> </table> <hr> <h2 id=dateiname-template>Dateiname-Template<a class=headerlink href=#dateiname-template title="Permanent link">&para;</a></h2> <table> <thead> <tr> <th>Platzhalter</th> <th>Wert</th> <th>Beispiel</th> </tr> </thead> <tbody> <tr> <td><code>{title}</code></td> <td>Filmtitel von OMDb</td> <td><code>Inception</code></td> </tr> <tr> <td><code>{year}</code></td> <td>Erscheinungsjahr</td> <td><code>2010</code></td> </tr> <tr> <td><code>{imdb_id}</code></td> <td>IMDb-ID</td> <td><code>tt1375666</code></td> </tr> <tr> <td><code>{type}</code></td> <td><code>movie</code> oder <code>series</code></td> <td><code>movie</code></td> </tr> </tbody> </table> <p>Sonderzeichen (<code>:</code>, <code>/</code>, <code>?</code>, <code>*</code> etc.) werden automatisch aus dem Dateinamen entfernt.</p> <hr> <h2 id=re-encoding>Re-Encoding<a class=headerlink href=#re-encoding title="Permanent link">&para;</a></h2> <p>Ein abgeschlossener Job kann ohne erneutes Ripping neu encodiert werden:</p> <ol> <li>Job in der <strong>History</strong> öffnen</li> <li><strong>"Re-Encode"</strong> klicken</li> <li>Track-Auswahl anpassen (oder bestehende übernehmen)</li> <li>Encoding startet mit den aktuellen <code>handbrake_*</code>-Einstellungen</li> </ol> <p>Nützlich bei geänderten Presets, anderen Sprach-Präferenzen oder nach einem Einstellungs-Update.</p> </article> </div> <script>var tabs=__md_get("__tabs");if(Array.isArray(tabs))e:for(var set of document.querySelectorAll(".tabbed-set")){var labels=set.querySelector(".tabbed-labels");for(var tab of tabs)for(var label of labels.getElementsByTagName("label"))if(label.innerText.trim()===tab){var input=document.getElementById(label.htmlFor);input.checked=!0;continue e}}</script> <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script> </div> <button type=button class="md-top md-icon" data-md-component=top hidden> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg> Zurück zum Seitenanfang </button> </main> <footer class=md-footer> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-copyright> Made with <a href=https://squidfunk.github.io/mkdocs-material/ target=_blank rel=noopener> Material for MkDocs </a> </div> <div class=md-social> <a href=https://github.com/YOUR_GITHUB_USERNAME/ripster target=_blank rel=noopener title=github.com class=md-social__link> <svg xmlns=http://www.w3.org/2000/svg viewbox="0 0 512 512"><!-- Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2025 Fonticons, Inc.--><path d="M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9M252.8 8C114.1 8 8 113.3 8 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C436.2 457.8 504 362.9 504 252 504 113.3 391.5 8 252.8 8M105.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2"/></svg> </a> </div> </div> </div> </footer> </div> <div class=md-dialog data-md-component=dialog> <div class="md-dialog__inner md-typeset"></div> </div> <script id=__config type=application/json>{"annotate": null, "base": "../..", "features": ["navigation.tabs", "navigation.tabs.sticky", "navigation.sections", "navigation.expand", "navigation.indexes", "navigation.top", "search.highlight", "search.suggest", "content.code.copy", "content.code.annotate", "content.tabs.link", "toc.integrate"], "search": "../../assets/javascripts/workers/search.7a47a382.min.js", "tags": null, "translations": {"clipboard.copied": "In Zwischenablage kopiert", "clipboard.copy": "In Zwischenablage kopieren", "search.result.more.one": "1 weiteres Suchergebnis auf dieser Seite", "search.result.more.other": "# weitere Suchergebnisse auf dieser Seite", "search.result.none": "Keine Suchergebnisse", "search.result.one": "1 Suchergebnis", "search.result.other": "# Suchergebnisse", "search.result.placeholder": "Suchbegriff eingeben", "search.result.term.missing": "Es fehlt", "select.version": "Version ausw\u00e4hlen"}, "version": {"provider": "mike"}}</script> <script src=../../assets/javascripts/bundle.e71a0d61.min.js></script> </body> </html>