daert
05-11-2017, 19:33
Salve a tutti. Vorrei condividere la mia esperienza con questo player che ormai è diventato uno dei miei preferiti.
Premetto che se si ricerca la qualità assoluta senza compromessi, il gruppo MPC-HC, LAV, madVR resta sempre il Gold Standard, soprattutto per quanto riguarda la conversione HDR > SDR, dato che madVR è ancora l'unico in grado di effettuare la giusta conversione.
Per il resto, se si ricerca un player portable che abbia versatilità, buone prestazioni e alcune funzioni interessanti, MPV svolge egregiamente il suo dovere.
Fra le funzioni interessanti che ho potuto riscontrare in MPV ci sono: hrtf con OpenAL su Windows 10 / Linux, e le funzioni di smoothmotion e reclock già integrate.
Personalmente lo utilizzo in coppia con il programma per il surround virtuale in cuffia, per cui l'audio multicanale non va incontro a downmix e imposto l'uscita di mpv a 8 canali
Ricordo che ognuno dovrà personalizzare la configurazione secondo i propri gusti e soprattutto in base alle capacità di elaborazione del proprio pc. Fornisco la mia configurazione come punto di partenza oppure la si può utilizzare così come la propongo se è di vostro gradimento :D
Per verificare i timings su osd si deve usare la combinazione: Maiusc+i durante la riproduzione di un video e cambiare pagina dell'osd con 1 e 2
Installazione
Il player può essere scaricato dalla pagina principale del progetto: https://mpv.io/installation/
In particolare utilizzo la build by shinchiro a 64 bit.
Una volta scompattato l'archivio, create una cartella all'interno con il nome di portable_config
All'interno della cartella bisogna creare due file di configurazione: mpv.conf (che contiene la configurazione) e input.conf (che contiene i key bindigs personalizzati).
Key bindings
Nella cartella docs è presente un'immagine che mostra le funzioni di mpv mappate di default sulla tastiera.
Io ho apportato alcune modifiche ma si possono lasciare tranquillamente quelle di default.
Le mie modifiche consistono in:
#key command key caption menu path/caption
MBTN_LEFT cycle pause #menu: Click Sx ; Play/Pause
Ctrl++ add video-zoom 0.1 #menu: Ctrl++ ; Pan && Scan | Increase Size
Ctrl+- add video-zoom -0.1 #menu: Ctrl+- ; Pan && Scan | Decrease Size
MBTN_LEFT_DBL cycle fullscreen #menu: DBL ; Cycle Fullscreen
a cycle audio #menu: a ; Cycle Audio
s cycle sub #menu: s ; Cycle Subtitle
S ignore
c screenshot #menu: c ; Screenshot
C screenshot video
Up add chapter 1 #menu: Up
Down add chapter -1 #menu: Down
Axis_Up add volume 5 #wheel up
Axis_Down add volume -5 #wheel down
Right seek 5 #menu: Right ; Seek | 10 sec forward
Left seek -5 #menu: Left ; Seek | 10 sec backward
Ctrl+Right seek 60 #menu: Ctrl+Right ; Seek | 1 min forward
Ctrl+Left seek -60 #menu: Ctrl+Left ; Seek | 1 min backward
Per utilizzarle basta copiare il codice nel file input.conf che bisogna creare nella cartella portable_config
Configurazione
Ho creato due configurazioni: una con le impostazioni "max" e una con le impostazioni "minime".
Le impostazioni "minime" le utilizzo su un Surface Pro 4 con i5 e 4GB di RAM, mentre le impostazioni "max" le utilizzo su un desktop con i5 4670 e Gtx 970.
Entrambe le configurazioni hanno in comune: smoothmotion e Reclock.
Configurazione "max"
# https://mpv.io/manual/master/#configuration-files
[default]
# Generic
vo=gpu
opengl-early-flush=no
opengl-pbo
dither-depth=8
sigmoid-upscaling=yes
dither=fruit
dither-size-fruit=8
temporal-dither=yes
deband=yes
deband-iterations=3
hwdec=no
gpu-api=opengl
gpu-context=dxinterop
fbo-format=rgba32f
# Audio
ao=wasapi
audio-exclusive=yes
audio-channels=7.1
ad-lavc-downmix=no
audio-samplerate=48000
audio-format=s32
audio-pitch-correction=yes
volume=100
volume-max=100
audio-file-auto=fuzzy
audio-file-paths=Audio;Audio-ita
# Video
dscale=bicubic
correct-downscaling=yes
tscale=oversample
interpolation
video-sync=display-resample
scale=haasnsoft
cscale=haasnsoft
linear-scaling=yes
scaler-lut-size=10
# Subs
blend-subtitles=no
sub-font=Arial
sub-font-size=45
sub-codepage=ISO-8859-1
sub-use-margins=yes
sub-ass-force-margins=yes
stretch-image-subs-to-screen=yes
sub-fix-timing=no
sub-auto=fuzzy
sub-file-paths=Subs;Subs-ita
# Track selection
alang=ita,eng
slang=ita,itIT,eng,enUS
# Program behavior
save-position-on-quit=yes
autofit-larger=88%
pause=no
# OSC
script-opts=osc-deadzonesize=0,osc-minmousemove=3,osc-fadeduration=500,osc-hidetimeout=2000,osc-boxalpha=175
Impostazioni "minime"
# https://mpv.io/manual/master/#configuration-files
[default]
# Generic
vo=gpu
opengl-early-flush=no
opengl-pbo
dither-depth=8
sigmoid-upscaling=yes
dither=ordered
deband=no
hwdec=d3d11va
hwdec-codecs=h264
gpu-api=d3d11
gpu-context=d3d11
fullscreen=yes
# Audio
ao=wasapi
audio-exclusive=yes
audio-channels=7.1
ad-lavc-downmix=no
audio-samplerate=48000
audio-format=s32
audio-pitch-correction=yes
volume=100
volume-max=100
audio-file-auto=fuzzy
audio-file-paths=Audio;Audio-ita
# Video
dscale=bicubic
correct-downscaling=yes
tscale=oversample
interpolation
video-sync=display-resample
scale=oversample
cscale=oversample
# Subs
blend-subtitles=no
sub-font=Arial
sub-font-size=45
sub-codepage=ISO-8859-1
sub-use-margins=yes
sub-ass-force-margins=yes
stretch-image-subs-to-screen=yes
sub-fix-timing=no
sub-auto=fuzzy
sub-file-paths=Subs;Subs-ita
# Track selection
alang=ita,eng
slang=ita,itIT,eng,enUS
# Program behavior
save-position-on-quit=yes
autofit-larger=88%
pause=no
# OSC
script-opts=osc-deadzonesize=0,osc-minmousemove=3,osc-fadeduration=500,osc-hidetimeout=2000,osc-boxalpha=175
Per utilizzare una delle due configurazioni basta copiare il codice nel file mpv.conf che bisogna creare nella cartella portable_config
Shaders
Si possono importare in mpv, prescalers e shaders, simili a quelli utilizzati in madVR e avere le stesse opzioni di qualità
Un'ottima fonte di precalers è:
https://github.com/bjin/mpv-prescalers/tree/master
Qui si trovano le versioni già compilate di nnedi3, super-xbr e ravu. Nelle cartelle compute e gather ci sono le versioni OpenCL (più performanti) mentre nella cartella vulkan, ovviamente la versione vulkan.
Personalmente utilizzo superxbr-rgb, nnedi3 e nnedi3-chroma (che non viene più compilato dall'autore)
Di questo repository (https://github.com/haasn/gentoo-conf/tree/xor/home/nand/.mpv/shaders) utilizzo antiring e noise (inserisce del grain dell'immagine per coprire eventuali difetti)
Altro repository è https://gist.github.com/igv che contiene adaptive-sharpen, Finesharp e SuperRes, che personalmente non utilizzo
Una volta scaricati gli shaders che si vuole utilizzare, si devono copiare all'interno della cartella "shaders", da creare dentro portable_config
A questo punto inserire in mpv.conf le righe
# Glsl
glsl-shaders-append="~~/shaders/nnedi3-nns64-win8x4-chroma.hook"
glsl-shaders-append="~~/shaders/nnedi3-nns256-win8x4.hook"
glsl-shaders-append="~~/shaders/superxbr-rgb.hook"
glsl-shaders-append="~~/shaders/antiring.hook"
glsl-shaders-append="~~/shaders/noise.glsl"
Modificate gli shaders secondo i vostri gusti seguendo questa falsa riga
Surround virtuale
Per il surround virtuale in cuffia, consiglio di visitare il thread specifico:
https://www.hwupgrade.it/forum/showthread.php?t=2837862
Basta seguire la guida e si avrà un ottima virtualizzazione in cuffia
HDR->SDR
Sono riuscito a trovare dei valori che permettono un'ottima conversione da sorgente HDR e, nel caso si visualizzino video in questo formato, bisogna aggiungere ad mpv.conf
# HDR
tone-mapping=reinhard
tone-mapping-param=0.25
tone-mapping-desaturate=0.14
hdr-compute-peak=yes
Premetto che se si ricerca la qualità assoluta senza compromessi, il gruppo MPC-HC, LAV, madVR resta sempre il Gold Standard, soprattutto per quanto riguarda la conversione HDR > SDR, dato che madVR è ancora l'unico in grado di effettuare la giusta conversione.
Per il resto, se si ricerca un player portable che abbia versatilità, buone prestazioni e alcune funzioni interessanti, MPV svolge egregiamente il suo dovere.
Fra le funzioni interessanti che ho potuto riscontrare in MPV ci sono: hrtf con OpenAL su Windows 10 / Linux, e le funzioni di smoothmotion e reclock già integrate.
Personalmente lo utilizzo in coppia con il programma per il surround virtuale in cuffia, per cui l'audio multicanale non va incontro a downmix e imposto l'uscita di mpv a 8 canali
Ricordo che ognuno dovrà personalizzare la configurazione secondo i propri gusti e soprattutto in base alle capacità di elaborazione del proprio pc. Fornisco la mia configurazione come punto di partenza oppure la si può utilizzare così come la propongo se è di vostro gradimento :D
Per verificare i timings su osd si deve usare la combinazione: Maiusc+i durante la riproduzione di un video e cambiare pagina dell'osd con 1 e 2
Installazione
Il player può essere scaricato dalla pagina principale del progetto: https://mpv.io/installation/
In particolare utilizzo la build by shinchiro a 64 bit.
Una volta scompattato l'archivio, create una cartella all'interno con il nome di portable_config
All'interno della cartella bisogna creare due file di configurazione: mpv.conf (che contiene la configurazione) e input.conf (che contiene i key bindigs personalizzati).
Key bindings
Nella cartella docs è presente un'immagine che mostra le funzioni di mpv mappate di default sulla tastiera.
Io ho apportato alcune modifiche ma si possono lasciare tranquillamente quelle di default.
Le mie modifiche consistono in:
#key command key caption menu path/caption
MBTN_LEFT cycle pause #menu: Click Sx ; Play/Pause
Ctrl++ add video-zoom 0.1 #menu: Ctrl++ ; Pan && Scan | Increase Size
Ctrl+- add video-zoom -0.1 #menu: Ctrl+- ; Pan && Scan | Decrease Size
MBTN_LEFT_DBL cycle fullscreen #menu: DBL ; Cycle Fullscreen
a cycle audio #menu: a ; Cycle Audio
s cycle sub #menu: s ; Cycle Subtitle
S ignore
c screenshot #menu: c ; Screenshot
C screenshot video
Up add chapter 1 #menu: Up
Down add chapter -1 #menu: Down
Axis_Up add volume 5 #wheel up
Axis_Down add volume -5 #wheel down
Right seek 5 #menu: Right ; Seek | 10 sec forward
Left seek -5 #menu: Left ; Seek | 10 sec backward
Ctrl+Right seek 60 #menu: Ctrl+Right ; Seek | 1 min forward
Ctrl+Left seek -60 #menu: Ctrl+Left ; Seek | 1 min backward
Per utilizzarle basta copiare il codice nel file input.conf che bisogna creare nella cartella portable_config
Configurazione
Ho creato due configurazioni: una con le impostazioni "max" e una con le impostazioni "minime".
Le impostazioni "minime" le utilizzo su un Surface Pro 4 con i5 e 4GB di RAM, mentre le impostazioni "max" le utilizzo su un desktop con i5 4670 e Gtx 970.
Entrambe le configurazioni hanno in comune: smoothmotion e Reclock.
Configurazione "max"
# https://mpv.io/manual/master/#configuration-files
[default]
# Generic
vo=gpu
opengl-early-flush=no
opengl-pbo
dither-depth=8
sigmoid-upscaling=yes
dither=fruit
dither-size-fruit=8
temporal-dither=yes
deband=yes
deband-iterations=3
hwdec=no
gpu-api=opengl
gpu-context=dxinterop
fbo-format=rgba32f
# Audio
ao=wasapi
audio-exclusive=yes
audio-channels=7.1
ad-lavc-downmix=no
audio-samplerate=48000
audio-format=s32
audio-pitch-correction=yes
volume=100
volume-max=100
audio-file-auto=fuzzy
audio-file-paths=Audio;Audio-ita
# Video
dscale=bicubic
correct-downscaling=yes
tscale=oversample
interpolation
video-sync=display-resample
scale=haasnsoft
cscale=haasnsoft
linear-scaling=yes
scaler-lut-size=10
# Subs
blend-subtitles=no
sub-font=Arial
sub-font-size=45
sub-codepage=ISO-8859-1
sub-use-margins=yes
sub-ass-force-margins=yes
stretch-image-subs-to-screen=yes
sub-fix-timing=no
sub-auto=fuzzy
sub-file-paths=Subs;Subs-ita
# Track selection
alang=ita,eng
slang=ita,itIT,eng,enUS
# Program behavior
save-position-on-quit=yes
autofit-larger=88%
pause=no
# OSC
script-opts=osc-deadzonesize=0,osc-minmousemove=3,osc-fadeduration=500,osc-hidetimeout=2000,osc-boxalpha=175
Impostazioni "minime"
# https://mpv.io/manual/master/#configuration-files
[default]
# Generic
vo=gpu
opengl-early-flush=no
opengl-pbo
dither-depth=8
sigmoid-upscaling=yes
dither=ordered
deband=no
hwdec=d3d11va
hwdec-codecs=h264
gpu-api=d3d11
gpu-context=d3d11
fullscreen=yes
# Audio
ao=wasapi
audio-exclusive=yes
audio-channels=7.1
ad-lavc-downmix=no
audio-samplerate=48000
audio-format=s32
audio-pitch-correction=yes
volume=100
volume-max=100
audio-file-auto=fuzzy
audio-file-paths=Audio;Audio-ita
# Video
dscale=bicubic
correct-downscaling=yes
tscale=oversample
interpolation
video-sync=display-resample
scale=oversample
cscale=oversample
# Subs
blend-subtitles=no
sub-font=Arial
sub-font-size=45
sub-codepage=ISO-8859-1
sub-use-margins=yes
sub-ass-force-margins=yes
stretch-image-subs-to-screen=yes
sub-fix-timing=no
sub-auto=fuzzy
sub-file-paths=Subs;Subs-ita
# Track selection
alang=ita,eng
slang=ita,itIT,eng,enUS
# Program behavior
save-position-on-quit=yes
autofit-larger=88%
pause=no
# OSC
script-opts=osc-deadzonesize=0,osc-minmousemove=3,osc-fadeduration=500,osc-hidetimeout=2000,osc-boxalpha=175
Per utilizzare una delle due configurazioni basta copiare il codice nel file mpv.conf che bisogna creare nella cartella portable_config
Shaders
Si possono importare in mpv, prescalers e shaders, simili a quelli utilizzati in madVR e avere le stesse opzioni di qualità
Un'ottima fonte di precalers è:
https://github.com/bjin/mpv-prescalers/tree/master
Qui si trovano le versioni già compilate di nnedi3, super-xbr e ravu. Nelle cartelle compute e gather ci sono le versioni OpenCL (più performanti) mentre nella cartella vulkan, ovviamente la versione vulkan.
Personalmente utilizzo superxbr-rgb, nnedi3 e nnedi3-chroma (che non viene più compilato dall'autore)
Di questo repository (https://github.com/haasn/gentoo-conf/tree/xor/home/nand/.mpv/shaders) utilizzo antiring e noise (inserisce del grain dell'immagine per coprire eventuali difetti)
Altro repository è https://gist.github.com/igv che contiene adaptive-sharpen, Finesharp e SuperRes, che personalmente non utilizzo
Una volta scaricati gli shaders che si vuole utilizzare, si devono copiare all'interno della cartella "shaders", da creare dentro portable_config
A questo punto inserire in mpv.conf le righe
# Glsl
glsl-shaders-append="~~/shaders/nnedi3-nns64-win8x4-chroma.hook"
glsl-shaders-append="~~/shaders/nnedi3-nns256-win8x4.hook"
glsl-shaders-append="~~/shaders/superxbr-rgb.hook"
glsl-shaders-append="~~/shaders/antiring.hook"
glsl-shaders-append="~~/shaders/noise.glsl"
Modificate gli shaders secondo i vostri gusti seguendo questa falsa riga
Surround virtuale
Per il surround virtuale in cuffia, consiglio di visitare il thread specifico:
https://www.hwupgrade.it/forum/showthread.php?t=2837862
Basta seguire la guida e si avrà un ottima virtualizzazione in cuffia
HDR->SDR
Sono riuscito a trovare dei valori che permettono un'ottima conversione da sorgente HDR e, nel caso si visualizzino video in questo formato, bisogna aggiungere ad mpv.conf
# HDR
tone-mapping=reinhard
tone-mapping-param=0.25
tone-mapping-desaturate=0.14
hdr-compute-peak=yes