我正在开展一个网络课程项目,我必须创建一个视频流服务器。我发现this link是一个简单的python客户端/服务器套接字二进制流,看起来非常有用。我可以通过网络将视频文件作为数据包发送,但接收方将传入的数据包保存为文件。我想将传入的数据包显示为视频流(最好是使用HTML在Web浏览器上),而不是写入文件。请提出一些可行的方法。感谢。
在我做项目时,我想从头开始创建一个流媒体服务器,而不是像Flumotion那样使用现有的实现。
以下是发送方和接收方的代码:
发送方:
import socket
HOST = 'localhost'
PORT = 9876
ADDR = (HOST,PORT)
BUFSIZE = 4096
videofile = "./test2.mp4"
bytes = open(videofile).read()
print len(bytes)
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(ADDR)
client.send(bytes)
client.close()
接收方:
import socket
HOST = ''
PORT = 9876
ADDR = (HOST,PORT)
BUFSIZE = 4096
serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serv.bind(ADDR)
serv.listen(5)
print 'listening ...'
while True:
conn, addr = serv.accept()
print 'client connected ... ', addr
myfile = open('testfile.mov', 'w')
while True:
data = conn.recv(BUFSIZE)
if not data: break
myfile.write(data)
print 'writing file ....'
myfile.close()
print 'finished writing file'
conn.close()
print 'client disconnected'