拆分视频文件并使其可单独播放

时间:2013-06-24 10:47:47

标签: python sockets video ffmpeg webm

我是这个蟒蛇的新手。我将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 个答案:

答案 0 :(得分:0)

我对.webm格式并不太熟悉,但如果有类似.avi文件,我怀疑是否将数据删除不完整并将其保存到文件就足够了。我假设[0:2000000]是你限制尺寸的地方?如果它像.avi那样你的文件应该使用服务器上的ffmpeg或mencoder等工具正确分割,然后将完整输出的文件发送到客户端,而不是过早地删除数据。