从本地驱动器打开视频文件作为缓冲区并将其写入新文件
Opening a video file from local drive as buffer and write it into new file
我有一个相同视频的多个损坏的视频文件,我需要将它们重新合并为一个视频,但是当我尝试这样做时
import os
path = 'C:/temp/test'
files = os.listdir(path)
for file in files:
mainFile = open('C:/temp/main.mp4','ab')
with open(path+'/'+file,'rb') as read:
print (read)
mainFile.write(read)
mainFile.close()
它抛出一个错误说
TypeError: must be string or buffer, not file
所以我不知道如何制作视频文件缓冲区。我试着用谷歌搜索它,我发现了一个叫做 ffmpeg 的东西,但它是一个第三方应用程序。我只需要一个文件缓冲区。
请注意 open()
return 是一个 file
对象而不是文件的内容。发生错误是因为 file
对象被传递到 write()
。
您可以调用 file
对象的 read()
方法来读取和 return 文件的内容。
尝试
import os
path = 'C:/temp/test'
files = os.listdir(path)
for file in files:
mainFile = open('C:/temp/main.mp4','ab')
with open(path+'/'+file,'rb') as f:
mainFile.write(f.read())
mainFile.close()
我有一个相同视频的多个损坏的视频文件,我需要将它们重新合并为一个视频,但是当我尝试这样做时
import os
path = 'C:/temp/test'
files = os.listdir(path)
for file in files:
mainFile = open('C:/temp/main.mp4','ab')
with open(path+'/'+file,'rb') as read:
print (read)
mainFile.write(read)
mainFile.close()
它抛出一个错误说
TypeError: must be string or buffer, not file
所以我不知道如何制作视频文件缓冲区。我试着用谷歌搜索它,我发现了一个叫做 ffmpeg 的东西,但它是一个第三方应用程序。我只需要一个文件缓冲区。
请注意 open()
return 是一个 file
对象而不是文件的内容。发生错误是因为 file
对象被传递到 write()
。
您可以调用 file
对象的 read()
方法来读取和 return 文件的内容。
尝试
import os
path = 'C:/temp/test'
files = os.listdir(path)
for file in files:
mainFile = open('C:/temp/main.mp4','ab')
with open(path+'/'+file,'rb') as f:
mainFile.write(f.read())
mainFile.close()