Fórum Ubuntu CZ/SK

Ostatní => Tipy a triky pro Linux => Téma založeno: juwa2 27 Září 2021, 13:53:04

Název: Avidemux - hromadné zpracování souborů
Přispěvatel: juwa2 27 Září 2021, 13:53:04
Vých. situace: Máme mnoho souborů které chceme zpracovat v Avidemuxu. Jak na to:
Otevřeme Avidemux.
Načteme jeden ze souborů.
Nastavíme co je potřeba (typ konverze, filtry atd.)
Potom:
Soubor > Skript projektu > Uložit jako projekt.
Uloží se jako soubor *.py
Tento soubor otevřeme v txt editoru (gedit) a odstraníme vše mezi řádky "adm = Avidemux()"  a   "adm.setPostProc(3, 3, 0)"
Soubor uložíme pod názvem my_edit.py

Vlastní příkaz ke hromadnému zpracování pak bude
Kód: [Vybrat]
avidemux2.7_cli --load input_file --run "/cesta/k/my_edit.py" --save output_file --quit >nul
Je možno vytvořit nautilus (nemo, caja) skript (loop)
Kód: [Vybrat]
for f in "$@"; do
avidemux2.7_cli --load "$f" --run "/cesta/k/my_edit.py" --save "${f%.mp4}_EDIT.mp4" ; done

Který převede všechny vybrané soubory. Příponu je samozřejmě možné dle potřeby libovolně měnit.
Rovněž je třeba napsat skutečnou verzi avidemuxu.

Kdo má avidemux jako snap, ta je to o něco složitější (cesta k avidemux_cli). Ale funguje to stejně.

Obdobné je to s Handbrake. Ten na rozdíl od Avidemuxu umožňuje konverzi "tzv. lepších" audio stop (FLAC@24 DTS-HD-MA, EAC3, ATMOS...).
Nicméně na rozdíl od Avidemuxu nelze konvertovat pouze audiostopu (video passthroug).
Toto lze obejít "podstrčením" (empty) video stopy o velikost 1x1 pixel do kontejneru, provedením běžné a+v konverze (je to rychlé) a následným remuxem zkonvertovaného audia + pův. videa (mkvtoolnix).

Empty video je v příloze. Stačí jím v mkvtoolnixu nahradit pův. videostopu. Po konverzi v handbrake tam opět muxnout pův. videostopu.
Popis příkazu + loop pro handbrake v případě zájmu doplním....
Kód: [Vybrat]
for f in "$@"; do
HandBrakeCLI --preset-import-file /cesta/k/preset.json -Z "H.264 MKV 576p25 preset" -i "$f" -o "${f%.mp4}_EDIT.mp4" ; done

Ještě praktická poznámka závěrem:
Samozřejmě, ne všechna zařízení (přehrávače) umí přehrát nejnovější zvukové formáty. Pak je nutná úprava/konverze.
U DTS HD MA je situace jednodušší - tato verze vždy obsahuje tzv. CORE (= obyčejné DTS) které lze jednoduše vyseparovat (mkvtoolnix, tsmuxer, eac3to).
Ale Dolby digital+ (EAC3) vrstvu "core" obsahovat nemusí (a většinou ani neobsahuje). Pak "separace" selže (není co separovat).
Co teď?
Řešení je konverze pomocí ffmpeg:

1. Pokud je stopa Dolby Digital ATMOS, tak příkaz na převod (ATMOS > EAC3) je (video zůstane netknuto):
Kód: [Vybrat]
ffmpeg -i "input.mkv" -map 0 -c copy -bsf:a truehd_core "output.mkv"
2. Pokud dané zařízení neumožňuje ani přehrání EAC3, tak další příkaz pro převod (EAC3 > AC3@640):
Kód: [Vybrat]
ffmpeg -i "input.mkv" -map 0 -c:v copy -c:a ac3 -b:a 640k  "output.mkv"
Samozřejmě, kdo má materiál se zvukem EAC3 (ne ATMOS), použije pouze druhý příkaz..

Úspěšně odzkoušeno na "R. Waters Us&Them 2019", kvalita i po převodu výborná (samozřejmě originální ATMOS je o něčem jiném, ale zase ne každý má na to HW...).  ;)