之所以要使用 Socket 是因为我们做了个转发程序,就是通过 Socket 来传递私有通讯包数据。
目前我需要验证这套程序是否能满足视频流传输这个需求。
我对视频开发这块儿不是很熟,下面是我初步的想法: 1·客户端解析 RTSP 流,然后序列化为字节数组,塞进私有包发送给服务端; 2·服务端反序列化为相应的对象,然后重新生成 RTSP 流输出到指定的地址。
目前遇到的问题是 javacv 库中的 AVPacket 和 Frame 都不支持序列化。
所以想请教下各位大神有什么建议吗
1
ysc3839 2023-06-21 04:47:16 +08:00 1
怀疑是 X-Y Problem https://coolshell.cn/articles/10804.html 原始需求是什么呢?
你程序的私有包是只能传数据包吗?不能传数据流吗?能的话可以直接传 RTSP 流。 如果不行的话,有两种方案: 一种是用 gstreamer 把 RTSP 解出 RTP 包,然后传 RTP 包,收到后再用 gstreamer 把 RTP 转成 RTSP 。不过 gstreamer 生成 RTSP 后只能作为客户端发给服务器,还需要一个中转服务器。 另一种是用 kcp 等承载数据流的可靠协议,把 RTSP 流塞进去,会得到数据包,直接发就完事了,不需要关心上层协议内容。 |