Если у меня есть 6 файлов MP4, как я могу снять видео, в котором 5 из этих файлов MP4 воспроизводятся друг за другом, с прозрачным переходом между каждым видео 0,5 секунды между каждым видео, все в верхней части другого (6 -го) файла MP4? (Проверьте видео, прикрепленное ниже, чтобы получить представление о том, о чем я говорю, но видео было сделано другим и хуже) < /p>
В настоящее время у меня есть код, который объединяет 5 в одно видео, а затем помещает это видео на 6 -е видео. Но проблема заключается в том, что переход между видео не прозрачен, и сверху и внизу все меньшие сцепленные видео. Это не должно быть решено так, как я думаю, это может быть; Моя конечная цель - просто иметь прозрачные переходы между зажимами и нигде без толстых черных стержней. Любая помощь очень ценится, спасибо.from ctypes import resize
from time import sleep
from os import chdir
from os import walk
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.common.exceptions import NoSuchElementException
from gtts import gTTS
from moviepy.editor import *
from getStockFootage import getStockFootage
from selenium.webdriver.common.action_chains import ActionChains
#Get the audio files
myAudioFiles = next(walk(r'C:\Users\jack_l\Documents\REDDIT_TO_YOUTUBE_PYTHON_SELENIUM\topicAndCommentsAudio'), (None, None, []))[2]
audioClips = []
#Get the picture files
myImageFiles = next(walk(r'C:\Users\jack_l\Documents\REDDIT_TO_YOUTUBE_PYTHON_SELENIUM\topicAndCommentsPictures'), (None, None, []))[2]
imageClips = []
#Put all audio clips into a list
chdir(r'C:\Users\jack_l\Documents\REDDIT_TO_YOUTUBE_PYTHON_SELENIUM\topicAndCommentsAudio')
for audioNumber in range(len(myAudioFiles)):
audioClips.append(AudioFileClip(myAudioFiles[audioNumber]))
#Put all image clips into a list
chdir(r'C:\Users\jack_l\Documents\REDDIT_TO_YOUTUBE_PYTHON_SELENIUM\topicAndCommentsPictures')
for imageNumber in range(len(myImageFiles)):
imageClips.append(ImageClip(myImageFiles[imageNumber], transparent=True))
#Make a bunch of small videos with the audio and image
chdir(r'C:\Users\jack_l\Documents\REDDIT_TO_YOUTUBE_PYTHON_SELENIUM\redditVideo')
for videoNumber in range(len(imageClips)):
sleep(0.5)
if videoNumber == (len(imageClips)-1):
video = imageClips[videoNumber].set_audio(audioClips[videoNumber])
video.duration = audioClips[videoNumber].duration
video.write_videofile('aTopicText.mp4', fps = 30)
else:
video = imageClips[videoNumber].set_audio(audioClips[videoNumber])
video.duration = audioClips[videoNumber].duration
video.write_videofile('comment'+str(videoNumber+1)+'.mp4', fps = 30)
#Get a stock video (.mp4) for the video and puts the video into C:\Users\jack_l\Documents\REDDIT_TO_YOUTUBE_PYTHON_SELENIUM\redditVideo\stockFootage
sleep(2)
getStockFootage(driver)
#Merge all the smaller videos into one large one
chdir(r'C:\Users\jack_l\Documents\REDDIT_TO_YOUTUBE_PYTHON_SELENIUM\redditVideo')
myVideoFiles = next(walk(r'C:\Users\jack_l\Documents\REDDIT_TO_YOUTUBE_PYTHON_SELENIUM\redditVideo'), (None, None, []))[2]
for counter16 in range(len(myVideoFiles)):
if '.mp4' not in myVideoFiles[counter16]:
myVideoFiles.remove(myVideoFiles[counter16])
videoClips = []
for videoNumber in range(len(myVideoFiles)):
videoClips.append(VideoFileClip(myVideoFiles[videoNumber]))
#Make video of comments
sleep(3)
mergedVideos = concatenate_videoclips(videoClips, method='compose', bg_color=None, padding=0.5)
mergedVideos.write_videofile('mergedVideo.mp4', fps = 30)
mergedVideos.close()
#The comment video
commentVideo = VideoFileClip('mergedVideo.mp4')
commentVideo = commentVideo.resize(height=360)
commentVideo = commentVideo.set_position(("center"))
#Delete used files (let's keep the workplace clean)
# sleep(3)
# for counter17 in range(len(myVideoFiles)):
# os.remove(myVideoFiles[counter17])
sleep(3)
#Get stock footage and make into video
chdir(r'C:\Users\jack_l\Documents\REDDIT_TO_YOUTUBE_PYTHON_SELENIUM\redditVideo\stockFootage')
myStockFootage = next(walk(r'C:\Users\jack_l\Documents\REDDIT_TO_YOUTUBE_PYTHON_SELENIUM\redditVideo\stockFootage'), (None, None, []))[2]
stockFootage = VideoFileClip(myStockFootage[0], target_resolution=(1080, 1920), audio=False)
stockFootage = stockFootage.loop(duration = mergedVideos.duration)
stockFootage.write_videofile('loopedStock.mp4', fps = 30)
stockFootage.close()
os.remove(myStockFootage[0])
#Get looped video
loopedVideo = VideoFileClip('loopedStock.mp4', target_resolution=(1080, 1920), audio=False)
#Put commentVideo onto stockFootage
chdir(r'C:\Users\jack_l\Documents\REDDIT_TO_YOUTUBE_PYTHON_SELENIUM\redditVideo\finalVideo')
finalVideo = CompositeVideoClip([loopedVideo, commentVideo])
finalVideo.write_videofile('finalVideo.mp4', fps=30)
print('Finished')
Подробнее здесь: https://stackoverflow.com/questions/723 ... in-moviepy
Как я могу объединить и наложения клипов с прозрачностью в фильме? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
При настройке клипов приложений следует ли устанавливать для appclips:
полное приложение?
Anonymous » » в форуме IOS - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-