从本地驱动器打开视频文件作为缓冲区并将其写入新文件

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()