如何使用Kafka流式传输视频文件?

时间:2019-03-18 15:11:13

标签: apache-kafka video-streaming

我正在尝试发送多个.mp4文件作为kafka流消息。
我尝试采用与短信相同的方法,但是没有奏效。

这是否意味着我在生产和消费时需要特殊的Encoder / Decoder / Serializer / Deserializer。如何为此配置生产者和消费者?

2 个答案:

答案 0 :(得分:1)

我有一个使用JS进行操作的示例。

您可以访问:https://gitlab.com/dimimpov/streaming-video-apache-kafka

基本上,您先将文件读取到字节数组,然后通过kafka读取,然后将字节流传输到可以播放块的视频播放器。

答案 1 :(得分:0)

  

创建类似于文本文件创建的文件

通过这种方式,我假设您是以设置生产者和使用者,通过kafka发送文本/ json消息为例。

在您的情况下,您需要将视频文件/片段/块批量序列化为字节,将原始字节发送到kafka,读取用户中的字节,然后将视频文件/片段/块批量序列化为反序列化

要通过kafka发送原始字节,您需要在生产者中使用node_modules,在消费者中使用 if (!piocherMot(motSecret)) exit(0);

请参阅: https://kafka.apache.org/20/javadoc/index.html?org/apache/kafka/common/serialization/ByteArrayDeserializer.html https://kafka.apache.org/20/javadoc/org/apache/kafka/common/serialization/ByteArraySerializer.html

因此,在配置中,您需要指定属性(假设您不使用键,仅使用值): 生产者:

ByteArraySerializer

消费者:

ByteArrayDeserializer

如果您只想发送mp4文件,则以如下字节形式读取它(在Java中): File to byte[] in Java

"key.serializer":"org.apache.kafka.common.serialization.StringSerializer"
"value.serializer":"org.apache.kafka.common.serialization.ByteArraySerializer"

另一方面,在使用者中,您将收到该字节数组并将其保存到文件中。