Sandro kensan <
ken...@kensan.it> wrote:
> On 31/05/23 16:09, Joe wrote:
>> Sandro kensan <
ken...@kensan.it> wrote:
>>>
>>> ecco perché conosci bene yt-dlp che non avevo mai visto e non sospettavo
>>> che fosse possibile una gestione così accurata del formato di video da
>>> scaricare.
>>
>> Molto di più... ad esempio, siccome la mia scheda fa fatica con
>> i video a 60 fps, posso istruirlo affinché cerchi il formato
>> disponibile con fps inferiore ad esempio a 50 fps, codifica h264
>> e risoluzione verticale maggiore possibile... tipicamente salta
>> fuori un 720p h264 30fps o giù di lì, che la mia GPU digerisce
>> benissimo.
>
> ho visto dal file conf gli fps inferiori a 50. Io potrei settarli a 60
> immagino.
Sì, ma quella riga lì prendila solo come esempio, perché in realtà
prima di andare a valutare l'fps, l'avevo modificata e mi sceglie
prioritariamente il formato "legacy" non dash, con audio e video già
mixati, il codice sarebbe "22" e si tratta di mp4 720p con video in
h264 e audio AAC a 192 kbps. Il "95" è per gli stream live..
Avevo messo in priorità quelli lì perché ho notato che sono più rapidi
nell'aprirsi e scariscarsi, e faccio prima a visionare rapidamente
il contenuto dei video mentre sto cercando qualcosa...
Per i formati vedi qua:
https://gist.github.com/AgentOak/34d47c65b1d28829bb17c24c04a0096f
ma non fidarti del template di youtube-dl, per yt-dlp la sintassi
dovrebbe essere un po' diversa, ti rimando a cercartela nel dettaglio.
Comunque sì, adatta la tua direttiva alle possibilità della tua scheda,
per faer qualche test e vedere cosa regge, quanta cpu impiega ecc, puoi
usare uno dei tanti video di test AV sync, tipo ad esempio:
yt-dlp -F
https://www.youtube.com/watch?v=jRA1HBZhJ18
298 mp4 1280x720 60 │ 147.10MiB 686k dash │ avc1.640020 686k video only 720p60, mp4_dash
302 webm 1280x720 60 │ 128.71MiB 600k dash │ vp9 600k video only 720p60, webm_dash
299 mp4 1920x1080 60 │ 261.96MiB 1221k dash │ avc1.64002a 1221k video only 1080p60, mp4_dash
303 webm 1920x1080 60 │ 250.22MiB 1166k dash │ vp9 1166k video only 1080p60, webm_dash
Imposti la configurazione in modo che ti scelga il 299 che dovrebbe
decodificarlo via GPU, e l'audio scegli tu, prendi il migliore, per
quel video lì è il 140. Configurato così mpv, ci trascini dentro il
link e vedi... se sta in sincro molto bene (dovrebbe farcela, è la
mia scheda che è troppo economica ormai), nota anche il consumo cpu,
gpu (radeontop era se ben ricordo) e valuta anche se la banda della
connessione internet che hai è adeguata.
Poi puoi fare la prova scegliendo il vp9, che invece dovrebbe caricare
tutto in spalla al processore, e lì dovresti vedere una bella differenza
anche da radeontop.
Configurazione a parte, ho anche uno script di mpv associato alla
scorciatoia Ctrl-f da cui posso scegliere il formato durante la
riproduzione del video, baypassando la configurazione di mpv quindi.
youtube-quality.lua
https://github.com/jgreco/mpv-youtube-quality
Con questo puoi fare delle prove al volo, forse è più comodo,
una volta trovato il formato che gira meglio lo imposti in
mpv.conf...
Come ho già scritto io ho scelto una config con priorità alla
rapidità di apertura ecc... poi se un video mi interessa vederlo
in qualità migliore, faccio ctrl-f e scelgo l'h264 a 1080p se non
è a più di 50 fps, se c'è solo a 60fps, a volte "spengo" la
decodifica hardware della GPU commentando la riga hwdec di mpv.conf,
così decodifica via software e anche se la CPU sale anche sopra
il 50% pazienza, perlomeno non mi dà problemi di fuori sincro.
Per farlo ho un minimo script bash:
-----------
#!/bin/bash
CONFIG=~/.config/mpv/mpv.conf
case $1 in
on)
sed -i "s/#hwdec=auto/hwdec=auto/" $CONFIG
sed -i "s/#vo=gpu/vo=gpu/" $CONFIG
;;
off)
sed -i "s/hwdec=auto/#hwdec=auto/" $CONFIG
sed -i "s/vo=gpu/#vo=gpu/" $CONFIG
;;
*)
echo "Err - invalid argument"
echo
echo "Usage: $(basename $0) on | off"
;;
esac
----
Non è comunque comodissimo perché la finestra già aperta di MPV
mantiene la vecchia configurazione... quindi devo chiuderla e
poi do:
gpudec off
win+v ---> per aprire una nuova finestra di mpv
quindi trascino nuovamente il link dentro
e infine ctrl+f per scegliere il formato di qualità
È una manovra che faccio molto di rado...
>> Questo parlando di uso al volo di youtube.. se poi ti interessa
>> un video e lo vuoi vedere con calma puoi sempre scaricare il
>> formato più grosso e poi convertirlo con ffmpeg producendo un
>> nuovo video codificato come vuoi tu ecc ecc... ma è un altro
>> discorso.
>
> Questa è una possibilità. Una volta lo facevo con una estensione poi
> con un sito esterno. Pensavo non si potesse più fare.
Perché mai....
Con ffmpeg converti quello che vuoi basta avere i codec installati.
> Mi viene in mente un particolare: la .cache si cancella di tanto in
> tanto o devo cancellarla manualmente quando raggiungerà dimensioni
> troppo grandi? Non conviene metterla su /tmp che si resetta ad ogni riavvio?
Quando chiudi la finestrella di mpv se ne va anche la cache,
provare per credere...
> Ho fato alcune prove oggi e a me pare che l'addon non funzioni. li ho
> provati tutti ma sono solo fork.
Non ti può "parere", lo vedi precisamente:
- apri il tubo dal browser
- play sul video
- click destro sul video e scegli "stats for nerds"
- controlla la riga "Codecs"
Esempio per un video a caso:
------------------------------
avc1.640028 (137) / opus (251)
------------------------------
Se faccio la prova del nove con "yt-dlp -F" trovo proprio
che "137" significa:
--------------------
137 mp4 1920x1080 30 │ 684.63MiB 428k dash │ avc1.640028 428k video only 1080p, mp4_dash
--------------------------------------------------
mentre l'audio:
--------------------
251 webm audio only 2 │ 145.82MiB 91k dash │ audio only opus 91k 48k medium, webm_dash
--------------------------------------------------
Se disabilito un attimo l'estensione "enhanched-h264ify" e
aggiorno la pagina dello stesso video, ecco che youtube mi
serve un altro formato video (per l'audio sceglie sempre lo
stesso di prima):
---------------------------------------
Codecs av01.0.08M.08 (399) / opus (251)
---------------------------------------
È addirittura un AV1, che al momento credo poche schede video
riescano a decodificare via hardware. Per la cronaca, così il
mio processore segna 97% di carico (ricordo che è un vecchio
core2quad, era prevedibile ovviamente). Insomma meglio ri-abilitare
l'estensione che forza h264... anche se... la CPU presenta un carico
dal 20 al 40%, lasciandolo girare si abbassa un po' e si assesta
intorno al 20% (probabilmente perché la pagina youtube macina
anche altra roba appena ricaricata, carica i commenti, suggerimenti
ecc ecc...).
Io non ho modo di vedere il carico della GPU, ho nvidia-msi ma
la mia scheda è talmente scaccia che non viene considerata...
Se poi fermo il video, la cpu va a 1% 0, 2% giù di lì...
Apro mpv con hwdec attivo e ci trascino il link dello stesso video:
- shift + I per vedere le info e leggo
- video h264
- hwdec VDPAU
- native resolution 1280x720
Perché l'impostazione di mpv sceglie il formato "22" appunto 720 ecc,
quindi per fare il paragone con la riproduzione precedente in cui
serviva il 1080p h264:
- faccio ctrl-f e scelgo il formato uguale a prima con codec avc1.640028
- avvio la riproduzione
- leggo sempre con ctrl+I: H264, hwdec VDPAU e risoluzione sta volta a 1920x1080
Ed ecco che la CPU ora non sale mai oltre il 2-3%.
Se scelgo allo stesso modo in mpv il VP9: non leggo più VDPAU dalle info,
e cpu al 15-20% (pensavo peggio)
Scegliendo AV1: si legge "libdav1d" quindi niente VDPAU ovviamente e la
cpu sta sul 35-40%. La libreria libdav1 serviva proprio per il decoding
degli AV1 ovviamente via software, ricordo che l'avevo messa tempo fa.
In sintesi, da firefox anche con h264 forzato, fa abbastanza peggio di
mpv.
>> ~/.config/mpv/mpv.conf
>>
>> --------------------------------
>> volume=10
Sì che puoi! Tasti 9 per meno e 0 per più volume... ma una ricerca falla
però, che ste cose sono l'utilizzo base base base. Nella mia impostazione
il volume di default è 10, puoi settarlo come preferisci, "volume=100"
dovrebbe darti il massimo disponibile dal sistema. Se fosse ancora basso
devi alzarlo a livello di sistema, da pulse o alsa o quel che hai su mageia.
> Mi ha aperto una finestra grande che suppongo sia 1080p e poi su un
> altro video una 720p. Forse è il caso di impostare 720 per risparmiare
> Giga: devo cambiare i 1080 in 720?
> ytdl-format=22/95/best[height <= 720][vcodec ^= ?avc][fps <=
> 50]/best[height <= 720][vcodec ^= ?avc]/best
>
> darò una occhiata in rete o sul man.
Vedi sopra.. lasciando il "22" ti prende preferibilmente il
formato h264 720 non dash. Per risparmiare Giga dici...
lì non ti posso aiutare, devi vedere tu quanto trffico hai,
quanto ti serve la qualità dei video ecc ecc.
Se metti "18" invece di 22 ti tira giù il 360p che è ancora
più economico in termini di banda. Poi dipende un po' da cosa
ti serve, se devi leggere dello scritto nei video, un minimo
di qualità fa molto comodo.
In ogni caso sì fai riferimento al manuale e affianca una bella
ricerca delle istruzioni per yt-dlp in modo da capire il meccanismo
di quella direttiva di scelta automatica...
Quando si apre un video, ripeto, se premi ctrl+I appaiono le
informazioni incluso il formato del video, la risoluzione il codec,
il driver/API che stai usando per la decodifica ecc ecc... per cui
da lì hai la certezza sia della risoluzione del video corrente, sia
la modalità che il player sta usando per riprodurlo (VDPAU nel mio
caso oppure no, da te vedrai scritto "(vaapi)" credo).
Ti lascio anche un video da cui si vede mpv in dwm più o meno
schermata simile a quella che mi ritrovo io, giusto per darti l'idea
delle finestre gestite automaticamente e delle informazioni su
cpu ram ecc che si vedono nella barra in cima, ne avavmo parlato
in precedenza...
https://www.youtube.com/watch?v=w-g04TLp0tg
Le finestre lì le gestisce il window manager, mentre su kde,
mpv si apre di default in modo proporzionale alla risoluzione
o qualcosa del genere.
Puoi impostarlo però come vuoi, si tratta di vedere come fare,
nel man c'è scritto, ma fai prima a cercare in rete mi sa. Io
al volo non lo ricordo.
Mi pare che di carne al fuoco ne ho messa, vedi un po' tu come
può servirti... ovvio che dovrai metterci un po' del tuo per
ottenere una configurazione soddisfacente, ma così parti già
abbastanza instradato.