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.

  • Cómo subir un video desde un teléfono Android (como Android) mientras se está grabando
  • Cómo agregar un átomo MOOV en un archivo de video mp4
  • Crear archivos mp4 en Android usando Jcodec
  • Cómo reproducir vídeo mp4 con intención de mi aplicación Android? ¿Esto es posible?
  • Aplicación de falla en la fusión de videoclips MP4
  • Apoye la velocidad de reproducción usando ExoPlayer
  • Error de codificación de vídeo que utiliza datos OnAudioFilterRead
  • Fusionar archivos de video mp4 en Android
  • Metadatos de rotación de vídeo Mp4
  • ¿Cómo reproducir varios vídeos en una vista de lista con MediaPlayer?
  • Reproducir vídeo Mp4 desde el servidor android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.