android - puertos - rtp pdf
Creación de paquetes RTP desde la cámara Android para enviar (1)
Soy nuevo en la programación de Android y socket. Quiero crear una aplicación de Android que transfiera video en vivo desde la cámara del dispositivo a la PC. Lo primero que hago es obtener datos de video sin procesar de los argumentos de PreviewCallback y convertirlos en un paquete RTP. Solo estaba usando JLibRTP para hacer esto. Con respecto a la transferencia del paquete, creo, hay algunas clases relacionadas: RtpPkt, RtpSession y RtpSocket.
Aquí está mi código de la mirada:
DatagramSocket rtpSocket = new DatagramSocket();
DatagramSocket rtcpSocket = new new DatagramSocket();
RtpSession rtpSession = new RtpSession(rtpSocket, rtcpSocket);
public void surfaceCreated(SurfaceHolder holder) {
try {
camera = Camera.open();
camera.setPreviewCallback(new PreviewCallback() {
public void onPreviewFrame(byte[] _data, Camera _camera) {
int height = 240;
try {
rtps.sendData(_data);
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), e.toString(),
Toast.LENGTH_SHORT).show();
}
}
});
camera.setPreviewDisplay(holder);
camera.startPreview();
} catch (IOException e) {
Log.d("CAMERA", e.getMessage());
}
}
Todavía me pregunto dónde tengo que poner la información de dirección y puerto. Sé que el código anterior todavía necesita corrección por parte de usted cualquier maestro. Gracias de antemano..
No sé si esta biblioteca incluye algo para transmitir los paquetes a la PC, pero si no es así, tiene un problema, porque Android solo admite la transmisión RTP desde la versión 3.1 (nivel API 12). Si su nivel es más bajo, tiene que escribir su propio "rtp-server" que puede transmitir los paquetes desde su dispositivo a la PC.
Para más información revisa el proyecto sipdroid. han creado su propio "servidor rtp": http://code.google.com/p/sipdroid/source/browse/trunk/src/org/sipdroid/sipua/ui/VideoCamera.java
ACTUALIZAR:
Otra posibilidad es usar el ffserver de las bibliotecas ffmpeg, pero por lo tanto tienes que compilar las bibliotecas para Android. Aquí hay un pequeño tutorial sobre cómo hacer esto y cómo trabajar con las bibliotecas: Cómo crear FFmpeg para Android
ACTUALIZACIÓN2:
La aplicación spydroid es un muy buen ejemplo para transmitir videos desde un dispositivo Android sin bibliotecas externas.