我是这条 python 的新手。我将 webm 视频文件分成 block ,但我无法使用 python 程序使它们单独播放。但是在我将 block 加入单个文件后它会播放。我知道这是由于缺少头文件。请帮助我提供将头文件附加到零件以使它们可以单独播放的代码。请回复。非常感谢。
代码如下:
客户端:
import socket, os
import time
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(("localhost", 5005))
size = 1024
while True:
fname = "/home/xincoz/test/conn2.webm"
fn = client_socket.recv(1024)
print fn
fp = open(fname,'wb')
while True:
strng = client_socket.recv(int(fn))
print strng
if not strng:
break
fp.write(strng)
fp.close()
print "Data Received successfully"
exit()
服务器端:
import os,kaa.metadata
import sys,time
import socket
import Image
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(("localhost", 5005))
server_socket.listen(5)
client_socket, address = server_socket.accept()
print "Conencted to - ",address,"\n"
file = '/home/xincoz/Downloads/connect.webm'
a = kaa.metadata.parse(file)
print '\n Maybe, pending work'
file_name = open(file,'rb')
size=str(os.path.getsize(file))
print size
client_socket.send(str(os.path.getsize(file)))
print file_name
strng = file_name.read(os.path.getsize(file))
client_socket.send(strng[0:2000000])
file_name.close()
print str(a)+"Meta Data"
print "Data sent successfully"
最佳答案
我不太熟悉 .webm 格式,但如果是任何类似 .avi 文件的文件,我怀疑将不完整的数据剪切掉并将其保存到文件中就足够了。我假设 [0:2000000] 是您限制大小的地方?如果它像 .avi,那么您的文件应该使用服务器上的 ffmpeg 或 mencoder 等工具正确分割,然后将完整的输出文件发送到客户端,而不是过早地切断数据。
关于python - 分割视频文件并使它们单独播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17273621/