Autore Topic: Streaming raw mpeg data.  (Letto 442 volte)

Offline fedepass

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung tab 3
  • Sistema operativo:
    win 7
Streaming raw mpeg data.
« il: 07 Maggio 2014, 09:34:33 CEST »
0
Ciao a tutti,

sono da poco entrato nello sviluppo android e ho un problema su cui spero possiate aiutarmi.

Ho una telecamera collegata ad un modulo wifi che invia uno streaming dati (esadecimali) corrispondenti ai frame del formato mpeg.
I dati quindi arrivano come una serie di esadecimali che vanno interpretati e decodificati per essere visualizzati in una videoView.

Vorrei creare una task che mi legge i dati da wifi e me li mette in un buffer il quale viene usato nel task principale per la visualizzazione del video.

Il mio problema è come creare e gestire questo buffer condiviso in cui il wifi mette i dati e il task video li legge e decodifica.
Non so se ci sono soluzioni migliori o più semplici.
Ogni suggerimento è ben accetto.

RIngrazio per l'aiuto
Federico

 

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Streaming raw mpeg data.
« Risposta #1 il: 07 Maggio 2014, 20:33:14 CEST »
0
La cosa che vuoi fare non è per principianti, ti consiglio di iniziare con qualcosa di molto, molto più facile.

È la prima volta che sento il termine streaming esadecimale :-) il termine corretto è binario, se dopo lo visualizzi in esadecimale è solo per tua comodità.

Le API di Android hanno il supporto per lo streaming da rete per determinati formati contenitore, codec audio/video e protocolli di rete:

http://developer.android.com/guide/appendix/media-formats.html

Nel caso di utilizzo di dati non compatibili con API di Android le cose si complicano ulteriormente, servono librerie esterne


Inviato dal mio Nexus 5 utilizzando Tapatalk

adb logcat | tee /tmp/logcat | grep TAG

Offline fedepass

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung tab 3
  • Sistema operativo:
    win 7
Re:Streaming raw mpeg data.
« Risposta #2 il: 08 Maggio 2014, 12:33:14 CEST »
0
Ciao

e grazie della risposta, hai ragione a bacchettarmi, sono troppo abituato a pensare in esadecimale :)

Comunque ho visto i formati supportati da android e la mia telecamera invia i dati binari formattati in h264

La mia domanda è come formattare e interpretare questi dati binari nel fomato h264. Leggendo il buffer del wifi io mi trovo un array di bytes. Quello che non capèisco è come passare questi dati al mediaplayer di android.
Non so se mi sono spiegato,

grazie

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Streaming raw mpeg data.
« Risposta #3 il: 08 Maggio 2014, 15:06:45 CEST »
0
Da come scrivi non sei pratico della programmazione sotto Android, quindi ripeto è complesso, consigli di iniziale con qualche altro progetto più semplice.

Se usi un protocollo di rete sopportato dalle API di Android non ti devi gestire nessun buffer, la gestione del protocollo e la decodifica è fatta tutta internamente. Studiati la classe MediaPlayer, tra gli esempi del SDK di Android c'è un esempio di utilizzo:

http://developer.android.com/reference/android/media/MediaPlayer.html

Inviato dal mio Nexus 5 utilizzando Tapatalk

adb logcat | tee /tmp/logcat | grep TAG

Offline fedepass

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung tab 3
  • Sistema operativo:
    win 7
Re:Streaming raw mpeg data.
« Risposta #4 il: 08 Maggio 2014, 15:28:13 CEST »
0
Ciao,

grazie ancora della risposta, ma non ho molta scelta, è un progetto che mi hanno assegnato a lavoro sapendo che non avevo mai preso in mano Android. In qualche modo devo uscirne.

Guardero' l'esempio dell'sdk. in giro ho trovato post ma la maggior parte leggono file gia presenti sul device (e questo l'ho fatto) oppure si basano su URL di appoggio. Io non posso usare queste due modalità in qunato il device da cui arriva il video non si appoggia a internet e fa uno streaming P2P con il tablet.

Provo a vedere se trovo qualcosa. Nel caso se avete un breve esempio è gradito

Saluti
Federico

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Streaming raw mpeg data.
« Risposta #5 il: 08 Maggio 2014, 15:54:53 CEST »
0
Le cose come ho detto prima si complicano parecchio, devi prenderti i sorgenti di Android (si trovano nel sito ufficiale) e studiarti come funziona la classe precedente, devi conoscere molto bene Android, Java e nel caso più estremo NDK.

Inviato dal mio Nexus 5 utilizzando Tapatalk

« Ultima modifica: 08 Maggio 2014, 15:56:49 CEST da iceweasel »
adb logcat | tee /tmp/logcat | grep TAG

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Streaming raw mpeg data.
« Risposta #6 il: 08 Maggio 2014, 15:58:35 CEST »
0
grazie ancora della risposta, ma non ho molta scelta, è un progetto che mi hanno assegnato a lavoro sapendo che non avevo mai preso in mano Android. In qualche modo devo uscirne.

Se è una cosa assurda, uscirne può voler dire spiegare come e percchè è assurda e reindirizzarla sul binario della fattibilità.


Guardero' l'esempio dell'sdk. in giro ho trovato post ma la maggior parte leggono file gia presenti sul device (e questo l'ho fatto) oppure si basano su URL di appoggio. Io non posso usare queste due modalità in qunato il device da cui arriva il video non si appoggia a internet e fa uno streaming P2P con il tablet.

Se i due oggetti comunicano tramite wifi, la via corretta è usare come URL l'IP del device che trasmette.


Provo a vedere se trovo qualcosa. Nel caso se avete un breve esempio è gradito

Detto sinceramente, maneggiare direttamente il bitstream H264 non è una cosa da "tutorial". E' come cercare un tutorial per modificare il kernel di linux.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline fedepass

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    samsung tab 3
  • Sistema operativo:
    win 7
Re:Streaming raw mpeg data.
« Risposta #7 il: 08 Maggio 2014, 16:09:18 CEST »
0
Grazie,

provero' con il metodo dell'URL

Federico