Quello che voglio è quello di broadcast
un video della videocamera Android in posizioni remote, per chiunque di guardare quel video sul proprio cellulare o sito web. Ho avuto successo con lo unicast
sul lettore vlc sul mio pc. Ho provato il server red5
server, Adobe media server
, ffmpeg
ma tutto in vail. Ognuno di loro era in grado di eseguire il video solo da broadcast
da un file preregistrato ma non da uno streaming live. Qualcuno può suggerirmi cosa faccio.Broadcasting Android Camera Video
risposta
Ho letto (penso che fosse anche su StackOverflow) che è possibile fornire al MediaRecorder un FileHandle di una connessione TCP. Quindi puoi ascoltare quella connessione, leggere i dati, impacchettarli e rinviarli come RTSP/RTP-Stream.
Se trovo il post originale, farò riferimento qui.
EDIT:
L'originale messaggio era: Streaming Video From Android
E la parte che riguarda il descrittore di file è da: http://www.mattakis.com/blog/kisg/20090708/broadcasting-video-with-android-without-writing-to-the-file-system
Solo nel caso, cito l'esempio secondo dal blog:
String hostname = "your.host.name";
int port = 1234;
Socket socket = new Socket(InetAddress.getByName(hostname), port);
ParcelFileDescriptor pfd = ParcelFileDescriptor.fromSocket(socket);
MediaRecorder recorder = new MediaRecorder(); // Additional MediaRecorder setup (output format ... etc.) omitted
recorder.setOutputFile(pfd.getFileDescriptor());
recorder.prepare();
recorder.start();
Tuttavia, questo invia solo il Video Fi le Dati sul filo. Puoi salvarlo e poi riprodurlo. Ma come detto, non è ancora un flusso.
UPDATE: Non è nemmeno necessario utilizzare un socket TCP per il primo passaggio. Ho appena inciampato su "LocalSocket" (1), che ti dà anche un FileHandle per alimentare il MediaRecorder. Questi socket locali sono "AF_LOCAL/UNIX socket del flusso del dominio". Vedi http://developer.android.com/reference/android/net/LocalSocket.html
Non ho ancora provato tutto questo da oggi, ma lo farò presto. Quindi forse posso essere di maggiore aiuto nel prossimo futuro :)
(1) LocalSocket non è utilizzabile sulle versioni Android più recenti per motivi di sicurezza! Vedi aggiornamento dal 25/11/2015.
UPDATE 2: appena visto nelle Fonti Android il "OUTPUT_FORMAT_RTP_AVP". Ma è nascosto :(Quindi credo che sarà disponibile nelle versioni API future di Android https://github.com/android/platform_frameworks_base/blob/master/media/java/android/media/MediaRecorder.java Linea 219:.
public static final int OUTPUT_FORMAT_RTP_AVP = 7;
Non ho provato solo ingannando la pelle, fornendo un hardcoded 7
... Se nessuno lo fa, si prega di lasciare un commento qui
UPDATE 2015-11-25
ho appena incontrato libstreaming:! https://github.com/fyhertz/libstreaming ho fatto non guardarlo troppo profondamente, ma sembra che ci sia molto da imparare sullo streaming da Android da questo progetto (se non solo usandolo).Ho letto che la soluzione LocalSocket non è valida per le versioni Android più recenti :(Ma presentano un'alternativa: ParcelFileDescriptor.
- 1. Come sviluppare un lettore video che riceve lo streaming video su broadcasting/multicasting wi-fi?
- 2. Custom camera android
- 3. Android x86 virtualbox + camera
- 4. android: camera onPause/onRisume problema
- 5. Android Camera Preview Frame Timestamp
- 6. Errore registrazione video Android
- 7. Streaming video da Android
- 8. Audio/video fuori sincrono dopo lo switch camera
- 9. boost :: broadcasting ASIO UDP
- 10. Broadcasting over Wi-Fi Direct
- 11. Wrapper Library per Android Camera API
- 12. android camera error 1001 - che diamine è?
- 13. Camera Tutorial per Android (utilizzando SurfaceView)
- 14. Filtro video Android
- 15. Fotocamera Android, onPictureTaken (byte [] imgData, Camera camera) metodo e PictureCallback mai chiamato
- 16. WebRTC broadcasting su larga scala
- 17. iPhone SDK 3.0 Camera Accesso
- 18. Video di registrazione Android senza audio
- 19. iphone camera show focus rettangle
- 20. Android & OpenCV: omografia alla Camera Pose considerare Camera Intrinsics e retroproiezione
- 21. Streaming video live tra due telefoni Android
- 22. video Android, ascolto audio ma nessun video
- 23. Android: registra video con autofocus "continuo"
- 24. Broadcasting con Jersey SSE: Rileva connessione chiusa
- 25. Numpy Array Broadcasting con diverse dimensioni
- 26. Camera Errore 100
- 27. iPhone camera e OpenCV
- 28. calibrazione camera MATLAB toolbox
- 29. Android: Attività ottenendo Distrutto dopo aver chiamato Camera Intent
- 30. Come impostare Telaio Live Camera Image Catturare in Android
Sono stato in grado di inviare stream raw al server in questo modo, ma non sono mai stato in grado di capire Si può dare l'handle del socket client e spingere tutto al server –
Suppongo che sarà in alcuni pacchetti di pacchetti. Quindi dovrete prima depacketize per ottenere i dati grezzi e poi riconfezionarli in pacchetti RTP. H264 è diverso da MPEG_4_SP in Fileformat – Fildor
Sarebbe molto interessante per me prendere un file audio memorizzato lokal sul mio android e inviarlo via RTP al mio PC (stessa wlan) dove posso ascoltarlo. fare questo? – B770