MPV - guardare streaming live da facebook

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3788
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

MPV - guardare streaming live da facebook

Messaggio da joe »

Come da oggetto, non riesco a riprodurrecon il player MPV video che vengono messi in streaming live su facebook.

Ho visto in rete che ci sarebbero procedure per trovare il link del flusso video da dare in pasto al player. Ma a me non funziona.
Avete qualche idea?

I video in questione sono comunque visibili dalla pagina facebook via browser, però non è il massimo della vita, sia in termini di carico sulla cpu che di comodità...

Grazie in anticipo!

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: MPV - guardare streaming live da facebook

Messaggio da rik70 »

Ma i live o quelli caricati?

Perché i secondi da me funzionano.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3788
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: MPV - guardare streaming live da facebook

Messaggio da joe »

Si quelli "statici" funzionano, mi riferivo a quelli in diretta come da oggetto.
Ne hai provato qualcuno live?

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3788
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: MPV - guardare streaming live da facebook

Messaggio da joe »

Qua spiegano una soluzione, ma a me non funziona...
https://www.youtube.com/watch?v=7fQPGihFbm0

In pratica vado col browser (firefox) alla pagina del video.
Premo F12 (strumenti sviluppatore).
Selezionata la scheda "rete" e sotto-scheda "tutti".
Nel filtro digito "mpd" senza virgolette. Questo mostra tutti i links dello streaming se ho ben capito... se ne aggiungono costantemente di nuovi...
Copio l'url del primo link mpd

Alla riga di comando in terminale lancio

$ mpv '$URL_COPIATO_SOPRA'

Come dicevo a me con mpv non funziona.


EDIT:
Anzi no, cioè con mpv non funziona confermo. Ma con VLC sì!

Avevo provato anche prima ma aprivo il link dall'interfaccia grafica di vlc da "riproduci flusso di rete". E VLC si chiudeva al volo...
Invece lanciando da riga di comando:

$ vlc '$URL_COPIATO_COME_SPIEGATO_SOPRA'

Così funziona!
Solo che non uso VLC di solito e ho notato che comunque la CPU vola al 100% durante la riproduzione del link.
Ho dato un'occhiata alle impostazioni video e ho impostato la modalità di uscita video da automatica a:

VDPAU

Ricordo che avevo impostato così anche mpv, utilizzo i driver proprietari nvidia e a quanto pare quella modalità fa si che la CPU viaggi a valori molto più bassi dal 5% al 30%.

OK.
Diciamo che i piacerebbe utilizzare MPV, come faccio di solito.
Se avete qualche idea..

Per chi vuole provare a fare un test:
Non vi metto links su pagine facebook di video in diretta perché quando poi le andate a vedere magari il video è già concluso e non è più in diretta.
Per trovarne uno:
- aprire questa pagina col browser: https://www.facebook.com/watch/live/
- scegliere un video in diretta a caso
- seguire la procedura descritta sopra

Grazie in anticipo!

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: MPV - guardare streaming live da facebook

Messaggio da rik70 »

A me funziona in questo modo(che poi è la stessa cosa che fai tu):

con firefox apro il debug di rete - scorciatoia tastiera: 'CTRL+Maiusc+E' - durante la riproduzione del video e trovo il "tipo "dash" e do in pasto il link a mpv col flag '--ytdl=no' per velocizzare il caricamento.

Ma non sembra funzionare molto bene: dopo qualche minuto inizia a ripetere continuamente lo stesso frammento del flusso e l'output da continui errori di questo tipo

Codice: Seleziona tutto

Audio/Video desynchronisation detected![...]
Invalid audio PTS:[...]
Neanche passando l'argomento '--no-correct-pts' e specificando il framerate il problema si risolve.

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: MPV - guardare streaming live da facebook

Messaggio da rik70 »

P.s.
Ad ogni modo, se gli do in pasto direttamente il link del video, l'url viene risolto dall'hook youtube-dl. Quindi non c'è bisogno di tutta quella procedura.
Rimangono però i problemi visti sopra.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3788
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: MPV - guardare streaming live da facebook

Messaggio da joe »

A me non funziona neanche così, non so se abbiamo preso due links diversi, il mio era qualcosa del tipo "blablabla.mpd?altrarobasezasenso".
Può essere che dipenda dal software non troppo aggiornato che ho sulla 14.2...

Codice: Seleziona tutto

