用于切分视频或音频。
config.py 文件配置了上传文件的保存路径,切分后的文件也会保存在这个目录中
页面主要的逻辑在views.py中
切分主要是通过ffmpeg
完成的,所以确保机器安装了ffmpeg
,和其有关的主要代码在utils.py中。
需要注意的是
文件上传的是直接以文件名存储在对应的保存路径下的,所以上传同名文件会覆盖原来存在的文件;
同时上传多个文件,只会以第一个为准,其它的都会忽略。
上传文件后会把当天0点之前创建的文件全部删除,避免上传路径下的文件过多
pip install uwsgi
uwsgi --version # 查看 uwsgi 版本
pip install django
ubuntu下可以直接用命令
apt-get install nginx
自己新建一个uwsgi.ini,文件名和所在位置在哪都无所谓
[uwsgi]
# 对外提供的服务的端口,
socket = 127.0.0.1:8001
# 项目的路径,用绝对路径
chdir = ./
# Django s wsgi file
module = cutting.wsgi
# process-related settings
# master
master = true
# maximum number of worker processes
processes = 4
# ... with appropriate permissions - may be needed
# chmod-socket = 664# clear environment on exit
vacuum = true
# 日志路径,最好也用绝对路径
daemonize = ./uwsgi.log
nginx配置nginx.conf(这个文件找不到用命令sudo find / -name nginx.conf
搜一下)
关键是server的配置,其它的可以用默认的
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 600; #这里默认是65秒,为了不会上传失败改成了600秒
types_hash_max_size 2048;
client_max_body_size 2048M;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# SSL Settings
##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
# gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
##
# Virtual Host Configs
##
# 关键的是下面这些配置
server{
listen 80;#nginx监听的端口
server_name cutting;
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8001;# 这里要和uwsgi.ini中socket的配置一样
uwsgi_param UWSGI_SCRIPT cutting.wsgi;
uwsgi_param UWSGI_CHDIR /home/xyong/data/wwwroot/cutting;#项目的路径
}
}
}
配置完成后先命令启动项目
uwsgi --ini uwsgi.ini
再启动nginx sudo nginx
如果已经启动,则用以下命令让其重新读取配置文件
nginx -s reload