Создание пакетов RTP с камеры Android для отправки
Я новичок в программировании на устройствах Android и сокетов. Я хочу создать приложение для Android, которое передает видео с камеры устройства на ПК. Сначала я получаю необработанные видеоданные из аргументов PreviewCallback и конвертирует их в RTP-пакет. Я просто использовал JLibRTP для этого. Что касается переноса пакета, я думаю, есть некоторые связанные классы: RtpPkt, RtpSession и RtpSocket.
Вот мой код взгляда:
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());
}
}
Мне все еще интересно, где я должен указывать информацию о адресе и порте. Я знаю, что код выше все еще нуждается в исправлении от вас любого мастера. Спасибо за продвижение..
Ответы
Ответ 1
Я не знаю, включает ли эта библиотека что-то, чтобы передать пакеты на компьютер,
но если нет, у вас есть проблема, потому что андроид поддерживает только потоки RTP с версии 3.1 (уровень API 12). если ваш уровень ниже, вам нужно написать собственный "rtp-сервер", который способен передавать пакеты с вашего устройства на компьютер.
для получения дополнительной информации проверьте проект sipdroid. они создали свой собственный "rtp-сервер": http://code.google.com/p/sipdroid/source/browse/trunk/src/org/sipdroid/sipua/ui/VideoCamera.java
UPDATE:
Другая возможность заключается в использовании ffserver из библиотек ffmpeg, но вы должны скомпилировать библиотеки для android. вот небольшой учебник, как это сделать и как работать с библиотеками: Как создать FFmpeg для Android
UPDATE2:
spydroid application - очень хороший пример для потоковой передачи видео с устройства Android без каких-либо внешних библиотек.