Portál AbcLinuxu, 30. dubna 2025 10:09
K PC mám připojené AVR přes SPDIF výstup. Je dobře známo, že mplayer má parametr -afm, kterým lze zajistit, aby v případě AC3/DTS data rovnou posílal na digitální výstup (AC3/DTS passthrough), v případě normálních audiodat posílal klasické stereo PCM, např.
mplayer -ao alsa:device=plughw=0.1 -afm hwac3 video.avi
U AC3/DTS musí SPDIF stream obsahovat příznak non-audio (jinak AVR data považuje za PCM a přehrává krásné chrčení). Mplayer (a i jiné přehrávače) umí ve zvukovce tento příznak při přehrávání AC3/DTS zapnout, ale ten se tam drží až do další inicializace ovladače zvukovky (tedy obvykle do restartu). Pokud následně pustím nějaké jiné video s klasickým PCM, zvuk nefunguje, protože se dekodér DD/DTS v AVR marně snaží formát rozlousknout.
Na řešení se mi osvědčil poměrně málo známý alsácký prográmek iecset (na českém netu našel google jen 40 výskytů), který nastavuje parametry digitálního výstupu zvukovky. V tomto případě stačí před spuštěním mplayer zavolat
iecset -c 0 audio on; mplayer .....
Pro PCM je pak flag nastaven správně, v případě AC3/DTS si mplayer sám přepne flag na non-audio. Nástroj iecset umí i jiné zajímavé věci (hlavně pro režim professional), detaily viz man iecset.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.