Запись в переменную куска видео

Пытаюсь сохранить результат в переменную result, результатом является обработанный видео кусок...

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

Кусок кода:

def Response(request):
    chunkVideo = next(threads[0].run())

    chunkVideo = ffmpeg.input(chunkVideo, f='mp4')

    result = b""
    chunkVideo = ffmpeg.filter(chunkVideo, 'fps', fps=10, round='up')
    chunkVideo = ffmpeg.output(chunkVideo, result, f="mp4")
    ffmpeg.run(chunkVideo)

    return HttpResponse(result)

Ошибка:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc6 in position 31: invalid continuation byte

Ответы (2 шт):

Автор решения: MarianD

Надо понять, что вам нечего сохранять - у вас нету никакого (промежуточного) результата, потому что его просто не может быть.

Всё, что ffmpeg-python делает, есть постепенное составление цепочки параметров для программы FFmpeg, точнее, для его консольной команды ffmpeg.

Только после передачи созданной цепочки как параметра в функцию ffmpeg.run() (или ffmpeg.run_async()) пакета ffmpeg-python делается работа, но эту работу уже делает сама программа FFmpeg, а не пакет ffmpeg-python.


С другой стороны, всё что вы сделали, будет сохранено в вашей переменной chunkVideo после (например) правильной команды

chunkVideo = ffmpeg.output(chunkVideo, "output.mp4")

(а не вашей неправильной chunkVideo = ffmpeg.output(chunkVideo, result, f="mp4")), но только в виде объекта типа OutputStream, что опять нечего другого как цепочка параметров для ffmpeg.

Вы можете убедиться в том: ffmpeg.get_args(chunkVideo) вам покажет список этих параметров (аргументов).

→ Ссылка
Автор решения: XOOTO

@CrazyElf, в комментарии написал "Можно вроде pipe делать и читать из него. Смотрите примеры в документации: kkroening.github.io/ffmpeg-python - CrazyElf", благодаря ему этот вопрос решён.

→ Ссылка