2010-03-31 22 views
249

He visto mucha información sobre cómo transmitir video desde el servidor a un dispositivo Android, pero no mucho sobre la otra manera, ala Qik. ¿Podría alguien señalarme en la dirección correcta aquí, o darme algún consejo sobre cómo abordar esto?Transmisión de video desde una cámara Android al servidor

+6

Me gustaría ver una respuesta a esto también. ¿Ya has encontrado algo? –

+0

No, se dio por vencido en la transmisión. Simplemente superar la API de MediaRecorder en el envío fue lo suficientemente difícil. Sin embargo, puedes ver el código sipdroid, parece que lo han puesto en funcionamiento. – JCL

+0

El código de video no está en la fuente de Sipdroid en línea :( –

Respuesta

21

Estoy buscando en esto también, y aunque no tengo una buena solución para que me las arreglé para desenterrar la dirección del vídeo de Sipdroid:

http://code.google.com/p/sipdroid/source/browse/trunk/src/org/sipdroid/sipua/ui/VideoCamera.java

+0

Lo que han hecho allí es que transmiten usando RTP paquetes a un servidor. Ahora la pregunta es ¿qué se está haciendo en el servidor? ¿Qué hace la transcodificación y cómo se transmite? – Azlam

+0

No ... No fui por el enfoque SIPDroid, era demasiado complejo ... Hice algo con un MJPEGServer – Azlam

116

he alojado un código abierto proyecto para permitir teléfono Android a la cámara IP:

http://code.google.com/p/ipcamera-for-android

los datos de vídeo en bruto se obtiene de LocalSocket y el MDAT MOOV de MP4 se comprueba en primer lugar antes de la transmisión. El video en vivo está empaquetado como formato FLV, y se puede reproducir a través de un reproductor de video Flash con una compilación en el servidor web :)

+22

Haga clic en el botón "Fuente". Además, quien haya votado negativamente este tipo es una herramienta. – Nicholi

+3

Me da errores ... como, java.lang.UnsatisfiedLinkError: no se pudo cargar teaonly: findLibrary devuelto nulo ... Si alguien tiene una solución, por favor, compártala. Gracias – anddev

+1

@mpp: La aplicación tiene código NDK. Puede compilarlo usted mismo, o tomar los archivos .so de la apk que está en ese proyecto de Código de Google en "Descargas". – Turnsole

65

Me tomó algo de tiempo, pero finalmente logré hacer una aplicación que hace precisamente eso. Mira la página de códigos de google si te interesa: http://code.google.com/p/spydroid-ipcamera/ Agregué un montón de comentarios en mi código (principalmente, mira CameraStreamer.java), por lo que debería ser bastante fácil de entender. La parte difícil fue realmente entender el RFC 3984 e implementar un algoritmo adecuado para el proceso de paquetización. (Este algoritmo se convierte en realidad la corriente MPEG4/H.264 producido por el MediaRecorder en un flujo RTP agradable, de acuerdo con el RFC)

adiós

+1

¡Muchas gracias! Actualmente no puedo hacer que funcione bien con h264 ... y no puedo cambiarlo a h263 (no tengo ni idea de cómo hacerlo). de todos modos, gracias hombre! – Yotes

+1

Estoy usando lo mismo, pero cuando se trata de transmitir en Android con rtsp, dice que el video no se pudo reproducir. Estoy usando VideoView. ¿Puedes ayudarme? –

+1

Funciona muy bien (¡hasta ahora!) Lo estoy usando para transmitir video desde Glass (después de un poco de trabajo/edición/descifrar), pero hasta ahora solo puedo conectarlo desde un navegador basado en Windows (Chrome) con el plugin vlc. VLC en Android/iPad o cualquier otro reproductor rtsp no recogerá la transmisión (uno de ellos se veía bien, pero estaba tratando de obtener una transmisión basada en el nombre del dispositivo, que este código devolvió como 0 y, por lo tanto, no se puede leer). Aún así, obteniendo resultados después de un día de codificación gracias a ti, ¡así que felicitaciones! – MacD

5

I am able to send the live camera video from mobile to my server.using this link see the link

Refer the above link.there is a sample application in that link. Just you need to set your service url in RecordActivity.class.

Ejemplo como: ffmpeg_link = "rtmp: // yourserveripaddress: 1935/live/venkat";

podemos enviar videos de tipo H263 y H264 usando ese enlace.

+0

He usado el código usando el enlace de arriba, pero ni siquiera pude comenzar a grabar. obteniendo una excepción "No Video to Stream". ¿Tienes alguna idea con respecto a esto? –

+0

@AkhileshSk usando el código anterior puede enviar el video en vivo a través de rtmp url a su servidor. no es para propósitos de registro. si quiere grabar el video, necesita grabarlo en el lado del servidor. – Venkat

+0

Hey @ Venkat es posible enviar un video en vivo desde una cámara al teléfono Android, ¿tiene algunos enlaces de código, como el uso de Youtube en vivo, etc. –

17

He creado un SDK de código abierto llamado Kickflip para que la transmisión de video desde Android sea una experiencia sencilla.

El SDK demuestra el uso de MediaCodec API de Android 4.3 para dirigir los paquetes del codificador de hardware del dispositivo directamente a FFmpeg para RTMP (con librtmp) o HLS de streaming de H.264/AAC. También demuestra los efectos OpenGL en tiempo real (titulación, chroma key, fades) y grabación en segundo plano.

Gracias SO, y especialmente, fadden.

+0

¿se puede transmitir a cualquier cliente compatible con HLS (no solo a su servidor)? – 4ntoine

+3

@dbro Intento conocer su servicio, pero necesita mi información de inicio de sesión antes de poder ver su precio. Es como si ustedes estuvieran recolectando direcciones de correo electrónico. Si esa no es su intención, debe hacer disponible la información de precios: de la misma manera que lo han hecho Parse, App Engine y muchos otros. – learner

+0

¿Es posible que una cámara de video envíe un video a Kickflip y luego a un teléfono Android? Si es qué tipo de cámara de video es adecuada para este –

9

Aquí está el artículo completo sobre la transmisión de videos de la cámara de Android a una página web.

Android Streaming Live Camera Video to Web Page

  1. Usado libstreaming en aplicación de Android
  2. En el lado del servidor Wowza Media Engine se utiliza para decodificar la secuencia de vídeo
  3. Finalmente jWplayer se utiliza para reproducir el vídeo en una página web.
+0

Esto usa componentes de fuente cerrada. ¿Alguna alternativa de código abierto? – Raj

+0

Puede usar JavaCV para esto. Lo usé en mi proyecto para hacer transmisión en vivo desde un dispositivo Android a un servidor de medios wowza. También puede usar https://github.com/begeekmyfriend/yasea –

+0

¿Está libs streaming gratis? –

2

Comprobar Yasea biblioteca

Yasea is an Android streaming client. It encodes YUV and PCM data from camera and microphone to H.264/AAC, encapsulates in FLV and transmits over RTMP.

Característica:

  1. Mini Android API 16.
  2. H.264/AAC codificación duro.
  3. codificación suave H.264.
  4. Transmisión RTMP con controlador de devolución de llamada de estado.
  5. Orientación dinámica de retrato y paisaje.
  6. Interruptor de encendido de cámaras frontal y posterior.
  7. Grabación a MP4 durante la transmisión.
Cuestiones relacionadas