1.安装nginx
请看这篇:安装nginx
2.安装ffmpeg
视频切片需要使用ffmpeg,为了方便,直接用docker部署ffmpeg服务。
2.1 docker-compose.yml文件
version: '3.9'
services:
ffmpeg:
image: jrottenberg/ffmpeg
entrypoint: bash
volumes:
- '/opt/video:/tmp/workdir'
ports:
- '8765:8080'
container_name: ffmpeg
tty: true
stdin_open: true
- /opt/video为处理视频的文件夹(宿主机目录)
2.2 启动容器
docker compose up -d
3.切片
3.1 将原视频放入/opt/video
文件夹
如aaa.mov
3.2 进入容器
docker exec -it ffmpeg bash
3.3 执行切片命令
ffmpeg \
-i aaa.mov \
-hls_time 10 \
-hls_list_size 0 \
-hls_segment_filename ./hls/aaa_%05d.ts \
./hls/aaa.m3u8
- aaa.mov为原视频,切片的成品为ts文件盒m3u8文件。ts是切片视频文件,m3u8为索引文件。
- hls_time是每个切片的时间,这里为10秒。
如果目录没有在/opt/video目录下,需要将视频拷到该目录下,或者复制到容器里,复制到容器可以用以下命令。
docker cp [原视频路径] [容器id]:/tmp/workdir
4.配置nginx.conf
/usr/local/nginx/conf
目录下。
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 8098;
root /opt/video;
location /video {
root /opt/video; # 视频文件所在目录
add_header Cache-Control no-cache;
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
}
}
}
5.启动nginx
/usr/local/nginx/sbin
目录下。
./nginx
如果已经启动,则刷新配置。
./nginx -s reload
6.播放视频
访问以下链接播放视频。
http://ip:8098/aaa.m3u8
电脑端直接使用浏览器可能无法直接播放,需要安装插件,手机端浏览器可以直接播放。或者电脑端使用播放器播放。