Guarda la grabación de vídeo en tiempo real en la tarjeta sd mediante el Socket local en Android – El vídeo no se puede reproducir

Tratando de capturar un video y guardarlo en una tarjeta sd en formatos Mp4 / 3gp usando un socket local. Ser capaz de escribir bytes por bytes a la tarjeta sd, pero el archivo de vídeo no es playable.I han pasado por muchos ejemplos:

Https://github.com/fyhertz/spydroid-ipcamera

Https://github.com/mconf/sipdroid

y muchos más. He notado que la gente sugiere que esto podría ser un problema de encabezado del archivo. Traté de omitir los datos "mdat" también desde el encabezado:

private void skipHeader() throws IOException { // Skip all atoms preceding mdat atom byte[] buffer = new byte[3]; while (true) { while (mReceiver.getInputStream().read() != 'm'); mReceiver.getInputStream().read(buffer,0,3); if (buffer[0] == 'd' && buffer[1] == 'a' && buffer[2] == 't') break; } } 

Por fin nada funcionó para mí. ¿Qué extra tengo que hacer para hacer que esos archivos de vídeo se puedan reproducir usando el Socket local

De su explicación, lo que tiene en mente para implementar es una grabadora de pantalla. Por supuesto su intención es que el sistema lo tendrá implementado como parte de la tecnología que su software está ofreciendo.

Introduzca aquí la descripción de la imagen

En tal caso, el mejor enfoque es mejorar lo que ya existe, incorporar el código con nuevas características o un nuevo rendimiento y dar crédito a la fuente original que encontró y se incluyó como parte de su software – como se esperaba. Esta es la belleza de Open Source, que permite que el código sea reutilizado, distribuido y mejorado.

Introduzca aquí la descripción de la imagen

En Github hay un montón de proyectos … como usted sabe, algunos agradables y otros impresionantes. Para su caso particular, mi sugerencia es usar código existente que permita que su sistema de grabación de streaming capture el video, escribiéndolo sin necesidad de root del dispositivo, ya que los usuarios finales no estarían interesados ​​en anular la garantía de un dispositivo recién comprado Para ejecutar su software.

Introduzca aquí la descripción de la imagen

También es importante lograr una buena velocidad que permita al menos capturar 20 pantallas por segundo en Android para diferentes tamaños de pantalla, proporcionando claramente una resolución y un bajo uso de la CPU. Todas estas características mantendrían su solución estable y aún buscando sólida roca.

Introduzca aquí la descripción de la imagen

Creo que el mejor enfoque que puede tomar, que le ahorrará tiempo y muchos dolores de cabeza, sería incorporar el código "sji-android-screen-capture" como parte de su proyecto. Si los dispositivos de destino son Android 4.2 ~ 4.4, es bueno ir ya que es compatible con estas versiones de Android. Más información y el código fuente en sí, usted encuentra disponible en el repositorio Github . Alternativamente, también puede utilizar Android ScreenCapture Sample para capturar la pantalla del dispositivo en tiempo real.

  • Android VideoView error (1,16) y muestra la pantalla en negro
  • Android no puede reproducir vídeo H264 / AAC
  • Adición de mapa de bits de marca de agua en video en android: MediaMuxer de 4.3 o ffmpeg
  • Cómo jugar RTSP stream video (MPEG4, baseline) de una cámara con videoview de Android?
  • Error de codificación de vídeo que utiliza datos OnAudioFilterRead
  • Cómo mezclar dos muestras de audio y codificar de nuevo a un archivo de audio usando MediaMuxer
  • Apoye la velocidad de reproducción usando ExoPlayer
  • Android: guarda una secuencia rtsp (h264) en un archivo mp4
  • Android MP4 stream - El video no se puede reproducir
  • Error de MediaMuxer "Error al detener el muxer"
  • Vista web de Android cargando la página html5 de la tarjeta SD con videos mp4 en varios API
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.