Pagina 1 di 1

[RISOLTO] Riproduzione di stream in tempo reale

Inviato: lun 26 ott 2020, 19:27
da Burroughs
Buona sera a tutti, ragazzi.
Questo è uno degli script che utilizzo giornalmente:

Codice: Seleziona tutto

pi@glasgy:~ $ cat /usr/local/bin/capitt
#!/bin/bash
#

SOURCE="http://radiocapital-lh.akamaihd.net/i/RadioCapital_Live_1@196312/master.m3u8"
DESTINATION="file_name_$(date +"%d-%m-%Y").mp3"

cd /media/pi/RASPY/Radio/
/usr/bin/ffmpeg -i "$SOURCE" -acodec mp3 -ab 257k "$DESTINATION"
In pratica scarica lo stream audio di una nota radio italiana e lo salva (in questo caso sul server Webdav del mio Raspberry).
Tutto ok, direte voi, nulla di strano.
Il problema, invece (almeno per me), è il seguente: supponiamo che lo script venga eseguito ogni giorno alle 16.00 e che venga arrestato tre ore dopo, se il file lo riproduco alle 16.10 (dieci minuti dopo l'inizio della registrazione) il player (mettiamo mpv) mi riprodurrà solo i primi dieci minuti della registrazione anche se questa, nel frattempo, continua ad andare avanti.
Ovviamente tutto questo scoccia un po'.
Se il file lo riproduco tramite cellulare avviene lo stesso.
C'è un sistema per aggirare questa, diciamo così, limitazione?
Grazie mille...

Re: Riproduzione di stream in tempo reale

Inviato: mar 27 ott 2020, 14:13
da ilmich
non è affatto strano.. non so se conosci il tipo di file m3u8, ma sostanzialmente è una playlist dove sono indicati gli stream da scaricare (https://it.wikipedia.org/wiki/HTTP_Live_Streaming)

Ovviamente in quanto tale lo streaming non puo' essere statico.. in altre pqrole i player che fanno streaming lo scaricano periodicamente per ottenere via via gli stream aggiornati del contenuto da mostrare (diversamente non sarebbe streaming live).

Cosa che software tipo mplayer (e a sto punto ffmpeg) non fa perchè non sono player di contenuti in streaming di questo tipo.
Di conseguenza ti registra sempre gli stessi 10 minuti (a partire da quando lo lanci)

Re: Riproduzione di stream in tempo reale

Inviato: mar 27 ott 2020, 14:27
da ponce
Burroughs ha scritto:
lun 26 ott 2020, 19:27
Il problema, invece (almeno per me), è il seguente: supponiamo che lo script venga eseguito ogni giorno alle 16.00 e che venga arrestato tre ore dopo, se il file lo riproduco alle 16.10 (dieci minuti dopo l'inizio della registrazione) il player (mettiamo mpv) mi riprodurrà solo i primi dieci minuti della registrazione anche se questa, nel frattempo, continua ad andare avanti.
secondo me invece e' strano... mplayer ha in effetti questo comportamento, ma mpv invece accede continuamente al file e se a questo vengono aggiunte informazioni dovrebbe riprodurre anche quelle fino a che non trova un segmento che non riesce a leggere: l'ho usato spesso per vedere file parziali mentre li copiavo da remoto e ho riscontrato questo comportamento "empiricamente" (sono tiuscito a vedere i contenuti fino alla fine), anche con formati di file "container" (quindi multitraccia) tipo mp4 o mkv, piu' "ostici" da gestire in forma parziale dell'mp3, formato talmente semplice che permette di collegare insieme piu' mp3 con la stessa codifica semplicemente usando "cat".

Re: Riproduzione di stream in tempo reale

Inviato: mar 27 ott 2020, 14:49
da ilmich
infatti bisogna capire se anche ffmpeg supporta lo streaming hls (come mpv).. ma in base a quanto indicato mi sembra apparentemente di no.

Re: Riproduzione di stream in tempo reale

Inviato: mar 27 ott 2020, 15:30
da ponce
mah, io ho provato a lanciare il comando da una shell

Codice: Seleziona tutto

ffmpeg -i http://radiocapital-lh.akamaihd.net/i/RadioCapital_Live_1@196312/master.m3u8 -acodec mp3 -ab 257k test.mp3
e da un'altra shell un minuto dopo ho dato

Codice: Seleziona tutto

mpv test.mp3
e la riproduzione va avanti continuamente finche' non la fermo io, non si ferma dopo un minuto: se guardo l'output di mpv vedo, infatti, che la durata del file che sta riproducendo cresce continuamente.

Re: Riproduzione di stream in tempo reale

Inviato: mar 27 ott 2020, 16:14
da ilmich
Allora forse dipendera dalle versioni di ffmpeg?!?
Io conosco un pochino l'argomento perchè utilizzo molto lo streaming gratuito dei canali in chiaro(non l'ho mai registrato) e ho visto che su una slackware 14.2 senza troppi smanettamenti ci sono riuscito solo con il browser e l'estensione ad-hoc.

Quindi ho studiato un po' e ho capito che quelle playlist m3u8 vanno ricaricate periodicamente tramite il client http utilizzato perchè contengono solo dei frammenti di dimensione fissa (in base alla qualita dello stream possono essere secondi, minuti etc etc).
Di conseguenza se questo refresh non viene fatto dal client in questione (e mplayer non lo fa) ti ritrovi a scaricare esattamente sempre lo stesso stream (ad esempio dal minuto 10 della trasmissione fino al minuto 11)

Magari potrebbe anche essere che non sia questo il problema ed ho frainteso la questione percio dal mio punto di vista forse è meglio attendere qualche feedback

Re: Riproduzione di stream in tempo reale

Inviato: mar 27 ott 2020, 16:19
da ilmich
poi per carita potrebbe anche dipendere dal contenitore dello stream (in questo caso mp3).. se ad occhio il file prodotto sembra contenere piu' di 10minuti, potrebbe anche essere stato generato male o cose cosi

Re: Riproduzione di stream in tempo reale

Inviato: mar 27 ott 2020, 20:12
da Burroughs
Ragazzi, prima di tutto, grazie per le risposte e le prove sul campo che avete fatto.
Oggi pomeriggio ho fatto anch'io una prova come si deve su una registrazione in mp3 che è andata avanti per tre ore: tutto ok, mpv ha aggiornato dinamicamente il contenuto riprodotto ed ho potuto godere della trasmissione saltando le pause musicali e pubblicitarie (questo era lo scopo di tutto 'sto ambaradan).
Evidentemente avevo provato un altro player ieri e da questo era nato il mio erroneo convincimento.
Volevo, a 'sto punto qui, chiedervi, anche se andiamo parecchio off-topic, se esiste un player simile ad mpv su piattaforma mobile, principalmente Android, che supporti la riproduzione dei contenuti anche via network non solo in locale, visto che le registrazioni vengono caricate su un serverino WebDav.
Grazie ancora e scusate per la cappellata.

Re: Riproduzione di stream in tempo reale

Inviato: mar 27 ott 2020, 21:02
da joe
Su android mpv è installabile:

https://play.google.com/store/apps/deta ... .mpv&hl=it

Anche io in passato avevo smanettato con indirizzi m3u8 o similari.
Ricordo che con mplayer non si riusciva in modo liscio, forse ci ero riuscito con qualche centinaio di opzioni aggiunte, ma non ricordo di preciso...
Con mpv invece se il file cresce riesce a starci dietro senza uscire.
Anche lì se a qualcuno non torna potrebbe essere colpa di qualche impostazione nella configurazione di MPV, tipo cache o similari.