Ошибка при разбитой трубе: [Errno 32] Разбитая труба, imageio_ffmpeg, python

#python #flask #apache2 #mod-wsgi #wsgi

Вопрос:

Контекст: Я использую Ubuntu 20.4 vps и Apache2 для размещения модели глубокого обучения с использованием flask.

Мне нужно написать видео с изображений, там я использовал

 imageio.mimsave(path, [img_as_ubyte(frame) for frame in predictions], fps=fps)
 

Когда я тестирую его с помощью flask-ngrok, он работает. Но после развертывания на flask с использованием WSGI и сервера apache2 это приводит к ошибке «Сломанная труба». Странно!

Журналы ошибок Apache2:

Ошибка:модель:исключение / [должность], реферер: IP адрес [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] обратная трассировка (самый недавний призыв последнего):, реферер: HTTP:// в/ [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] файл «/usr/local/lib/python3.8/dist-packages/imageio_ffmpeg/_io.py», строка 493, в write_frames, реферер: IP адрес [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] С. вывод.написать(ВВ), реферер: HTTP:// в/ [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] BrokenPipeError: [значение errno 32] сломанная труба, реферер: IP адрес [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] , реферер: HTTP:// в/ [СР авг 04 16:36:27.857233 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] во время обработки вышеуказанного исключения, другое исключение произошло:, реферер: HTTP:// в [СР авг 04 16:36:27.857238 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [клиент] , реферер: HTTP:// в/ [СР авг 04 16:36:27.857243 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [клиент 3] Обратная трассировка (самый недавний призыв последнего):, реферер: HTTP:// в/ [СР авг 04 16:36:27.857250 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [клиент] файл «/usr/local/lib/python3.8/dist-packages/flask/app.py», линия 2070, в wsgi_app, реферер: HTTP:// в/ [СР авг 04 16:36:27.857256 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [клиент ] ответ = самоуправления.full_dispatch_request(), реферер: HTTP:// в/ [СР авг 04 16:36:27.857261 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [клиент ] файл «/usr/local/lib/python3.8/dist-packages/flask/app.py», линия 1515, в full_dispatch_request, реферер: HTTP:// в/ [СР авг 04 16:36:27.857266 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] р. = самоуправления.handle_user_exception(E), то реферер: IP адрес [Ср авг 04 16:36:27.857272 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [клиент IP клиента] файл «/usr/local/lib/python3.8/dist-packages/flask/app.py», линия 1513, в full_dispatch_request, реферер: IP адрес [Ср авг 04 16:36:27.857277 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] р. = самоуправления.dispatch_request(), реферер: IP адрес [Ср авг 04 16:36:27.857294 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] файл «/usr/local/lib/python3.8/dist-packages/flask/app.py», линия 1499, в dispatch_request, реферер: IP адрес [Ср авг 04 16:36:27.857300 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] возвращение собственной личности.ensure_sync(самовыдвижение.view_functions[править.конечная])(**Треб.view_args), реферер: IP адрес [Ср авг 04 16:36:27.857306 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] файл «/var/www/html/model/model/Model/model.py», строка 48, в спрогнозировать, реферер: IP адрес [Ср авг 04 16:36:27.857311 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] imageio.mimsave(‘/главная/администратор/модель/модель/Модель/результаты/формируется.в формате mp4’, [img_as_ubyte(рамка) для рамы в прогнозах], ФПС ФПС), реферер: IP адрес [Ср авг 04 16:36:27.857317 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] файл «/usr/local/lib/python3.8/dist-packages/imageio/core/functions.py», строка 418, в mimwrite, реферер: IP адрес [Ср авг 04 16:36:27.857322 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] писатель.append_data(им), реферер: IP адрес [Ср авг 04 16:36:27.857327 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] файл «/usr/local/lib/python3.8/dist-packages/imageio/core/format.py», строке 502, в append_data, реферер: IP адрес [Ср авг 04 16:36:27.857332 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] возвращение собственной личности._append_data(им, total_meta), реферер: IP адрес [Ср авг 04 16:36:27.857337 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] файл «/usr/local/lib/python3.8/dist-packages/imageio/plugins/ffmpeg.py», строка 574, в _append_data, реферер: IP адрес [Ср авг 04 16:36:27.857342 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] самостоятельно._write_gen.отправить(чат), реферер: IP адрес [Ср авг 04 16:36:27.857347 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] файл «/usr/local/lib/python3.8/dist-packages/imageio_ffmpeg/_io.py», линия 500, в write_frames, реферер: IP адрес [Ср авг 04 16:36:27.857353 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] поднять IOError(глутамат натрия), реферер: IP адрес [Ср авг 04 16:36:27.857358 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] OSError: [значение errno 32] сломанная труба, реферер: IP адрес [Ср авг 04 16:36:27.857363 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] , реферер: IP адрес [Ср авг 04 16:36:27.857367 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] ffmpeg в команду:, реферер: IP адрес [Ср авг 04 16:36:27.857373 2021] [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] /usr/местные/библиотека/питон3.8/дист-пакеты/imageio_ffmpeg/файлы/видео-linux64-В4.2.2 -й -ф rawvideo -vcodec rawvideo -с разрешением 256 на 256-pix_fmt rgb24 на -20.00 р и-я — и-Ан-vcodec поддержкой libx264 -pix_fmt yuv420p -CRF с-25-в предупреждение /главная/администратор/модель/модель/Модель/результаты/формируется.МР4, реферер: IP адрес [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] , реферер: HTTP:// в/ [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] ffmpeg на вывод stderr:, реферер: [тут WSGI:ошибка] [пид 1029:Тид 140257565120256] [IP-адрес клиента] , реферер: IP хоста

Ответ №1:

Исправление: в самом Linux есть ffmpeg, который вызывает здесь ошибку. В журналах ошибок также записано, что версия ffmpeg, которая поставляется с linux, устарела и нуждается в обновлении.

использовать:

 sudo apt-get install ffmpeg
 

Надеюсь, это позволит устранить ошибку. Пожалуйста, прокомментируйте, если у вас есть какие-либо другие вопросы.