欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用 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 文件。如下图:

使用 Nginx 服务器配置 flv、mp4,可以直接浏览器播放

这样就可以正确播放出 MP4 文件了。

错误可能

浏览器有下载插件或者软件

最大的可能是你的浏览器上增加了自动下载功能。比如我用的 Firefox 有 IDM 插件,直接打开上面的 MP4 文件,就给 IDM 拦截了,开始自动下载功能。如下图。

使用 Nginx 服务器配置 flv、mp4,可以直接浏览器播放

解决方法:换浏览器,或者关闭 IDM 插件。

云主机没有打开对应的端口

这个问题在浏览器的显示应该是找不到网页。请确认云主机是否打开配置端口。

验证平台

本方法已经在:阿里云主机、腾讯云主机和 Win10+WSL2 机器上测试过。