В конечном видео
нет звука вообще и
если output.mp4 заменить на my_video.mp4, то получится битый видос.
Я так понимаю, ffmpeg не кладет видео в буфер, а сразу его рендерит и поэтому получается битый видос в конце, т.е. он его рендерит и сразу записывает.
Как тогда обработать видео
my_video.mp4 и сразу его сохранить
под этим же названием?
import ffmpeg
def watermark(path): # для примера path = 'my_video.mp4'
watermark = ffmpeg.input('watermark.png') # картинка вотермарк
# asyn
(
ffmpeg
.input(
'my_video.mp4',
ss='00:00:00', t='00:00:15',
) # даю путь к исходному видео и обрезаю его первых 15 сек
.overlay(watermark, x=23, y=23) # накладываю вотермарк с отступами 23px
# если убрать .overlay(...), то звук появляется
.output(
'output.mp4',
acodec='copy',
aspect='9:16', # соотношение сторон 9:16 (ширина : высота)
s='hd1080' # разрешение 1080p
)
.global_args('-y') # перезапись полученного видео
.run()
)
P.S. Так же если попадается видео с соотношением сторон
не 9:16 (ширина : высота), а
наоборот 16:9, то видос сужается с искажениями.
Как сделать, чтобы автоматом подгонялось 9:16 и где надо наоборот 16:9?