$ mpv --version
mpv 0.29.1 Copyright © 2000-2018 mpv/MPlayer/mplayer2 projects
 built on Tue Sep 24 14:06:28 CEST 2019
ffmpeg library versions:
   libavutil       56.22.100
   libavcodec      58.35.100
   libavformat     58.20.100
   libswscale      5.3.100
   libavfilter     7.40.101
   libswresample   3.3.100
ffmpeg version: 4.1.4

$ youtube-dl --version
2020.03.08
Però ho trovato la soluzione!
streamlink !
https://streamlink.github.io/index.html
https://streamlink.github.io/cli.html

Molto più comodo: gli dai l'url della pagina in cui sta il video e fa tutto lui. Di default prende lo streaming e lo gira a VLC ma si può specificare anche MPV o altri players.

Io l'ho installato via "pip --user" in modo che lo mette in ~/.local/bin disponibile solo all'utente semplice. Pacchetti slackware non ne ho trovati al volo e non ho cercato troppo.
Comunque ho provato così e mi funziona:

Codice: Seleziona tutto

streamlink -p mpv https://www.facebook.com/radiointernet1/videos/4516765815016310/ best
Il link sopra era il primo che mi è uscito... non ho neanche fatto caso a cosa sia e quando leggerete questo messaggio probabilmente la diretta sarà terminata...
Va be' comunque si capisce che è il link alla pagina FB che contiene il video, non è stato necessario passare per "sviluppo web-rete". Molto più comodo.

C'è da sistemare un attimo la cache in modo da ridurre il più possibile eventuali micro interruzioni, ma fondamentalmente funziona.

Inoltre sarebbe ancora più comodo se si potesse impostare come "streaming manager" alternativo a "youtube-dl" qualora quest'ultimo non funzionasse.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3788
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: MPV - guardare streaming live da facebook

Messaggio da joe »

Codice: Seleziona tutto

$ streamlink -p "mpv --demuxer-cache-wait=yes --demuxer-max-bytes=5MiB" https://www.facebook.com/profilename/videos/1234567890/ best
Servirebbe anche l'opzione:

Codice: Seleziona tutto

--cache=yes
Ma nel mio caso ho già nelle impostazioni generali "cache-default=853600".
Con quelle impostazioni, la riproduzione avviene nonappena la cache si riempie con 5 mega di dati derivanti dallo streaming.
In questo modo si assicura un buffer che se la connessione è buona evita fastidiose interruzioni e scatti. Se non è sufficiente a causa di eventuale connessione ancora troppo scarsa, si può mettere in pausa e lasciare che la cache si riempia quanto basta.
Con streamlink si può anche registrare la trasmissione attraverso l'opzione "-o outputfile", oppure registrare e vedere allo stesso tempo con l'opzione "-r outputfile".

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3788
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: MPV - guardare streaming live da facebook

Messaggio da joe »

Rettifico...
Nelle ultime versioni di MPV l'impostazione "cache-default" è stata rimossa.
Da quello che ho letto ci ho capito poco, anzi più ne leggo e meno mi chiarisco le idee, sarà un po' l'inglese in combinazione con argomento di cui ne so poco.

Ad ogni modo, se prima avevo "cache-default=800MiB", adesso se ho ben capito, si può usare "demuxer-max-bytes=800MiB", in combinazione con l'opzione "cache=yes".
In questo modo si abilita l'uso della cache e si dispone il caricamento di 800 mega di dati in anticipo rispetto alla riproduzione.
In tutto questo non ho invece capito bene a cosa servono:
cache-sec=
demuxer-readahead-sec=

Nel manuale però c'è scritto che di default "cache-sec" è impostato ad un valore molto alto e che demuxer-max-bytes serve per limitare questo valore. Inoltre cache-sec ha la precedenza rispetto a demuxer-readahead-sec.
In pratica se si vuole una cache grande per:
1. evitare che gli streaming live vadano a scatti (facendoli partire un attimo in ritardo tenendoli in pausa)
2. mettere in pausa il video anche roba non in diretta e lasciare caricare il video in cache anche fino alla fine... Per poi guardarlo con calma senza aver più bisogno di occupare banda sulla connessione internet

Dovrebbe essere sufficiente attivare "cache=yes" ed eventualmente mettere se il valore di default fosse ancora troppo piccolo impostare "cache-sec" ad un tempo molto lungo, tipo no so 2 ore?

