#python #ffmpeg #wsgi #python-multithreading #python-multiprocessing
#python #ffmpeg #wsgi #python-многопоточность #python-многопроцессорная обработка
Вопрос:
Я разрабатываю скрипт python WSGI для взаимодействия с HDHomeRun Prime. В идеальном мире он будет передавать значения URI в виде команд в FFMPEG и отображать результирующий поток в браузере. У меня части «показать содержимое в браузере» и «передать инструкции в FFMPEG» работают нормально, но у меня они не работают одновременно.
1) Учитывая, что это промежуточное программное обеспечение используется для перекодирования MPEG-2 в h.264, имеет ли смысл использовать многопроцессорную или многопоточную обработку для запуска и остановки соответствующих процессов?
2) Если скрипт WSGI выполняет посредничество при инициировании каналов FFMPEG (если входной канал еще не передан) и подключает клиентов к связанным потокам FFServer, означает ли это, что мне нужно будет использовать какой-то пул для отслеживания действий промежуточного программного обеспечения?
Ответ №1:
Я не совсем понимаю весь ваш процесс, но ИМО, с которого вы должны начать multithreading
, поскольку его намного проще настроить (переменные разделяются, как обычно, в Python). ЕСЛИ это не соответствует вашим требованиям (например, недостаточно быстро), вы можете перейти к multiprocessing
, но это увеличит сложность, если вы никогда не использовали multiprocessing
Python (нет связи между process
, необходимость использования queues
или общие переменные).
Настройте свои потоки :
import threading
a = threading.Thread(target = func, args=(vars))
a.start()
Хороший учебник здесь.
Вы также должны знать о python’s GIL, чтобы понять, что вы делаете в потоковой / многопроцессорной обработке .
Комментарии:
1. Спасибо, Гарри! Извините за медленный ответ. Мне нравится предоставленный вами учебник, и я посмотрю, смогу ли я реализовать его в выходные.