当前位置: 首页 > 知识库问答 >
问题:

Android Camerax视频序列化与传输

赵智
2023-03-14

在一个涉及光学摄像机通信(OCC)的研究项目中,我需要主动分析视频帧,我目前正在我的pc上使用python和opencv进行离线分析(我用智能手机录制视频,然后进行处理)。我想用我的三星galaxy A40上的相机现场处理视频。我对android开发相当陌生,所以我只想创建一个用于捕获视频并将其传输到我的pc上进行分析的基本应用程序。我的应用程序要求在30 fps或更高的速度下捕获1080p。

任何想法都欢迎!提前谢了。

共有1个答案

石博艺
2023-03-14

如果您真的关心性能,您应该使用UDP而不是TCP。请记住,UDP不能保证您发送的数据包在接收者端以相同的顺序到达,或者如果有的话,您可以在单个UDP消息中发送的最大数据包大小是65535字节。因此,由您来实现某种逻辑,以便在接收方重新排序数据包,并告诉发送方您错过了一些东西。

通常,实时流媒体应用如Stadia、PS Remote Play等都使用了某种前向纠错机制,以便接收者能够自行恢复丢失的数据包。对于我的流媒体应用程序,我使用了Jerasure。但是使用FEC当然是可选的。

格式YUV_420_888在压缩方面也不是很理想,对于流媒体,我会建议像H.264或VP8这样的格式。你会在互联网上找到一些例子,例如(这个项目有点老,但它可能有助于了解这个想法)

  1. 唯一标识符(以便接收器知道数据包属于哪个YUV_420_888帧)
  2. 序列号(如果将一个YUV_420_888帧分成10个片段,则索引将介于0和9之间)
  3. 关于接收方可以为分割的YUV_420_888帧预期多少序列号的信息

拆分一个大的YUV_420_888帧的原因是为了避免MTU问题(大于当前默认MTU值的消息将被丢弃,通常是1500字节左右)。

 类似资料:
  • 接口说明 上传视频文件 API地址 POST /api/marker/1.0.0/uploadVideo 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 dataGuid string form 是 场景GUID file string form 是 视频文件 响应字段说明 参数 类型 说明 mp4UploadPath String 视频文件上传地址 响应成功示例 { "

  • 用户通过视频上传、管理视频、获取代码,实现本地视频在制定网站播放。 2.1视频上传 进入视频页面,点击上传视频 按钮,在弹出的页面点击添加视频 : 1)选择视频“分类”,添加视频“标签”(选填); 2)点击【添加视频】或者【选择文件并上传】按钮选择本地一个或多个视频,点击确认即开始视频上传;或者在本地选择一个或多个视频,将视频拖拽到视频上传区,即可进行视频上传; 3)上传过程中点击视频上传或者取消

  • FAQs in section [36]: [36.1]“序列化”是什么东东? [36.2] 如何选择最好的序列化技术? [36.3] 如何决定是要序列化为可读的(“文本”)还是不可读的(“二进制”)格式? or non-human-readable ("binary") format?") [36.4] 如何序列化/反序列化数字,字符,字符串等简单类型? [36.5] 如何读/写简单类型为可读的

  • 上一小节我们学习了 Java 的输入输出流,有了这些前置知识点,我们就可以学习 Java 的序列化了。本小节将介绍什么是序列化、什么是反序列化、序列化有什么作用,Serializable 接口以及 Externalizable 接口,常用序列化工具介绍等内容。 1. 序列化与反序列化 序列化在计算机科学的数据处理中,是指将数据结构或对象状态转换成可取用格式,以留待后续在相同或另一台计算机环境中,能

  • Spark API 中所有的 Flash 接口需要 Flash 插件的版本在 10.1 以上才有效,使用前请确保 Flash 插件版本符合要求。 在上传视频的过程中,不用与 Spark 平台进行 HTTP 通信,使用 JavaScript 和 Spark 平台提供的 Flash 进行交互即可完成。关于如何在网页中嵌入 Flash 以及如何和 Flash 进行交互,请参阅附录 2。上传接口用到的所有

  • 本文向大家介绍什么是序列化与反序列化?相关面试题,主要包含被问及什么是序列化与反序列化?时的应答技巧和注意事项,需要的朋友参考一下 序列化:将对象状态转换为可保持或传输的格式的过程。将对象实例的字段及类的名称转换成字节流,然后把字节流写入数据流 反序列化:将流转换为对象。 这两个过程结合起来,可以轻松地存储和传输数据。