Qualcuno sa spiegarmi in modo semplice come le altre opzioni di demux entrano in gioco e se effettivamente per il mio scopo possano servire a qualcosa oppure no?
Grazie in anticipo!

rik70
Iper Master
Iper Master
Messaggi: 2489
Iscritto il: gio 10 mar 2011, 9:21
Slackware: 15.0
Kernel: 5.15.x-generic
Desktop: Sway
Distribuzione: Arch Linux

Re: MPV - guardare streaming live da facebook

Messaggio da rik70 »

joe ha scritto:
mar 28 apr 2020, 18:47
demuxer-readahead-sec=
Questo in sostanza è il buffering dello stream, ed è usato quando la cache di rete è disabilitata o il valore di cache-secs non supera quello di demuxer-readahead.

--cache, cache-secs riguardano invece la cache di rete, che permette sostanzialmente di precaricare i dati audio/video di un ammontare determinato per consentire di navigare avanti e indietro durante la riproduzione del flusso di rete; diversamente, non sarebbe possibile.
Di converso, l'uso di 'demuxer-readahead-sec + cache disabilitata' non ti permettono il 'seek' di un flusso di rete, ma non ci sono effetti negativi sulla riproduzione. Tuttavia il manuale sembra sconsigliarne l'uso, dato che parla di valore 'fuzzy'(?? Tradurre, please).

MPV comunque gestisce la cache di rete in modo massiccio e automatico, e in teoria non occorrerebbe forzarne l'attivazione - a cosa serve la cache di rete quando riproduci un file locale?

Ovviamente cache di rete e buffering sono correlati, ma assolvono a 2 funzioni diverse.

Nel tuo caso, dato che vuoi attendere che una parte sufficiente di dati venga caricata prima che inizi la riproduzione, senza compromettere la funzione della cache di rete, devi forzare il funzionamento di quest'ultima in modalità buffer.
Per far ciò devi usare gli argomenti --cache-pause-initial=yes --cache-pause-wait=[numero_di_secondi].
L'unica controindicazione è che ti appare la finestra di riproduzione con il video in pausa per il tot di secondi impostato. Ma alla fine questo è un problema solo se vuoi fare il dump del video.

Un'alternativa è usare il buffering, lanciando mpv con questi argomenti:
--demuxer-cache-wait=yes --demuxer-max-bytes=1M.
Limitare il "riempimento del demuxer" è necessario altrimenti il video parte dopo...... un'ora?
Così però perdi i vantaggi di una cache di rete sufficientemente ampia da realizzare gli altri obiettivi, come mettere il video in pausa continuando a caricare i dati del flusso.

Poi, un altro fattore che influisce è il modo in cui ottieni lo stream. Per esempio streamlink non si limita a risolvere l'URL, ma si occupa anche del "trasporto" e dunque la riproduzione col lettore multimediale avviene via pipe o attraverso una sorta di server http che gira sulle interfacce di rete locali. Questo può creare problemi se vuoi mettere il video in pausa per un periodo di tempo abbastanza lungo.
Forse può aiutare lanciare streamlink con l'argomento '--player-no-close', ma questo lo lascio sperimentare a te.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3788
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: MPV - guardare streaming live da facebook

Messaggio da joe »

Riguardo a quest'ultimo punto, leggendo qui sospettavo che il discorso cache lo fasse gestire al player:
https://streamlink.github.io/issues.html

Ma può darsi che abbia interpretato male io...
Sto testando con queste impostazioni:

Codice: Seleziona tutto

cache=yes
cache-dir=~/.cache/mpv
cache-on-disk=yes
E per il momento mi sembra ok, sia come riproduzione di file locali che per streaming live, ad ogni modo il buffer iniziale riesco a regolarlo a mano mettendo in pausa, senza forzare l'inizio dopo tot secondi con le opzioni viste sopra. La dimensiona massima della cache in quel modo è settata al default che comunque sembra molto ampio.
Per quanto riguarda il demux ho lasciato tutto di default.
L'unica cosa che ho notato così è che mi aspettavo di vedere un file di cache nella dir impostata, invece è pare vuota... Di default la cache va ad occupare la ram, e non è il massimo se si vuole una cache ampia, tipo centinaia di mega di roba...Come impostato sopra invece dovrebbe scrivere i dati salvati in cache sul disco nella directory specificata. Sempre che abbia capito correttamente....

Rispondi