2013-06-24 41 views
3

我是這個python的新手。我將webm視頻文件分割成塊,但是我無法使用python程序單獨播放它們,但是在將塊加入單個文件後播放它。我知道它是由於沒有頭文件。請幫我使用代碼將頭文件附加到各個部分以使它們可以單獨播放。請回復。非常感謝提前。拆分視頻文件,並使其單獨播放

下面是代碼:

客戶端:

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" 
+1

歡迎來到SO!請張貼一些代碼示例,以便我們可以看到您已經嘗試過的內容。 – danodonovan

+0

也請格式化您的代碼。它不可讀。 –

+0

你用Python 2.7和Python 3.x標記了你的問題。我真的懷疑你的代碼在兩者之間運行。 **您正在使用哪個**? – icktoofay

回答

0

我不是太熟悉,.webm格式,但如果是像什麼.avi文件我懷疑將數據關閉不完整並將其保存到文件中就足夠了。我認爲[0:2000000]是你限制尺寸的地方?如果它像.avi那麼你的文件應該用服務器上的ffmpeg或mencoder等工具正確拆分,然後將完整的輸出文件發送到客戶端,而不是過早地關閉數據。