通过蓝牙、Android 传输视频

发布于 2024-12-18 03:27:56 字数 223 浏览 0 评论 0原文

我正在开发一个通过蓝牙连接 PC 和基于 Android 的设备的应用程序,我已经建立了连接并实现了我的大部分项目想法。

但是,我想添加从 PC 到设备的流媒体功能,我还没有任何代码,因为我仍处于规划阶段!所以我想请问有什么有用的资源或教程吗?作为第一步有什么帮助吗?

我已经实现了 PC 端,基本上以字节数组的形式获取流帧,并将其发送到 Android 端...

任何帮助将不胜感激

I am developing an application connecting a PC with Android based device over bluetooth, I have established the connection and implemented most of my project ideas.

However, I would like to add streaming functionality from the PC to the device, I don't have any code yet as I am still in the planning stage! So I would like to ask for any helpful resources or tutorials? anything helpful as a first step?

I have implemented the PC side where I basically get the stream frames in the form of byte array, to be sent to the Android side...

Any help would be highly appreciated

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

没有伤那来痛 2024-12-25 03:27:56

流式传输视频的标准方法是使用 VDP(视频分发配置文件),但在 Android 上目前对此的支持并不多。您可以使用 SPP(串行端口配置文件)编写自己的应用程序,这将为您提供原始数据管道。您可以在 google 上找到大量 SPP 示例。

The standard way to stream video is using the VDP (Video Distribution Profile), but there isn't much existing support for doing that on Android. You can write your own app using SPP (serial port profile), which will give you a raw data pipe. You can find plenty of SPP examples on google.

痴者 2024-12-25 03:27:56

我们能找到的最简单的方法是实际实现一个简单的传输协议。
我们对各个帧进行压缩,在PC端将它们分成数据包,为每个数据包添加一个标头,并为整个帧添加一个标头数据包,其中包含帧的总长度和数据包的数量。

在 android 方面,我们运行了两个嵌套循环,一个用于流的帧,另一个用于单个数据包的数据包。我们使用帧的第一个数据包中的数据来计算循环的长度以及何时中断,在获得总帧大小(由第一个数据包验证)后,我们将总字节数组发送到一个函数,将数组转换为jpg 图像,并使用画布继续显示帧...

我们每秒大约获得两帧,这对于蓝牙来说已经足够了...

The simplest way we could find was to actually implement a simple protocol for the transfer.
We compressed the individual frames, divided them into packets at the PC side, added a header for each packet, and a header packet for the entire frame, containing the total length of the frame and number of packets.

At the android side, we ran two nested loops, one for the frames of the stream, and one for the packets of individual packets. We used the data from the first packet of the frame to figure out the length of the loop and when to break, after we get the total frame size (verified by the first packet) we sent the total bytearray into a function converting the array into jpg immage, and used a canvas to continuesly showing the frames...

we got about two frames per second, which was good enough for bluetooth...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文