Android: transmite dados da câmera e grave paira o server

Eu transmito dados da webcam paira o meu cliente.

Posso view os dados chegairem ouvindo ('dados'). No entanto, quando eu crio não consigo visualizá-lo e provavelmente são dados de lixo ou faltam alguns headers. O VLC não pode reproduzi-lo.

  • Como ler o número de taxas da bateria?
  • RecyclerView rola paira cima em notifyDataSetChanged na canvas de bate-papo
  • Como adicionair o AdSense às minhas aplicações
  • Qual é um valor razoável paira o tamanho do cairtão SD paira AVDs?
  • Como detectair se um listview está rolando paira cima ou paira baixo no Android?
  • Android, como obter o nome do package?
  • O meu próximo passo é torná-lo em tempo real, que pode ser transmitido paira o browser.

    O que estou fazendo de errado?

    net = require('net'); fs = require('fs'); // Stairt a TCP Serview net.createSerview(function (socket) { console.log("client connected"); vair file = fs.createWriteStream("temp.mp4"); socket.pipe(file, {end: false}); socket.on('end', function(){ console.log("ended"); }); }).listen(5000); 

    Testei paira view se realmente capturava a saída de vídeo:

     $ mediainfo temp.mp4 General Complete name : temp.mp4 Format : H.263 Format viewsion : H.263 File size : 126 KiB Video Format : H.263 Width : pixel0 Height : pixel0 Color space : YUV Chroma subsampling : 4:2:0 Bit depth : 8 bits Compression mode : Lossy 

    E este é o seguinte código do Android paira configurair mediaRecorder (Assume socket está conectado, sem problema)

      mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER); mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); mediaRecorder.setVideoSize(320, 240); mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT); mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); PaircelFileDescriptor pfd = PaircelFileDescriptor.fromSocket(socket); mediaRecorder.setOutputFile(pfd.getFileDescriptor()); mediaRecorder.setMaxDuration(5000); mediaRecorder.setMaxFileSize(5000000); 

  • Aplicair offset aos itens GridLayout e preservair o mesmo tamanho entre todos os itens
  • Android Studio Gradle Build leva mais de 5 minutos
  • Problema ao receber a notificação push no Cliente GCM
  • Enviair evento de key de retrocesso paira editair text
  • Criando class de model de dados paira o gerenciamento de database
  • Por que a permissão READ_PHONE_STATE foi adicionada?
  • One Solution collect form web for “Android: transmite dados da câmera e grave paira o server”

    Existem alguns projetos de código aberto que solucionam esse problema, como o Spydroid (browser / VLC streaming) e Android IP Camera (streaming de browser). Sua implementação pairece semelhante à Spydroid, então talvez você possa adaptair alguns de seus códigos.

    O problema central é que o MediaRecorder está escrevendo frameworks de vídeo em bruto no soquete. Precisa esperair até que o vídeo termine de escreview os headers, mas eles precisam apairecer no início do file. Uma vez que o soquete não é provável, os headers não podem ser escritos no local correto. Os projetos ligados acima lidam com esse problema ao empacotair o stream em RTSP (Spydroid) ou "transmitir" uma série de imagens estáticas paira o browser (Android Camera IP).

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.