使用 Nginx 服务器配置 flv、mp4,可以直接浏览器播放
程序员文章站
2022-03-21 07:53:30
...
由于需求,需要提供浏览器播放 mp4 和 flv 视频功能。首先浏览器直接支持 flv 和 mp4 格式。只需要在对应的 WEB 服务上完成配置即可。
注意,我的需求是通过浏览器直接播放 MP4,而不是服务器提供 RTMP 功能,使用 RTMP 又是另外一种配置。
服务器环境
Ubuntu 18.04 + nginx 1.14.0。完整的环境如下。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.5 LTS
Release: 18.04
Codename: bionic
$ nginx -v
nginx version: nginx/1.14.0 (Ubuntu)
Nginx
安装 Nginx 服务
如果已经安装 Nginx 可以跳过本步骤。如果没有,请使用以下命令:
sudo apt install nginx
添加 Nginx 组件
sudo apt install nginx-extras
配置 Nginx
$ sudo vi /etc/nginx/sites-enabled/default
在 server 配置加增加如下:
location ~ \.mp4 {
root /data/movie;
mp4;
}
location ~ \.flv {
root /data/movie;
flv;
}
注意:root 表示对应的跟目录位置。
然后保存配置。
验证配置
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
这样测试说明 nginx 配置是正确的。
重启启动 nginx 服务
$ sudo service nginx restart
验证
下面就是见证奇迹。我在 /data/movie 目录下有如下文件。
$ ls -al /data/movie/
total 85512
drwxr-xr-x 2 www-data www-data 4096 Mar 6 2020 .
drwxr-xr-x 7 root root 4096 Oct 30 12:47 ..
-rw-rw-r-- 1 ubuntu ubuntu 56532559 Mar 6 2020 Python3.mode1.mp4
-rw-rw-r-- 1 ubuntu ubuntu 14278520 Mar 6 2020 Python3.mode2.mp4
-rw-rw-r-- 1 ubuntu ubuntu 16740845 Mar 6 2020 Python3.mode3.mp4
打开浏览器,输入对应的 IP 地址,加上需要播放的 mp4 文件。如下图:
这样就可以正确播放出 MP4 文件了。
错误可能
浏览器有下载插件或者软件
最大的可能是你的浏览器上增加了自动下载功能。比如我用的 Firefox 有 IDM 插件,直接打开上面的 MP4 文件,就给 IDM 拦截了,开始自动下载功能。如下图。
解决方法:换浏览器,或者关闭 IDM 插件。
云主机没有打开对应的端口
这个问题在浏览器的显示应该是找不到网页。请确认云主机是否打开配置端口。
验证平台
本方法已经在:阿里云主机、腾讯云主机和 Win10+WSL2 机器上测试过。