3月16日,北京源创会 —— “数据库,2024 开炫”
软件简介
凌夕文件管理系统(lfs)是基于 SpringBoot3.x+Mybatis+Mybatis-Plus+VUE3+Element Plus 开发的文件管理系统, 支持单文件上传、分片上传,视频上传完成后,可以根据视频转码配置转成对应的视频格式(mp4、m3u8),文档上传完成后,会转成 pdf 文件, 支持 word、excel、ppt、wps、text、rtf 文件转成 pdf。
支持音视频、图片、文档在线预览、下载、重命名、移动文件夹、删除等操作,支持文件分类查看。
后端 git 地址:https://gitee.com/lxinet/lfs
前端 git 地址:https://gitee.com/lxinet/lfs-vue
用户手册
新建文件夹
在文件管理页面,点击【新建文件夹】,就可以在当前文件夹下新建一个文件夹了,默认文件夹名称为“新建文件夹”,默认会全选,可以重新修改名称,按回车后,就完成文件夹创建。
移动文件
在文件管理页面,可以选择文件移动到其他文件夹下。
上传文件
文件可以在线上传,上传使用分片上传方式,如果上传重复文件,可以直接秒传,秒传是根据文件md5进行判断。
在文件管理页面,点击【上传文件】按钮,就会弹出上传文件的弹窗。
可以拖拽文件到窗口或者点击窗口选择文件进行文件上传,上传过程中可以实时查看上传进度。
上传完成后,可以点击右边的【查看】按钮,查看上传文件的详情页。
文件上传完成后,会自动发起转码,文档会转成pdf文件,视频会根据转码配置进行转码。
文档预览
文档上传后,会自动转成pdf文件,可以在线预览,可以在文件详情页面,点击【转码预览】按钮,就可以在线查看pdf文件内容。
视频预览
视频上传完成后,会根据转码配置自动转码,在视频详情页面,可以查看原文件和转码文件。
点击【原文件预览】按钮,就可以预览原文件。
点击底下的转码列表右边的预览,就可以查看当前转码后的文件的视频。
转码配置
转码配置是针对视频文件转码进行配置的,视频上传后会根据开启的转码配置进行转码,可以在转码配置页面进行添加、修改、删除、开启/关闭转码。
新增转码配置
点击【新增】按钮,系统会弹出新增转码配置界面,填写信息后点击【保存】按钮,即可添加新的转码配置。
修改转码
在转码配置管理页面,点击每个转码配置右边的编辑,即可进入编辑页面,修改内容完成后,点击【保存】按钮,即可完成修改。
删除转码配置
在转码配置管理页面,点击每个转码配置右边的删除,点击确定后,就可以删除指定的转码配置。
开启转码配置
在转码配置管理页面,点击每个转码配置状态,就可以切换开启/关闭转码配置。
转码进度
在转码进度页面可以实时查看转码进度,也可以对文件进行重新转码。
点击右边的【重新转码】按钮,就可以对文件重新转码。
环境支持
数据库:mysql
缓存:redis
文件服务器:nginx
部署前需修改 application.yml 文件中的 mysql 和 redis 信息,需要部署 nginx 服务作为文件服务器,nginx 配置可查看 “本地存储” 章节内容
开发框架
后端
springboot3.x+mybatis+mybatis-plus
前端
vue3+element-plus+vite
系统配置
文件大小限制
默认支持 2G 文件上传,如果需要调整,修改 application.yml 中的以下 2 个参数:
spring: servlet: multipart: #单个文件最大限制 max-file-size: 2048MB #总上传文件总大小 max-request-size: 2048MB
视频水印
视频水印只支持图片水印,要开启视频水印,需要先将视频水印图片放在项目目录下。
水印文件固定路径:/resources/static/watermark.png
可以开启、关闭水印,可以设置水印位置,具体可以看以下水印的配置信息。
config: video: #视频水印,水印图片固定在位置:/resources/static/watermark.png watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #水印位置 TOP_LEFT 左上角,TOP_RIGHT 右上角,BOTTOM_LEFT 左下角,BOTTOM_RIGHT 右下角 location: TOP_LEFT #x、y为对应4个角的距离,不能为负数,负数可能会报错 offset-x: 100 offset-y: 100
文档水印
文档水印只有在转成 pdf 后才可以添加水印,文档只能添加文字水印,可以配置当前时间。
可以开启、关闭水印,可以设置水印位置,具体可以看以下水印的配置信息。
config: document: watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #开启水印加上当前时间 time-enable: true #时间格式,yyyy 年、MM 月、dd 日、HH 小时、mm 分钟、ss 秒 time-format: yyyy-MM-dd HH🇲🇲ss #水印内容,如果开启时间,会在内容后面加上时间 content: 凌夕文件管理系统 #文字大小 font-size: 12 #行距 row-space: 100 #列距 col-space: 150 #透明度 alpha: 0.1
文件存储
文件存储支持本地文件存储和 minio 存储(还未完善,如果有需要,可以继续完善该功能),在 application.yml 中可以设置存储类型
config: file-server: #文件服务,local/minio,local本地文件服务,minio minio服务 type: local
本地存储
存储目录和访问配置
本地存储需要配置本地存储文件路径(绝对路径)和本地文件预览地址,需要使用 nginx 配置 file-dir 的访问服务,preview-url 为 nginx 配置的域名和端口。
config: file-server: local: #本地文件上传路径 file-dir: /Users/zcx/develop/lfs/uploadFile #本地文件预览地址 preview-url: http://127.0.0.1:8918
nginx 配置
server { listen 8918; server_name localhost; location ~ .*\\.ts { root /Users/zcx/develop/lfs/uploadFile; } location ~ .*/thum/.* { root /Users/zcx/develop/lfs/uploadFile; } location / { root /Users/zcx/develop/lfs/uploadFile; index index.html index.htm; if ($arg_oper = "down") { add_header Content-Disposition "attachment;filename=$arg_filename"; } secure_link $arg_secret,$arg_expire; secure_link_md5 e9eaa184ac1b4068829edb4f3ea978f4$uri$arg_expire; if ($secure_link = "") { return 403; } if ($secure_link = "0") { return 403; } } }
防盗链配置
防盗链需要配置密钥和有效期时间,需要 nginx 配置配合,nginx 配置可以查看上节 nginx 配置,配置的密钥需要和 nginx 中的密钥一致。
config: file-server: local: #密钥 secret: e9eaa184ac1b4068829edb4f3ea978f4 # 防盗链st有效时长(秒) st-effective-time: 86400
minio 存储(未完善)
需要配置 minio 服务相关信息,如下:
config: file-server: minio: access-key: HgiCBQslp8LDfNyWuTOj secret-key: 65Quqe4SR881xrs9je9A4vjRNtoWmkYvtT78mL9b url: http://127.0.0.1:9000 bucket-name: test
文件上传
目前未限制文件上传格式,如果有需要,可以增加限制。
每个上传 ID 只能上传一个文件,如果上传多个文件用同一个上传 ID,会导致上传失败。
本地文件存储
- 原文件:{config.file-server.local.file-dir}/files/{uuid + 后缀}
如:/Users/zcx/develop/lfs/uploadFile/files/0cc01a75-399a-446c-8b26-902e95178856.mp4
- 视频转码文件:{config.file-server.local.file-dir}/trans/video/{uuid + 后缀}
如:/Users/zcx/develop/lfs/uploadFile/trans/video/8ab4b994-a4a8-42f6-8b1d-55e6abbb123c.mp4
- 文档转码文件:{config.file-server.local.file-dir}/trans/document/{uuid + 后缀}
如:/Users/zcx/develop/lfs/uploadFile/trans/document/8ab4b994-a4a8-42f6-8b1d-55e6abbb123c.mp4
- 视频 hls 文件:
{config.file-server.local.file-dir}/trans/hls/uuid/video.m3u8
{config.file-server.local.file-dir}/trans/hls/uuid/video_{分片编号}.ts
如:/Users/zcx/develop/lfs/uploadFile/trans/hls/65498aa0-5b0e-4959-9127-fc1f57cc98d4/video.m3u8
/Users/zcx/develop/lfs/uploadFile/trans/hls/65498aa0-5b0e-4959-9127-fc1f57cc98d4/video_0.ts
注:一个视频 hls 文件会有 m3u8 和 ts 两种文件格式,m3u8 文件一个,ts 文件若干个,每个 ts 文件有 10 秒视频,ts 文件编号从 0 开始
- 视频封面文件:{config.file-server.local.file-dir}/thum/ 原文件 md5 值 / 截取图片所在秒数.jpg
如:/Users/zcx/develop/lfs/uploadFile/thum/db94fba515e9c0dc7cb20dbf06bc410c/1.jpg
文件分片上传流程
正常流程
秒传
接口
获取 token
地址:/getToken
请求方式:POST
请求参数:
- appId:YbcKSAlou6UREvkwJmTx
- appSecret:95NmdotNX939f4gk7vTd3cHkMd8LhBcSzPn50G8c
响应数据:
{ "code":0, "msg":"操作成功", "data":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiIiLCJpYXQiOjE3MDY1MDgwOTYsImV4cCI6MTcwNjUyMjQ5NiwiYXBwSWQiOiJMZ2lDQlFzbHA4TERmTnlXdWpNbyJ9.2sAq09kEpV7teYwqIa6CxRwzAQSVrv2TeMYy5A9NS_8" }
上传初始化(秒传)
地址:/file/uploadInit
请求方式:POST
header 参数:token
请求参数:
- dirId:文件夹 id
- fileName:文件名
- md5:文件 md5
响应数据:
- 正常上传:
{ "code": 0, "data": { "upload": { //上传id,秒传时,不返回上传id "uploadId": "a0dacab1-7a04-4c5c-b751-46cea30ee974", //是否跳过上传,如果为true,说明秒传,不需要再调用上传文件接口,并且会返回文件id(fileId),如果为false,走正常上传流程 "skip": false, //文件id "fileId": 0 }, //服务当前使用的上传服务,local本地文件服务,minio minio服务 "fileServerType": "local" } }
- 秒传:
config: video: #视频水印,水印图片固定在位置:/resources/static/watermark.png watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #水印位置 TOP_LEFT 左上角,TOP_RIGHT 右上角,BOTTOM_LEFT 左下角,BOTTOM_RIGHT 右下角 location: TOP_LEFT #x、y为对应4个角的距离,不能为负数,负数可能会报错 offset-x: 100 offset-y: 1000
上传文件 / 分片
地址:/file/upload
请求方式:POST
header 参数:token
请求参数:
- file: 文件
- chunkNumber: 当前分片编号
- chunkTotal: 总分片数
- fileName: 文件名
- uploadId: 上传 id,初始化接口获取到的上传 id
- dirId:文件夹 id
响应数据:
- 上传分片
config: video: #视频水印,水印图片固定在位置:/resources/static/watermark.png watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #水印位置 TOP_LEFT 左上角,TOP_RIGHT 右上角,BOTTOM_LEFT 左下角,BOTTOM_RIGHT 右下角 location: TOP_LEFT #x、y为对应4个角的距离,不能为负数,负数可能会报错 offset-x: 100 offset-y: 1001
- 合并完成
config: video: #视频水印,水印图片固定在位置:/resources/static/watermark.png watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #水印位置 TOP_LEFT 左上角,TOP_RIGHT 右上角,BOTTOM_LEFT 左下角,BOTTOM_RIGHT 右下角 location: TOP_LEFT #x、y为对应4个角的距离,不能为负数,负数可能会报错 offset-x: 100 offset-y: 1002
创建文件夹
地址:/file/dirAdd
请求方式:POST
header 参数:token
请求参数:
- dirId:上级文件夹 id
- name:文件夹名称
响应数据:
config: video: #视频水印,水印图片固定在位置:/resources/static/watermark.png watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #水印位置 TOP_LEFT 左上角,TOP_RIGHT 右上角,BOTTOM_LEFT 左下角,BOTTOM_RIGHT 右下角 location: TOP_LEFT #x、y为对应4个角的距离,不能为负数,负数可能会报错 offset-x: 100 offset-y: 1003
文件 / 文件夹重命名
地址:/file/rename
请求方式:POST
header 参数:token
请求参数:
- id:文件 id
- name:文件 / 文件夹新名字
响应数据:
config: video: #视频水印,水印图片固定在位置:/resources/static/watermark.png watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #水印位置 TOP_LEFT 左上角,TOP_RIGHT 右上角,BOTTOM_LEFT 左下角,BOTTOM_RIGHT 右下角 location: TOP_LEFT #x、y为对应4个角的距离,不能为负数,负数可能会报错 offset-x: 100 offset-y: 1003
获取文件列表(分页)
地址:/file/list
请求方式:GET
header 参数:token
请求参数:
- dirId:所在文件夹 id
- pageNo:当前第几页,默认 1
- pageSize:每页数量,默认 10
响应数据:
config: video: #视频水印,水印图片固定在位置:/resources/static/watermark.png watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #水印位置 TOP_LEFT 左上角,TOP_RIGHT 右上角,BOTTOM_LEFT 左下角,BOTTOM_RIGHT 右下角 location: TOP_LEFT #x、y为对应4个角的距离,不能为负数,负数可能会报错 offset-x: 100 offset-y: 1005
参数说明:
- id:文件 ID
- name:文件名
- isDir:是否文件名,0 是文件,1 是文件夹
- dirId:所在文件夹 id
- fileSize:文件大小(B)
- suffix:文件后缀
- md5:文件 md5
- duration:视频为时长(秒),文档为转 pdf 后的页数,其他文件为 0
- transStatus:转码状态,0 正在转码,1 转码成功,2 部分转码成功,3 转码失败,4 不需要转码,5 不支持转码,6 取消转码
- createTime:上传时间,格式:yyyy-MM-dd HH🇲🇲ss
- fileUrl:原文件地址
- fileTransUrls:转码后的文件列表(根据开启的转码模板数量而定)
- thumUrl:文件封面地址
获取文件详情
地址:/file/detail/
请求方式:GET
header 参数:token
响应数据:
config: video: #视频水印,水印图片固定在位置:/resources/static/watermark.png watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #水印位置 TOP_LEFT 左上角,TOP_RIGHT 右上角,BOTTOM_LEFT 左下角,BOTTOM_RIGHT 右下角 location: TOP_LEFT #x、y为对应4个角的距离,不能为负数,负数可能会报错 offset-x: 100 offset-y: 1006
参数说明:
- id:文件 ID
- name:文件名
- isDir:是否文件夹,0 不是,1 是文件夹
- dirId:文件所在文件夹 id,最上层目录,为 0
- fileSize:文件大小(B)
- suffix:文件后缀
- md5:文件 md5
- duration:视频为时长(秒),文档为转 pdf 后的页数,其他文件为 0
- transStatus:转码状态,0 正在转码,1 转码成功,2 部分转码成功,3 转码失败,4 不需要转码,5 不支持转码,6 取消转码
- createTime:上传时间,格式:yyyy-MM-dd HH🇲🇲ss
- thumUrl:文件封面地址
- fileType:文件大的类型,1 为视频,2 为文档
- previewUrl:文件预览地址
- pdfWatermark:pdf 文件预览的水印内容,用 element-plus 实现页面水印
- progressList:转码进度列表,转码中和部分转码成功才会有该值,其他情况不会有该值,如果是视频,可能会多个进度,文档就一个进度,如果多个进度,当前转码进度需要取平均值
- id:转码进度 id
- fileTransId:转码后文件 id
- progress:转码进度
- format:转码格式
- transStatus:转码状态,0 正在转码,1 转码成功,2 部分转码成功,3 转码失败,4 不需要转码,5 不支持转码,6 取消转码
- startTime:开始转码时间(时间戳,毫秒)
- endTime:结束转码时间(时间戳,毫秒)
- previewUrl:转码后的文件预览地址
- fileSize:转码后的文件大小(B)
删除文件 / 文件夹
如果删除文件夹,文件夹下的文件和文件夹都会被删除
地址:/file/delete
请求方式:GET
header 参数:token
请求参数:
- id:文件 / 文件夹 id
响应数据:
config: video: #视频水印,水印图片固定在位置:/resources/static/watermark.png watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #水印位置 TOP_LEFT 左上角,TOP_RIGHT 右上角,BOTTOM_LEFT 左下角,BOTTOM_RIGHT 右下角 location: TOP_LEFT #x、y为对应4个角的距离,不能为负数,负数可能会报错 offset-x: 100 offset-y: 1003
获取转码模板列表
地址:/transTemplate/list
请求方式:GET
header 参数:token
请求参数:无
响应数据:
config: video: #视频水印,水印图片固定在位置:/resources/static/watermark.png watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #水印位置 TOP_LEFT 左上角,TOP_RIGHT 右上角,BOTTOM_LEFT 左下角,BOTTOM_RIGHT 右下角 location: TOP_LEFT #x、y为对应4个角的距离,不能为负数,负数可能会报错 offset-x: 100 offset-y: 1008
参数说明:
- id:模板 ID
- name:模板名称
- status:状态,是否开启转码,0 关闭,1 开启
- width:分辨率(宽)
- height:分辨率(高)
- format:转码输出格式
- frameRate:视频帧率
- codec:视频编解码器
- bitRate:视频比特率(码率)
- audioBitRate:音频比特率(码率)
- audioSampleRate:音频采样率
- audioChannel:音频声道
- audioCodec:音频编解码器
新增 / 更新转码模板
地址:/transTemplate/save
请求方式:POST
header 参数:token
请求参数:
- id:模板 ID,新增时不要传该参数,是否有 id 参数是区分新增、更新操作
- name:模板名称
- width:分辨率(宽),如:1920
- height:分辨率(高),如:1080
- format:转码输出格式,可选:mp4、m3u8
- frameRate:视频帧率,可选:15、20、25、30、40、50、60
- codec:视频编解码器,可选:H264
- bitRate:视频比特率(码率),可选:500、800、1200、2000、3000、5000、8000
- audioBitRate:音频比特率(码率),可选:16、32、48、64、80、96、112、128、160、192、224、256、320、384、448、512
- audioSampleRate:音频采样率,可选:8000、11025、12000、16000、22050、24000、32000、44100、48000、64000、88200、96000
- audioChannel:音频声道,可选:1、2
- audioCodec:音频编解码器,可选:aac
- waterMarkId:水印模板 id
响应数据:
config: video: #视频水印,水印图片固定在位置:/resources/static/watermark.png watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #水印位置 TOP_LEFT 左上角,TOP_RIGHT 右上角,BOTTOM_LEFT 左下角,BOTTOM_RIGHT 右下角 location: TOP_LEFT #x、y为对应4个角的距离,不能为负数,负数可能会报错 offset-x: 100 offset-y: 1003
关闭 / 开启转码模板
地址:/transTemplate/updateStatus
请求方式:POST
header 参数:token
请求参数:
- id:模板 ID,新增时不要传该参数,是否有 id 参数是区分新增、更新操作
- status:状态,是否开启转码,0 关闭,1 开启
响应数据:
- 成功
config: video: #视频水印,水印图片固定在位置:/resources/static/watermark.png watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #水印位置 TOP_LEFT 左上角,TOP_RIGHT 右上角,BOTTOM_LEFT 左下角,BOTTOM_RIGHT 右下角 location: TOP_LEFT #x、y为对应4个角的距离,不能为负数,负数可能会报错 offset-x: 100 offset-y: 1003
- 失败
config: document: watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #开启水印加上当前时间 time-enable: true #时间格式,yyyy 年、MM 月、dd 日、HH 小时、mm 分钟、ss 秒 time-format: yyyy-MM-dd HH🇲🇲ss #水印内容,如果开启时间,会在内容后面加上时间 content: 凌夕文件管理系统 #文字大小 font-size: 12 #行距 row-space: 100 #列距 col-space: 150 #透明度 alpha: 0.11
删除转码模板
地址:/transTemplate/delete
请求方式:POST
header 参数:token
请求参数:
- id:模板 ID
响应数据:
- 成功
config: video: #视频水印,水印图片固定在位置:/resources/static/watermark.png watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #水印位置 TOP_LEFT 左上角,TOP_RIGHT 右上角,BOTTOM_LEFT 左下角,BOTTOM_RIGHT 右下角 location: TOP_LEFT #x、y为对应4个角的距离,不能为负数,负数可能会报错 offset-x: 100 offset-y: 1003
文件上传成功后缩略图列表
文件上传后,如果马上调用该接口,可能返回的列表是空的,因为生成缩略图需要时间,可能需要几秒钟,所以在显示缩略图列表选择页面,如果获取到的数据是空的,最好重试几次,直到获取到数据、或者超时给用户提示。
地址:/file/thumList
请求方式:GET
header 参数:token
请求参数:
- md5:文件 md5
响应数据:
- 成功
config: document: watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #开启水印加上当前时间 time-enable: true #时间格式,yyyy 年、MM 月、dd 日、HH 小时、mm 分钟、ss 秒 time-format: yyyy-MM-dd HH🇲🇲ss #水印内容,如果开启时间,会在内容后面加上时间 content: 凌夕文件管理系统 #文字大小 font-size: 12 #行距 row-space: 100 #列距 col-space: 150 #透明度 alpha: 0.13
更新文件缩略图
地址:/file/updateFileThum
请求方式:POST
header 参数:token
请求参数:
- fileId:文件 id
- thumId:缩略图 id
响应数据:
config: video: #视频水印,水印图片固定在位置:/resources/static/watermark.png watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #水印位置 TOP_LEFT 左上角,TOP_RIGHT 右上角,BOTTOM_LEFT 左下角,BOTTOM_RIGHT 右下角 location: TOP_LEFT #x、y为对应4个角的距离,不能为负数,负数可能会报错 offset-x: 100 offset-y: 1003
手动转码
地址:/file/manualTranscode
请求方式:POST
header 参数:token
请求参数:
- fileId:文件 id
响应数据:
- 成功
config: video: #视频水印,水印图片固定在位置:/resources/static/watermark.png watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #水印位置 TOP_LEFT 左上角,TOP_RIGHT 右上角,BOTTOM_LEFT 左下角,BOTTOM_RIGHT 右下角 location: TOP_LEFT #x、y为对应4个角的距离,不能为负数,负数可能会报错 offset-x: 100 offset-y: 1003
- 失败
config: document: watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #开启水印加上当前时间 time-enable: true #时间格式,yyyy 年、MM 月、dd 日、HH 小时、mm 分钟、ss 秒 time-format: yyyy-MM-dd HH🇲🇲ss #水印内容,如果开启时间,会在内容后面加上时间 content: 凌夕文件管理系统 #文字大小 font-size: 12 #行距 row-space: 100 #列距 col-space: 150 #透明度 alpha: 0.16
转码列表
地址:/transProgress/list
请求方式:GET
header 参数:token
请求参数:
- pageNo:当前第几页,默认 1
- pageSize:每页数量,默认 10
响应数据:
config: document: watermark: #开启/关闭水印,true 开启,false 关闭 enable: true #开启水印加上当前时间 time-enable: true #时间格式,yyyy 年、MM 月、dd 日、HH 小时、mm 分钟、ss 秒 time-format: yyyy-MM-dd HH🇲🇲ss #水印内容,如果开启时间,会在内容后面加上时间 content: 凌夕文件管理系统 #文字大小 font-size: 12 #行距 row-space: 100 #列距 col-space: 150 #透明度 alpha: 0.17
参数说明:
- id:转码 ID
- fileId:文件 id
- fileName:文件名
- fileTransId:转码后的文件 id
- progress:转码进度,0-100
- format:转码输出格式
- transStatus:转码状态,0 正在转码,1 转码成功,3 转码失败
- startTime:开始转码时间(时间戳)
- endTime:完成转码时间(时间戳),进行中为 0,如要计算进行中转码时长,使用当前时间进行计算
- createTime:创建转码时间,创建转码时,不一定马上开始转码了,开始转码时间要看 startTime
转码配置
模板名称
设置模板名称 name
视频
分辨率
分辨率可以设置宽和高,宽和高至少设置 1 个,另一个可以设置,也可以设置为 0,如果设置为 0,自动根据原视频宽高计算。
分辨率设置的是 PAR(图像纵横比),默认未指定 sar 或者 dar 时,dar 不会变,sar 会被设置为跟 par 比例一样,所以转码的视频比例也不会变,宽度根据高度自动计算,即指定的宽度无效。
- PAR 图像纵横比:PAR=(每行像素数)/(每列像素数)= 分辨率
- SAR 样点纵横比:SAR=(像素的宽)/(像素的高)。像素不一定都是正方形的。
- DAR 显示纵横比:一般说的 16:9 和 4:3 指的是 DAR。DAR=(每行像素数像素的宽)/(每列像素数像素的高),即 DAR=PAR*SAR
480p = 标清 = 640x480
720p = 高清 = 1280×720p
1080p = 蓝光 = 1920x1080p
2K=1440P=2560x1440
4K=2160P=3840x2160
8K=4320P= 7680×4320
高度默认:1080
宽度默认:0(自动计算)
转码格式
- 选项:mp4、m3u8
- 默认:mp4
视频帧率
视频帧率是用于测量显示帧数的量度。所谓的测量单位为每秒显示帧数 (Frames per Second, 简:FPS) 或 "赫兹"(Hz)
- 选项:15、20、25、30、40、50、60
- 默认:30
视频比特率(码率 kbps)
通常也叫码率是指单位时间内传送的比特 (bit) 数,单位为 bps (bit per second)
- 选项:500、800、1200、2000、3000、5000、8000
- 默认:1200
编解码器
H264 通常也被称之为 H264/AVC(或者 H.264/MPEG-4 AVC 或 MPEG-4/H.264 AVC),H264 有高效的视频压缩算法来压缩视频的占用空间,提高存储和传输的效率,在获得有效的压缩效果的同时,使得压缩过程引起的失真最小。H264 是目前较为主流的编码标准。
- 选项:h264
- 默认:h264
封面截图
每个 md5 的视频文件,会截取 10 张封面用来选择,截图规则是分别取第 1、3、5、7 秒、视频时长 / 2 秒、视频时长 / 2 + 2 秒、倒数第 7、5、3、1 秒的画面。
截图格式为 jpg 图片。
音频
编解码器
目前音频基本都用 AAC 编码,因为这个编码目前来说压缩率高,而且音质损失极底。
- 选项:aac
- 默认:aac
声道
单声道:是指一个声音的通道,把来自不同方位的音频信号混合后统一由录音器材把它记录下来,再由一个扬声器进行重放(没有左右声道之分)。早期的收音机都是单声道的,耳机就一个耳朵。
双声道:是指有两个声音的通道,双声道是在空间放置两个互成一定角度的扬声器,每个扬声器单独由一个声道提供信号。双声道是二路输入,二路输出,但不一定是立体声。(左右声道都只有一路的信号输入),也称为双声道混和声。
- 选项:1、2
- 默认:2
音频码率(音频比特率)
一般普通音质码率大致在 80164kbps 左右,HQ 高音质 192320kbps 左右,SQ 无损 800~1500kbps 左右,CD 及其它无压缩音质数值过万甚至更高。
普通音质转成无损音质,并不是成了无损音乐,反而体积增大了,这就是所谓假无损。
- 选项:16、32、48、64、80、96、112、128、160、192、224、256、320、384、448、512
- 默认:128
音频采样率
音频采样率是指录音设备在一秒钟内对声音信号的采样次数,它决定了数字音频信号的分辨率。采样率的单位通常是赫兹(Hz)。采样率越高,理论上能够捕捉到的声音细节越多,从而产生的声音质量也更高。
- 选项:8000、11025、12000、16000、22050、24000、32000、44100、48000、64000、88200、96000
- 默认:48000
- 部分说明:
8000 Hz:电话所用采样率,对于人的说话已经足够
11025 Hz:电话所用采样率
22050 Hz:无线电广播所用采样率
32000 Hz:miniDV 数码视频 camcoRDer、DAT (LP mode) 所用采样率
44100 Hz:音频 CD, 也常用于 MPEG-1 音频(VCD, SVCD, MP3)所用采样率
48000 Hz:miniDV、数字电视、DVD、DAT、电影和专业音频所用的数字声音所用采样率
96000 Hz:DVD-Audio、一些 LPCM DVD 音轨、BD-ROM(蓝光盘)音轨、和 HD-DVD (高清晰度 DVD)音轨所用所用采样率
还没有评论,来说两句吧...