Estoy tratando de crear un sistema que transmita en vivo video y audio capturado por teléfonos Android. Quiero usar el grabador de medios para codificar los datos y luego enviarlos a través de RTP, pero el problema es cómo puedo obtener los datos codificados en un búfer.Streaming H.264 en tiempo real
5
A
Respuesta
1
No puede. Al menos no puedes sin algunos hacks. El grabador de medios no es compatible con la escritura en búferes.
El truco es crear una tubería, extraer el descriptor de la tubería y pasarla a la función setOutputFile(FileDescriptor fd)
. Hay algunos problemas con este enfoque, ya que MediaRecorder
no escribe contenido multimedia de forma orientada a la transmisión. En otras palabras, se basa en el hecho de que puede navegar a través de un archivo y escribir algunos encabezados de paquetes más adelante.
Más detalles sobre esto se pueden encontrar aquí: Broadcasting video with Android - without writing to local files
1
He encontrado otras dos opciones (no he probado ninguno):
- Un FileDescriptor a un búfer de memoria: http://www.devdaily.com/java/jwarehouse/android/core/java/android/os/MemoryFile.java.shtml
- Android 4.0 implementa la API multimedia OpenMAX: http://developer.android.com/about/versions/android-4.0-highlights.html
Esta última es probablemente su mejor opción.
Cuestiones relacionadas
- 1. H.264 Streaming Requirements
- 2. Códec H.264 explicado
- 3. H.264 RTSP absoluto TIMESTAMP
- 4. H.264 AVC compatible con teléfonos Android?
- 5. Streaming de vídeo H.264 a través de RTP de Live555 a VLC
- 6. Streaming Real time Audio
- 7. Mejores prácticas H.264/FLV para HTML
- 8. H.264 sobre RTP/RTSP (iPhone)
- 9. Cómo codificar h.264 con libavcodec/x264?
- 10. h 264 Codificación/decodificación de hardware para IOS (IPhone/Ipad)?
- 11. Modificación de vectores de movimiento en ffmpeg decodificador H.264
- 12. conversión H.264 con FFmpeg (de un flujo RTP)
- 13. transmitiendo H.264 a través de RTP con libavformat
- 14. Latencia de video en tiempo real
- 15. MPEG-ES H.264 Video de RTP a MPEG-TS
- 16. H.264 Filtra la pérdida de memoria con algunos decodificadores
- 17. Cómo decodificar el video frame H.264 en el entorno Java
- 18. iPad no procesa video H.264 con HTML5
- 19. H.264 sobre RTP - Identificar tramas SPS y PPS
- 20. Codificación de videos H.264 CBR con FFmpeg
- 21. RegEx - Validación de tiempo ((h) h: mm)
- 22. encapsulando velocidades H.264 de velocidad de cuadro variable en la corriente de transporte MPEG2
- 23. MongoDb Transmisión de datos insertados en tiempo real (o casi en tiempo real)
- 24. ¿Cómo hacer pseudo-streaming Flash?
- 25. Tamaño de archivo H.264 por 1 hora de video HD
- 26. Cómo grabar video en tiempo real?
- 27. Transmisión en vivo de h.264 usando HTML5 en Internet Explorer 9
- 28. Transmisión HTTP en tiempo real con encriptación
- 29. Rieles: transmisión de salida en tiempo real en formato zip.
- 30. node.js juego en tiempo real