Dev_nab
@Dev_nab

Как исправить проблему со звуком и перезаписать исходное видео?

В конечном видео нет звука вообще и если 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?
  • Вопрос задан
  • 47 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы