# 功能介绍

这里是详细介绍 express-ffmpeg 云转码的各种功能。

# 2018 年 9 月 4 日大更新

这次完全更改了项目了定位,云转码不再是简单的云转码系统,而是 CMS 系统+云转码系统一体化,自带整个完备的并且对移动端友好的,而且非常利于 SEO 优化的自适应 CMS 系统,根据后台的分类系统和门户 CMS 管理系统,直接在首页达成完备的在线视频播放系统,适用于在线教育、企业内部培训视频、在线视频自媒体门户等多种运用方向。这次更新完善了视频的分类系统,完善了视频的搜索功能。

# 专用 app

利用 react-native 编码的跨平台的 app 源码,可以构建成安卓和苹果运行的原生 app,详细演示请参考首页 APP 演示视频。

# 专用 cms

利用云转码 API 制作的响应式无刷新技术,利用最新前端技术设计制作的优化版 cms,详细演示请前往 https://cms.moejj.com

# 批量切片头

批量选择电影,设置时间轴,一键就可以切片头。

# 批量设置分类

后台可以选择电影,批量设置分类。

# 预览图功能

鼠标移动到进度条,会显示对应时间轴的预览图,非常炫酷。

# ts 加密技术

后台设置项可以设置开启 TS 加密,设置之后,切片之后的所有 TS 都会进行加密,前台播放的时候自动解密,下载 ts 或者 m3u8 则根本没有办法播放,增强安全性,防止篡改文件。

# 真正意义上的权限系统

增加会员系统,可以开启 CMS 的时候同时开启会员系统,也可以独立开启会员系统。可扩展的会员系统,配合后台卡劵生成系统,可以做到生成多少天的会员卡劵,会员在前台使用就会增加多少天的会员时间。 唯一的路由层面的权限控制,根据权限的不同,相同的 m3u8 文件将会动态返回完全不同的内容。

# 图表统计

后台增加图表统计功能,根据条件筛选,最新,热门,冷门,时间排序等,一键获取视频的播放情况。

# p2p 功能

网页版 P2P 功能,提供 DPLAYER 播放 m3u8 时候的 p2p 功能,待测试。

# 播放器图片水印和文字广告

后台可自定义播放器配置,配置图片水印和文字广告,还有广告链接,可以分别设置位置,文字字体、粗体、斜体、下划线、字体颜色、字体大小等。

# 上传功能

上传功能分为选择视频,开始批量上传和停止全部上传。上传功能采用 dropzonejs 插件,利用其切片上传功能,上传时会进行切片上传,全部切片上传完成之后会在后端进行合成。但是不建议采用网页上传大文件,推荐使用 scp 命令行上传视频文件。

# 转码功能

转码功能用于将上传的视频利用特定的视频编码及音频编码进行转码,本云转码利用 libx264 视频编码及 aac 音频编码最大限度的将视频进行压缩转码,并且使用动态码率,在一个浮动的码率区间进行转码,保证视频清晰度最小限度的损耗。 一共提供了三个清晰度选择——480P,720P 及 1080P,并且默认了损耗最小的对应码率区间,保证转码之后的视频有足够的表现力。

# 切片功能

视频转码完成之后立马会自动进行切片工作,会将视频进行每 10 秒左右浮动的一个 ts 文件进行切片,并且生成 m3u8 文件,切片完成之后会删除掉转码完成的视频和原视频,仅保留切片文件和 m3u8 文件。

# 截图功能

截图功能默认会生成 4 张视频截图在切片文件所在文件夹,默认采用视频原分辨率,生成 0-4.jpg。

# 秒切功能

后台可以设置是否开启秒切功能,如果开启秒切功能,那么如果上传到云转码的视频分辨率少于设置选择的分辨率,并且其编码格式为 h264,则系统会判断其本身已经进行过压缩转码,系统会直接进行切片工作。如果没有开启秒切功能,则系统始终会进行转码,但是使用的分辨率是根据视频的分辨率是否大于所设置的分辨率,如果大于则会使用设置的分辨率进行转码切片,如果不大于则会直接使用视频本身的分辨率进行转码切片。

# 扫描入库功能

利用 ftp、scp 或者其他传输工具,将视频文件批量传输到安装目录下的 movies 文件夹中,可以在后台点击扫描入库就可以一键将视频扫入数据库,后台可以一键进行转码切片操作。

# 上传字幕功能

可以利用 ftp、scp 或者其他服务器传输工具,可以将和上传的视频文件同名的 srt 文件上传至 movies 文件夹中,其作用在下面烧录字幕功能中会讲到。

# 烧录字幕功能

当进行转码操作时,如果判断 movies 文件夹中有存在同名的视频和 srt 文件,则无论是否选择秒切功能都会进行转码操作,会将字幕烧录进同名视频中。

TIP

注意 srt 文件需调节好时间轴,并且必须是 utf-8 编码格式,如果烧录出来是乱码,那么则是系统中没有中文字体文件。

# 上传 vtt 字幕

视频转码完成之后,可以分别是每个视频上传 vtt 字幕,vtt 字幕会在前端播放视频的时候自动加载,做到字幕和视频文件分开,这个功能和烧录字幕功能不同之处在于:烧录功能是将字幕烧录进视频文件,而 vtt 字幕功能是播放器加载 vtt 字幕,相当于外嵌字幕。

# 分享功能

会将切片完成的视频生成一个分享链接,此链接可以直接在浏览器中播放视频或者其他网页利用 iframe 调用。

# 引用网址设置

如果设置了引用网址,则分享链接无法直接在浏览器中进行播放,必须指定的引用网址利用 iframe 调用才会正常播放,起到防盗链功能。

# 防盗链 token

后台设置防盗链 KEY,则系统会每隔一段时间就会生成一个加密之后的 token,系统会自动捕获每一次 m3u8 文件的访问,m3u8 必须带上 token 才能正常的显示。

# 水印功能

后台设置上传水印图片,推荐 120*40,png 格式,每次转码的时候,都会烧录进视频,默认显示在视频的右上角位置。如果不需要显示水印,则上传一个空的 png 格式即可。

# ts 域名分发功能

如果后台设置开启域名分发功能,设置好分发的域名,则每次访问 m3u8 中的 ts 会根据后台设置的域名循环添加域名前缀,这个功能主要是方便多服务器同步内容,负载均衡之用。

# 在线播放磁力功能

采用 webtorrent 协议,可以在线播放磁力链接,仅供尝鲜,作用不大,网址 yourdomain/playmagnet, 测试用磁力链接:

magnet:?xt=urn:btih:08ada5a7a6183aae1e09d831df6748d566095a10&dn=Sintel&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel.torrent

如果是其他地方复制的磁力链接,需要在最后添加上:

&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com