Получение вывода байтов с помощью ffmpeg и подпроцессаPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Получение вывода байтов с помощью ffmpeg и подпроцесса

Сообщение Гость »


Я загружаю несколько изображений с веб-сайта и делаю из них видео. Я не хочу сохранять видео в файл, а затем читать его, чтобы отправить по запросу POST. Я хочу унифицировать этот процесс и загрузить > Создать видео > Получить выходные байты > POST.

def Convert_images_to_video(): #output_video = "output.mp4" данные = get_radar_images («а») если нет данных: вернуть ложь ffmpeg_cmd = [ "ффмпег", "-частота кадров", "2", # Входная частота кадров (отрегулируйте по мере необходимости) "-ф", "изображение2пайп", "-вкодек", "ПНГ", "-я", "-", # Ввод из канала "-vf", # Видеофильтр "fps=30", # Частота кадров на выходе (отрегулируйте по мере необходимости) "-резюме", "libx264", # Видеокодек (h.264) "-vf", # Дополнительные видеофильтры "pad=ceil(iw/2)*2:ceil(ih/2)*2", # Заполнение и настройка разрешения "-профиль:v", «высокий», профиль # H.264 "-уровень", "3.0", # уровень H.264 "-pix_fmt", "yuv420p", # Формат пикселей "-бренд", "mp42", "-movflags", "frag_keyframe", # Брендинг "-ф", "mp4", "-", ] ffmpeg_process = subprocess.Popen( ffmpeg_cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) радар_изображения = data.get("список")[::-1] для изображения в радаре_изображениях: img_url = f"https://mycoolweb.com/coolimages/{image}" контент = запросы.get(img_url).content ffmpeg_process.stdin.write(содержимое) ffmpeg_process.stdin.close() ffmpeg_process.terminate() ffmpeg_process.wait() video_bytes = ffmpeg_process.stdout.read() печать (видео_байты) Если сделать это и выполнить python app.py, процесс зависнет вообще без какого-либо вывода. Я попытался добавить universal_newlines=True в subprocess.Popen, но он возвращает исключение TypeError: write() должно быть исключением str, а не bytes.

Поскольку я работаю с изображениями, image.decode("utf-8") не работает. Я некоторое время пытался и читал документацию ffmpeg по каналам, но не смог заставить ее работать.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»