Django框架的简单视频转码应用
django-video-transcoding的Python项目详细描述
django视频转码
Django框架的简单视频转码应用
安装
系统要求
对于最新的Ubuntu LTS(20.04):
- ffmpeg-4.x版
$> sudo apt install ffmpeg
- 媒体信息
- 拉比MQ
$> sudo apt install rabbitmq-server
django视频转码
pip install django-video-transcoding
配置Django
编辑您的项目settings.py
INSTALLED_APPS+=['video_transcoding']
环境
django web服务器和celery中使用的常见env变量
DJANGO_SETTINGS_MODULE=YOUR_PROJECT.settings
VIDEO_TRANSCODING_CELERY_BROKER_URL=amqp://guest:guest@rabbitmq:15672/
仅限Web服务器环境变量:
VIDEO_DOWNLOAD_SOURCE=0
VIDEO_EDGES='http://edge-1.localhost,http://edge-2.localhost'
仅限芹菜的环境变量:
VIDEO_TEMP_DIR=/tmp
VIDEO_TRANSCODING_CELERY_CONCURRENCY=2
VIDEO_ORIGINS='http://origin-1.localhost/video,http://origin-2.localhost/video'
启动芹菜工人
$> celery worker -A video_transcoding.celery
演示项目
运行管理、存储和芹菜工人
docker-compose up
- http://localhost:8000/admin/-Django admin(凭据是
admin:admin
) - http://storage.localhost:8080/videos/-源和结果的WebDAV
- http://storage.localhost:8080/hls/-HLS流终结点
转换代码
curl -T cat.mp4 http://storage.localhost:8080/videos/sources/cat.mp4
- 用上面的链接创建新视频
- 等待视频将状态更改为“完成”。在
- 在视频更改窗体管理页上有一个示例视频播放器。在
发展
测试
src/manage.py test
类型检查
$> pip install mypy django-stubs
$> cd src && /data/dvt/virtualenv/bin/dmypy run -- \
--config-file ../mypy.ini video_transcoding
待定:
- [x] 特拉维斯ci
- []斯芬克斯文件-autodoc+手动
- [x] 覆盖范围
- [x] 打字
- [x] 徽章
- [x] 视频托管演示项目,包括docker compose、nginx和播放器演示
生产
正常关机
- 如果您正在docker中运行代码转换器,请确保celery master进程 有pid 1(docker默认向其发送SIGTERM)
- 当使用单独的芹菜应用程序时,将SIGUSR1从master发送到workers以触发
软停堆处理
(见
video_transcoding.celery.send_term_to_children
)
- 项目
标签: