[RISOLTO] Riproduzione di stream in tempo reale

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
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
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1019
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

[RISOLTO] Riproduzione di stream in tempo reale

Messaggio 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...
Ultima modifica di Burroughs il mar 27 ott 2020, 21:12, modificato 1 volta in totale.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

ilmich
Master
Master
Messaggi: 1562
Iscritto il: lun 16 lug 2007, 17:39
Slackware: 14.2 64bit
Kernel: 4.19.46
Desktop: dwm
Località: Roma

Re: Riproduzione di stream in tempo reale

Messaggio 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)
ho visto cose che voi astemi non potete immaginare
https://github.com/ilmich

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 2785
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 5.8.16
Desktop: lxde
Località: Pisa
Contatta:

Re: Riproduzione di stream in tempo reale

Messaggio 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".

ilmich
Master
Master
Messaggi: 1562
Iscritto il: lun 16 lug 2007, 17:39
Slackware: 14.2 64bit
Kernel: 4.19.46
Desktop: dwm
Località: Roma

Re: Riproduzione di stream in tempo reale

Messaggio 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.
ho visto cose che voi astemi non potete immaginare
https://github.com/ilmich

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 2785
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 5.8.16
Desktop: lxde
Località: Pisa
Contatta:

Re: Riproduzione di stream in tempo reale

Messaggio 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.

ilmich
Master
Master
Messaggi: 1562
Iscritto il: lun 16 lug 2007, 17:39
Slackware: 14.2 64bit
Kernel: 4.19.46
Desktop: dwm
Località: Roma

Re: Riproduzione di stream in tempo reale

Messaggio 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
ho visto cose che voi astemi non potete immaginare
https://github.com/ilmich

ilmich
Master
Master
Messaggi: 1562
Iscritto il: lun 16 lug 2007, 17:39
Slackware: 14.2 64bit
Kernel: 4.19.46
Desktop: dwm
Località: Roma

Re: Riproduzione di stream in tempo reale

Messaggio 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
ho visto cose che voi astemi non potete immaginare
https://github.com/ilmich

Avatar utente
Burroughs
Linux 4.x
Linux 4.x
Messaggi: 1019
Iscritto il: mer 15 dic 2004, 0:00
Nome Cognome: Andrea Lutri
Kernel: 3.16.0
Desktop: KDE SC 4.13.3
Distribuzione: Arch Linux
Località: Glasgow
Contatta:

Re: Riproduzione di stream in tempo reale

Messaggio 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.
"Two things are infinite: the universe and human stupidity; and I'm not sure about the universe" (Albert Einstein)

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3270
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 14.2
Kernel: 4.4.38
Desktop: KDE-4.14.21

Re: Riproduzione di stream in tempo reale

Messaggio 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.

Rispondi