Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用kafka和socket通信的流式视频_Python_Sockets_Apache Kafka_Udp_Vlc - Fatal编程技术网

Python 使用kafka和socket通信的流式视频

Python 使用kafka和socket通信的流式视频,python,sockets,apache-kafka,udp,vlc,Python,Sockets,Apache Kafka,Udp,Vlc,嗯,基本上我想做的是用vlc流式传输视频。我通过kafka服务器传递视频字节,并通过套接字UDP将它们发送到我的本地主机的端口。我使用wireshark,它说数据正在到达,因为我可以看到我发送的数据的大小。虽然,我无法通过vlc访问视频流 import time import socket import vlc import sys from kafka import KafkaConsumer import numpy as np TOPIC_KAFKA_SERVER = "TOPIC NA

嗯,基本上我想做的是用vlc流式传输视频。我通过kafka服务器传递视频字节,并通过套接字UDP将它们发送到我的本地主机的端口。我使用wireshark,它说数据正在到达,因为我可以看到我发送的数据的大小。虽然,我无法通过vlc访问视频流

import time
import socket
import vlc
import sys
from kafka import KafkaConsumer
import numpy as np

TOPIC_KAFKA_SERVER = "TOPIC NAME"
IP_KAFKA_SERVER = 'IP'
PORT_KAFKA_SERVER = '9092'

# INITIALIZE CONSUMER from earliest

consumer = KafkaConsumer(TOPIC_KAFKA_SERVER,bootstrap_servers=[IP_KAFKA_SERVER + ':' + PORT_KAFKA_SERVER], auto_offset_reset='earliest')


#sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM,socket.IPPROTO_UDP)

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM,socket.IPPROTO_UDP)


def exibitImages():
    #print('Test later with video using udp://127.0.0.1:37000')
    #i = 1


    for message in consumer:

        #print(type(message),len(message.value))
        sock.sendto(message.value, ('localhost', 37000))
        #print("message sent!")
        """
        if i > 0:
            Instance = vlc.Instance()
            player = Instance.media_player_new()
            media = Instance.media_new('udp://127.0.0.1:37000')
            player.set_media(media)
            player.play()
            i = 0
        """



    #time.sleep(1)
if __name__ == "__main__":
    exibitImages()

基本上,问题在于套接字udp。卡夫卡很有效。我无法通过vlc访问视频流。

更新:我可以访问发送给我的字节数据。当我将视频保存为.ts文件并在vlc或任何其他媒体播放器中运行时,视频运行良好。虽然,我真正想要的是通过vlc中的流网络通过udp://127.0.0.1:PORT更新:我可以访问发送给我的字节数据。当我将视频保存为.ts文件并在vlc或任何其他媒体播放器中运行时,视频运行良好。虽然,我真正想要的是通过vlc中的流网络通过udp://127.0.0.1:PORT

VLC提供了广泛的流媒体选项,那么,为什么选择卡夫卡呢?卡夫卡被用来从另一台计算机以字节形式发送视频。我正在设计一个手术摄像系统。因此,我们需要不同的计算机从同一服务器接收数据并发送到同一服务器。Kafka可以更好地管理这个流。Kafka是一个分布式消息代理。您的数据将跨分区分布。您不能期望全局排序。因此,您最好找到一种不同的解决方案来流式传输视频。VLC提供了广泛的流式传输选项,那么,为什么选择卡夫卡呢?卡夫卡被用来从另一台计算机以字节为单位发送视频。我正在设计一个手术摄像系统。因此,我们需要不同的计算机从同一服务器接收数据并发送到同一服务器。Kafka可以更好地管理这个流。Kafka是一个分布式消息代理。您的数据将跨分区分布。您不能期望全局排序。因此,您最好找到不同的解决方案来流式传输视频。