Convertir secuencias de entrada de vídeo a RTMP

Quiero transmitir la grabación de vídeo desde mi teléfono Android a servidor de medios de red.

El primer problema es que al configurar la salida de MediaRecorder en el socket, faltan algunos mdat tamaño mdat . Esto se puede corregir preprocesando ese flujo localmente y agregando datos faltantes al flujo para producir un flujo de salida válido.

La cuestión es cómo proceder desde allí.

¿Cómo puedo realizar la salida de ese flujo como un flujo RTMP?

En primer lugar, vamos a desenrollar su pregunta. Como usted ha supuesto, actualmente RTMP no es compatible con Android. Puede utilizar algunas bibliotecas laterales para agregar soporte, pero éstas pueden no ser implementaciones completas o tener otros efectos secundarios e insectos indeseables que causan que no cumplan con sus necesidades.

La alternativa común en este caso es usar RTSP . Proporciona un formato de sesión comparable que tiene su propio RFC , y su estructura de paquetes cuando se combina con RTP es muy similar (sans algunos detalles) a su protocolo deseado. Usted podría realizar las correcciones necesarias aquí para transmutar RTP / RTSP en RTMP, pero como se mencionó, tal esfuerzo está actualmente fuera del alcance de desarrollo de su aplicación.

Por lo tanto, supongamos que le gustaría usar RTMP ( invalidando este hilo ) y que la biblioteca vinculada anteriormente no satisface sus necesidades.

Por ejemplo, puede seguir este tutorial para grabar y reproducir utilizando Livu, Wowza y Adobe Flash Player, hablando con los desarrolladores de Livu sobre la licencia de su cliente. O bien, puede utilizar esta biblioteca de cliente y su ejemplo completo de grabador de Android para crear su cliente.

Para resumir:

RTSP

  • Este hilo , utilizando Darwin Media Server , Servicios de Windows Media o VLC

RTMP

  • Esta biblioteca ,
  • Este hilo y este tutorial , usando Livu , Wowza y Adobe Flash Player
  • Esta biblioteca cliente y esta grabadora de ejemplo

Mucha suerte con su aplicación. Admito que tengo una comprensión menos que comprensiva de todas estas bibliotecas, pero éstas parecen ser las soluciones estándares en este espacio en el momento de esta escritura.

Editar:

Según el OP, caminar el conjunto de la biblioteca RTMP:

  • Esta biblioteca : No podía hacer funcionar las demostraciones de la biblioteca. Más importante aún, la funcionalidad de RTMP es incompleta.
  • Este hilo y este tutorial , usando Livu , Wowza , y Adobe Flash Player : Este tiene un largo tutorial sobre cómo consumir video, pero su tutorial sobre la publicación es potencialmente lacónico e insuficiente.
  • Esta biblioteca de cliente y esta grabadora de ejemplo : El ejemplo dado sólo cubre la publicación de audio. Se necesita más trabajo para hacer esto completo.

En resumen: se necesita más trabajo. Otras respuestas, y mejoras en estos ejemplos, son lo que se necesita aquí.

Si está utilizando un navegador web en un dispositivo Android, puede utilizar WebRTC para la captura de vídeo y la grabación en el servidor, es decir, con Web Call Server 4

Así, el camino completo sería:

Android Chrome [WebRTC]> WCS4> grabación

Así que no necesita el protocolo RTMP aquí.

Si está utilizando una aplicación RTMP independiente, puede utilizar cualquier servidor RTMP para la grabación de vídeo. Como sé Wowza soporta la grabación H.264 + Speex.

  • ¿Cómo podemos agregar la imagen animada / simple como una capa superior al video y exportarla como un solo video en Android?
  • ¿Es Android 2.2 HTTP streaming progresivo = HTTP Live Streaming?
  • YouTubeAndroidPlayerAPI no puede reproducir algunos videos
  • En Android, usando exoplayer, ¿cómo rellenar surfaceview con un video que no tiene la misma relación de aspecto con el dispositivo?
  • Android SDK: Reproducción de vídeo mediante el protocolo mms
  • No se puede eliminar la caché en xperia mini
  • Elemento HTML5 <video> en Android
  • Establecer brillo / contraste en la captura de vídeo con Android Camera2
  • Transferir flujo de video en tiempo real al servidor mediante Android
  • ¿Puedo evitar el reproductor de vídeo en pantalla completa nativo con HTML5 en iPhone o Android?
  • Obtener la URL de descarga para el vídeo de YouTube (Android / Java)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.