好吧,基本上,我想做的就是使用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或任何其他媒体播放器中运行时,视频运行正常。虽然,我真正想要的是通过udp://127.0.0.1:PORT在vlc中通过流网络访问
关于python - 通过Kafka和套接字通信流式传输视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58310886/