gpt4 book ai didi

android - 从 Android 相机创建 RTP 数据包以发送

转载 作者:IT老高 更新时间:2023-10-28 23:15:01 27 4
gpt4 key购买 nike

我是 Android 和套接字编程的新手。我想创建一个将视频从设备摄像头实时传输到 PC 的 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());
}
}

我仍然想知道我必须将地址和端口信息放在哪里。我知道上面的代码仍然需要任何大师的更正。感谢您的提前..

最佳答案

我不知道这个库是否包含将数据包流式传输到 pc 的东西,但如果没有,你就有问题了,因为 android 从 3.1 版(API 级别 12)开始只支持 RTP 流。如果您的级别较低,则必须编写自己的“rtp-server”,它能够将数据包从您的设备流式传输到 pc。

有关更多信息,请查看 sipdroid 项目。他们创建了自己的“rtp-server”:http://code.google.com/p/sipdroid/source/browse/trunk/src/org/sipdroid/sipua/ui/VideoCamera.java

更新:

另一种可能性是使用 ffmpeg 库中的 ffserver,但因此您必须为 android 编译库。这是一个小教程,如何做到这一点以及如何使用库:How to Build FFmpeg for Android

更新 2:

spydroid application是一个很好的例子,可以在没有任何外部库的情况下从 android 设备流式传输视频。

关于android - 从 Android 相机创建 RTP 数据包以发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7332532/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com