How to do video broadcast using multicast group?

How to do video broadcast using multicast group?

Flash Player version 10.1 or later allows you to do application level multicast groups instead of point-to-point media streams. Unlike client-server conferences using RTMP, this uses peer-to-peer group communication using centralized rendezvous. Unlike point-to-point RTMFP, this builds an application level multicast group hence is more efficient for video conference or event involving one (or few publishers) and many viewers. Consider the use case of a live event broadcast or live panel discussion broadcast to many viewers.

You must use VideoIO45.swf compiled using Flex SDK 4.5 or later to use this feature.

Adobe also hosts a service, which is free for developers for non-commercial use, to facilitate rendezvous of group communication. In particular, developers can signup for Cirrus developer key, and then build applications that use their service. Once you sign-up, you get a developer key and an rtmfp URL for the service. We have signed up for our VideoIO application with the following URL.

rtmfp://p2p.rtmfp.net/cda33663d4a6b46e507bad51-c52c716b8f44/

The VideoIO application exposes the group communication feature in the API where you can just set its src property to the correct URL and set another group property to correct group specifier to enable this application level multicast group communication. For illustrations in this section we assume our Cirrus developer key to connect to the service. In practice you should obtain and use your own developer key.

The example in this tutorial is similar to How to do one-to-many video broadcast? except that this uses rtmfp URL scheme to enable application level multicast groups instead of a media server, and this uses another group property to indicate the name of the multicast group. The one-to-many video broadcast requires all the listeners to know the rendezvous URL to connect to, the stream name to listen and play, and additionally the group name to join. The rendezvous URL and group name can be pre-configured in your application, so that every participant joins the same group. The broadcaster user picks a stream name, say "alice", and set the src property of her VideoIO application to enable publish as "rtmfp://.../?group=group1&publish=alice". The viewers use the same stream name to play by setting the play parameter in the src URL as "rtmfp://.../?group=group1&play=alice". Everything else is taken care of by the VideoIO application instances and Flash Player plugin. The broadcaster or viewer can stop the session by setting the src to null or "".

As mentioned before, there are two popular use cases for these kind of video broadcast: an event is broadcast live to number of viewers, or a conversation among small number of panel members is viewed by a number of viewers. In the first use case, we need one broadcast VideoIO and other listener VideoIO instances. The second use case is more complex since it involves both real-time conference among panelists and one-to-many broadcast to viewers. The difference is that the group broadcast mechanism has higher latency hence not suitable for real-time interaction among the panelists. Hence, the panelists should be able to talk using multi-party conference and peer-to-peer streams for low latency conversation. Each panelist also publisher her stream using a new group. All viewers listen to the groups of all the panelists. Since different groups may have different latency during run time, it is possible for the viewers to see or hear the conversation out of order.

In this tutorial we will show the first use case with one broadcast VideoIO and other three listener VideoIO instances as shown below. To test the demonstration, first click on the set button of the first VideoIO instance below. This will set the src property as specified using the group and publish URL parameters, and start publishing your video to the specified group name of "demo/group1". Then click on the set buttons of the other three VideoIO instances. This will set the src property of those VideoIO instances as specified using the group and play URL parameters, and start playing the stream named "alice" in the group named "demo/group1". You can also notice the latency from broadcaster to viewer.

 ?group=
&publish=     
&play=   &   
&play=     
&play=   &   

The source code of this is similar to earlier examples. You can also right-click and select "View page source" or equivalent menu option to see the source code.

Summary

In summary, you can use the src property with URL parameters containing publish and group for broadcast stream, and play and group for viewer stream. Additionally, you must use the rtmfp URL scheme pointing to the rendezvous service. Please see How to use the VideoIO API? for details on new properties associated with group communication.

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值