Запись в переменную куска видео
Пытаюсь сохранить результат в переменную 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 шт):
Надо понять, что вам нечего сохранять - у вас нету никакого (промежуточного) результата, потому что его просто не может быть.
Всё, что 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) вам покажет список этих параметров (аргументов).
@CrazyElf, в комментарии написал "Можно вроде pipe делать и читать из него. Смотрите примеры в документации: kkroening.github.io/ffmpeg-python - CrazyElf", благодаря ему этот вопрос решён.