Lo que quiero es broadcast
un video de la cámara de Android en ubicaciones remotas, para que cualquiera pueda ver ese video en su móvil o sitio web. He tenido éxito al unicast
al reproductor vlc en mi pc. Probé el servidor red5
, Adobe media server
, ffmpeg
servidor pero todo en vail. Cada uno de ellos solo pudo obtener broadcast
video de un archivo pregrabado pero no de ninguna transmisión en vivo. ¿Puede alguien sugerirme lo que hago?Broadcasting Android Camera Video
Respuesta
He leído (creo que incluso en stackoverflow) que puede proporcionar el MediaRecorder con un FileHandle de una conexión TCP. Luego puede escuchar esa conexión, leer los datos, empaquetarlos y volver a enviarlos como RTSP/RTP-Stream.
Si encuentro la publicación original, la haré referencia aquí.
EDIT:
El Post original era: Streaming Video From Android
Y la parte sobre el descriptor de fichero es de: http://www.mattakis.com/blog/kisg/20090708/broadcasting-video-with-android-without-writing-to-the-file-system
Por si acaso, cito el ejemplo de acuerdo desde el 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();
Sin embargo, esto solo envía el Video Fi le Data por el cable. Puedes guardarlo y luego reproducirlo. Pero como se mencionó, todavía no es una transmisión.
ACTUALIZACIÓN: Ni siquiera tiene que usar un Socket TCP para el primer paso. Acabo de tropezar con "LocalSocket" (1), que también le proporciona un FileHandle para alimentar el MediaRecorder. Esos sockets locales son "sockets de secuencia de dominio AF_LOCAL/UNIX". Ver http://developer.android.com/reference/android/net/LocalSocket.html
No he intentado todo lo anterior a mí mismo a partir de hoy, pero lo haré muy pronto. Así que tal vez pueda ser de más ayuda en el futuro cercano :)
(1) ¡LocalSocket no se puede usar en las versiones más nuevas de Android por razones de seguridad! Vea la actualización del 2015-11-25.
ACTUALIZACIÓN 2: Acabo de ver en las fuentes de Android el "OUTPUT_FORMAT_RTP_AVP". Pero se oculta :(Así que supongo que estará disponible en futuras versiones de la API de Android https://github.com/android/platform_frameworks_base/blob/master/media/java/android/media/MediaRecorder.java Línea 219:.
public static final int OUTPUT_FORMAT_RTP_AVP = 7;
No he probado simplemente engañar a la piel, proporcionando una hardcoded 7
... Si nadie lo hace, por favor dejar un comentario aquí
ACTUALIZACIÓN 2015-11-25
me acabo de encontrar con libstreaming: https://github.com/fyhertz/libstreaming lo hice No lo analice demasiado, pero parece que hay mucho que aprender acerca de la transmisión desde Android de este proyecto (si no solo de usarlo).Leí allí que la solución LocalSocket no es válida para las versiones más nuevas de Android :(Pero presentan una alternativa: ParcelFileDescriptor.
- 1. Android Camera API ISO?
- 2. Android x86 virtualbox + camera
- 3. Android Camera Orientation ISsue
- 4. Android Camera setJpegQuality ignorado
- 5. Android Camera Set Resolución
- 6. Android Camera Intent with Crop
- 7. Android, manupulate camera preview frames
- 8. ¿Cómo obtener 720p Android Camera Preview Data?
- 9. Android Camera Preview - Cómo congelar la cámara?
- 10. Android Camera Preview Cambiar entre cámaras
- 11. Transmisión de video desde Android
- 12. Android preview processing while video recording
- 13. video android, escuchar sonido pero no video
- 14. ¿Cómo crear efectos Lomo/Retro en Android Camera Preview?
- 15. ¿Android admite escalar video?
- 16. android capture video frame
- 17. Video Streaming y Android
- 18. iPad Camera Connection kit?
- 19. AVCaptureDevice Camera Zoom
- 20. C# Camera Object Tracking
- 21. Android Strip Audio del video
- 22. Reproducir video m3u8 en android
- 23. Android grabar video sin audio
- 24. Android Video remoto con titanio
- 25. Procesamiento de video en Android
- 26. iPhone Xcode Camera Integration Tutorials
- 27. OnResume Camera Reinit Black Screen
- 28. Determine Person from the Camera
- 29. iPhone 3.1 SDK Camera Access
- 30. use maemo camera por python
Pude enviar flujo de datos sin procesar al servidor de esta manera, pero nunca pude sacarle sentido a Puede darle el control del socket del cliente y enviarlo todo al servidor –
Supongo que estará empaquetado en algunos archivos, por lo que tendrá que desempaquetarlo primero para obtener los datos brutos y luego volver a empaquetarlos en paquetes RTP. H264 es diferente de MPEG_4_SP en Fileformat. – Fildor
Sería muy interesante para mí tomar un archivo de audio almacenado lokal en mi Android y enviarlo a través de RTP a mi PC (mismo wlan) donde puedo escucharlo. Cualquier idea de cómo puedo haz esto? – B770