Проблема обрезки FFMPEG в контейнере Docker для видео, записанных в Safari ⇐ Linux
-
Гость
Проблема обрезки FFMPEG в контейнере Docker для видео, записанных в Safari
У меня возникла проблема с FFMPEG при попытке обрезать видео до определенной продолжительности в контейнере Docker. Обрезка отлично работает на моем локальном компьютере (M1 Pro), но когда я запускаю тот же код в контейнере Docker (используя образ python:3.8-slim-buster), сгенерированный клип длится всего 1 секунду вместо запланированных 5. секунды.
Похоже, проблема специфична для видео, записанных в Safari, поскольку видео, записанные в Google Chrome, работают должным образом как в локальной среде, так и в контейнерной среде.
Вот код, который я использую для обрезки:
def get_clip(source, сгенерированное_имя_файла, до_секунды=5): logging.info("***** Генерация клипа *****") команда = f'ffmpeg -y -i {источник} -t {до_секунды} -c:v libx264 -c:a aac -strict экспериментальный {generated_file_name}' os.system (команда) logging.info("***** Сгенерирован клип *****") вернуть сгенерированное_имя_файла А вот мой Dockerfile:
ИЗ python:3.8-slim-buster WORKDIR/python-docker ЗАПУСК apt-get update && apt-get install gcc python3-dev -y && \ rm -rf /var/lib/apt/lists/* && \ apt-get update && apt-get install ffmpeg libsm6 libxext6 -y КОПИРОВАТЬ требования.txt ЗАПУСК pip3 install -r требования.txt КОПИРОВАТЬ. . ENTRYPOINT экспорт LD_PRELOAD=/usr/local/lib/python3.8/site-packages/torch/lib/../../torch.libs/libgomp-6e1a1d1b.so.1.0.0 && python app.py Я подозреваю, что могут быть проблемы совместимости версий или кодеков ffmpeg между моей локальной машиной и контейнером. Будем очень признательны за любые идеи или предложения о том, как решить эту проблему. Спасибо!
Я пробовал использовать разные библиотеки на Python, например Moviepy, но, поскольку они «за кулисами» используют FFMPEG, так что безуспешно. Также я пытался использовать OpenCV, но он не извлекает звук. Наконец, я также попытался извлечь аудио отдельно с помощью PyDub, но это также извлекло звук всего за одну секунду
У меня возникла проблема с FFMPEG при попытке обрезать видео до определенной продолжительности в контейнере Docker. Обрезка отлично работает на моем локальном компьютере (M1 Pro), но когда я запускаю тот же код в контейнере Docker (используя образ python:3.8-slim-buster), сгенерированный клип длится всего 1 секунду вместо запланированных 5. секунды.
Похоже, проблема специфична для видео, записанных в Safari, поскольку видео, записанные в Google Chrome, работают должным образом как в локальной среде, так и в контейнерной среде.
Вот код, который я использую для обрезки:
def get_clip(source, сгенерированное_имя_файла, до_секунды=5): logging.info("***** Генерация клипа *****") команда = f'ffmpeg -y -i {источник} -t {до_секунды} -c:v libx264 -c:a aac -strict экспериментальный {generated_file_name}' os.system (команда) logging.info("***** Сгенерирован клип *****") вернуть сгенерированное_имя_файла А вот мой Dockerfile:
ИЗ python:3.8-slim-buster WORKDIR/python-docker ЗАПУСК apt-get update && apt-get install gcc python3-dev -y && \ rm -rf /var/lib/apt/lists/* && \ apt-get update && apt-get install ffmpeg libsm6 libxext6 -y КОПИРОВАТЬ требования.txt ЗАПУСК pip3 install -r требования.txt КОПИРОВАТЬ. . ENTRYPOINT экспорт LD_PRELOAD=/usr/local/lib/python3.8/site-packages/torch/lib/../../torch.libs/libgomp-6e1a1d1b.so.1.0.0 && python app.py Я подозреваю, что могут быть проблемы совместимости версий или кодеков ffmpeg между моей локальной машиной и контейнером. Будем очень признательны за любые идеи или предложения о том, как решить эту проблему. Спасибо!
Я пробовал использовать разные библиотеки на Python, например Moviepy, но, поскольку они «за кулисами» используют FFMPEG, так что безуспешно. Также я пытался использовать OpenCV, но он не извлекает звук. Наконец, я также попытался извлечь аудио отдельно с помощью PyDub, но это также извлекло звук всего за одну секунду
Мобильная версия