Création de paquets RTP à partir d'appareil photo Android pour envoyer
Je suis nouveau sur Android et programmation socket. Je veux créer une application android transférer de la vidéo en direct à partir de l'appareil photo à un PC. Qu'est-ce que je fais est d'obtenir une vidéo brute des données de PreviewCallback arguments et la convertir en un Paquet RTP. J'étais juste à l'aide de JLibRTP pour ce faire. Quant à transférer le paquet je pense, il y a quelques liées classe: RtpPkt, RtpSession, et RtpSocket.
Voici mon coup d'œil code:
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());
}
}
Je suis encore à se demander où je dois mettre l'adresse et le port de l'information. Je sais que le code ci-dessus ont besoin d'une correction de vous un maître. Merci pour l'avance..
source d'informationauteur M Rijalul Kahfi
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas si cette bibliothèque contient quelque chose pour diffuser les paquets de données vers le pc,
mais si pas, vous avez un problème, parce qu'android ne supporte RTP streaming depuis la version 3.1 de l'API (niveau 12). si votre niveau est inférieur, vous devez écrire votre propre "rtp-serveur" qui est capable de diffuser les paquets à partir de votre appareil à l'ordinateur.
pour plus d'informations, consultez le sipdroid projet. ils ont créé leur propre "rtp-serveur": http://code.google.com/p/sipdroid/source/browse/trunk/src/org/sipdroid/sipua/ui/VideoCamera.java
Mise à JOUR:
une autre possibilité est d'utiliser le ffserver de l'bibliothèques ffmpeg, mais, par conséquent, vous devez compiler les bibliothèques pour android. voici un petit tutoriel comment faire et comment travailler avec les bibliothèques: Comment Construire FFmpeg pour Android
UPDATE2:
la spydroid application est un très bon exemple pour diffuser des vidéos à partir d'un appareil android sans les bibliothèques externes.