PM2 работает как web
пользователь.ffmpeg был установлен на Ubuntu 16.04 LTS с использованием sudo apt install ffmpeg
.Версия Python 3.6.Программное обеспечение использует ffmpeg-python@0.1.17.
Созданные приложения не выдают ошибок.Когда код ffmpeg выполняется впервые, мы видим вывод, и процесс ffmpeg завершает задачу, как и ожидалось.
Все последующие запросы останавливаются при следующем выполнении ffmpeg.Нет вывода.Нет возврата из процесса ffmpeg.Нет ошибокПроцесс PM2 не выдает ошибку.Журнал приложения останавливается на команде ffmpeg, как будто она зависла.
В чем основная причина? Любая помощь очень важна.
Кроме того, каковы причиныPM2 висит на подпроцессе (например, ffmpeg)?
Вот код:
class ImageHelper:
def __init__(self):
pass
@classmethod
def create_thumb_from_video_ffmpeg(cls, input_video_file_path,
output_image_path,
scale_width,
scale_height
):
"""
This function is used to create the thumb image
from a source video file.
We are using a python wrapper/library for FFMPEG
"""
try:
if Functions.get_attribute_env('ENVIRONMENT') == 'prod':
out, err = (
ffmpeg
.input(input_video_file_path, ss="00:00:00.001")
.filter('scale', scale_width, scale_height)
.output(output_image_path, vframes=1, loglevel='quiet')
.overwrite_output()
.run(capture_stdout=True)
)
print("We only see this once!")
else:
out, err = (
ffmpeg
.input(input_video_file_path, ss="00:00:00.001")
.filter('scale', scale_width, scale_height)
.output(output_image_path, vframes=1)
.overwrite_output()
.run(capture_stdout=True)
)
print("We only see this once!")
if err:
if Functions.get_attribute_env('ENVIRONMENT') != 'prod':
print('ffmpeg video thumb', err)
else:
Functions.logger_function(str(err))
raise Exception(err)
else:
return output_image_path
except Exception as e:
if Functions.get_attribute_env('ENVIRONMENT') != 'prod':
print('in thumb exception', e)
else:
Functions.logger_function(str(e))
raise Exception(e)