Python добавление файлов из URL в файл в локальном файле - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь объединить два файла из Интернета и сохранить результаты на моем компьютере.У меня есть код ниже, но не сделал то, что я пытаюсь, я всегда получаю один и тот же результат.Я получаю первый URL, и больше ничего.Если быть точным, я пытаюсь объединить VideoURL и videoURL1 в один файл с именем output.mp4 ...

videoURL= 'http://file-examples.com/wp-content/uploads/2017/04/file_example_MP4_480_1_5MG.mp4'
videoURL1 = 'http://techslides.com/demos/sample-videos/small.mp4'
# print(str(embeddHTMLString).find('sources: ['))

local_filename = videoURL.split('/')[-1]
# NOTE the stream=True parameter

response = urlopen(videoURL)

response1 = urlopen(videoURL1)

with open(local_filename, 'wb') as f:
    while True:
        chunk = response.read(1024)
        if not chunk:
            break
        f.write(chunk)
with open(local_filename, 'ab+') as d:
    while True:
        chunk1 = response1.read(1024)
        if not chunk1:
            break
        d.write(chunk1)

1 Ответ

0 голосов
/ 13 февраля 2019

Вы делаете это неправильно.Суть этого ответа уже дана @ Tempo810, , вам нужно скачать файлы отдельно и объединить их в один файл позже .

Я предполагаю, что у вас есть оба video1.mp4и video2.mp4 загружается с ваших URL отдельно.Теперь, чтобы объединить их, вы просто не можете использовать команду append для объединения файлов, поскольку видеофайлы содержат заголовок формата и метаданные, а объединение двух медиафайлов в один означает, что вам нужно переписать новые метаданные и заголовок формата и удалить старые.

Вместо этого вы можете использовать библиотеку moviepy, чтобы спасти себя.Вот небольшой пример кода, как использовать moviepy concatenate_videoclips() для объединения файлов:

from moviepy.editor import VideoFileClip, concatenate_videoclips
# opening the clips
clip1 = VideoFileClip("video1.mp4")
clip3 = VideoFileClip("video2.mp4")
# lets concat them up
final_clip = concatenate_videoclips([clip1,clip2])
final_clip.write_videofile("output.mp4")

В результате вы получите объединенный файл output.mp4.Вот и все!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...