简体   繁体   English

我可以使用CORBA / RMI进行实时音频流传输吗?

[英]Can I use CORBA/RMI to make live audio streaming?

I need to communicate between server/client. 我需要在服务器/客户端之间进行通信。 I saw that CORBA is used for different languages to work like RMI, is it? 我看到CORBA用于像RMI一样的不同语言,对吗? In my application I will have to transfer objects between client/server, transfer binary files (which I saw that I can do with RMI) and also play live streaming from one client to another. 在我的应用程序中,我将不得不在客户端/服务器之间传输对象,传输二进制文件(我发现我可以使用RMI进行传输),还必须将实时流从一个客户端传输到另一个客户端。 I was thinking about CORBA because it also can be used with C++ if I need, isnt it? 我在考虑CORBA,因为如果需要,它也可以与C ++一起使用,不是吗? So can I play streaming with CORBA? 我可以使用CORBA播放流媒体吗?

RMI and CORBA are technologies for distributed objects . RMI和CORBA是用于分布式对象的技术。 You then invoke methods on a remote object the same way as on a local object. 然后,您可以像在本地对象上一样调用远程对象上的方法。

Sure, you can send and receive bytes if you implement methods that do so (eg void sendChunk(byte[] data) ). 当然,如果您实现了这样的方法,则可以发送和接收字节(例如void sendChunk(byte[] data) )。 But I wouldn't consider them appropriate for streaming . 但是我认为它们不适合流媒体 Also for streaming, you should pick something to address the quality of service of the stream -- which RMI or CORBA definitively don't do. 同样对于流媒体,您应该选择一些东西来解决流媒体的服务质量-RMI或CORBA绝对不能做到。 For that I would maybe have a look at UDP sockets, or something like that, which just drops packets if the channel is saturated. 为此,我可能会看看UDP套接字或类似的东西,如果通道已饱和,它们只会丢弃数据包。

CORBA provides you a lot of services and it possibly is not the best of the options for streaming media. CORBA为您提供许多服务,可能不是流媒体中最好的选择。 Two reasons I can think of (though one can find more reasons against too) 我能想到的两个原因(尽管也可以找到更多反对的理由)

  1. The object payload is more than just the data (marshalling and unmarshalling) 对象有效负载不只是数据(编组和解组)
  2. CORBA (specifically the implementations) generally strive for a good QoS aka there will be retries for the same call CORBA(具体来说是实现)通常会争取良好的QoS,因为同一呼叫将重试

That said, it has been demonstrated that ORBs can work with real-time communication too. 也就是说,已经证明ORB也可以与实时通信一起使用。 So, CORBA as a framework is not completely off the table. 因此,CORBA作为框架并没有完全脱离桌面。

I am not sure of the multicast communication capabilities of CORBA though. 我不确定CORBA的多播通信功能。

If you're hell bent on using CORBA to address this, have a look at RT-CORBA (Real-time corba). 如果您不愿意使用CORBA来解决此问题,请查看RT-CORBA(实时corba)。 I believe TAO has an implementation of it, however I've never used RT-CORBA so I can't speak first-hand if it'll give you the performance you'll require for streaming. 我相信TAO可以实现它,但是我从来没有使用过RT-CORBA,因此如果能为您提供流媒体所需的性能,我将无法直接谈。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM