项目部署完了,但我发现视频无法播放,因为特殊要求,项目将视频切割成了ts文件,并将m3u8文件放到了ts视频文件夹内(即每个视频的m3u8引导文件分散在不同的文件夹内),当我去请求服务器播放视频时,发现视频的M3u8文件无法找到,请问该如何处理?
chatgpt:不喜勿喷
http {
server {
listen 80;
server_name example.com;
location /videos/ {
# 设置 M3U8 文件的 MIME 类型
types { application/vnd.apple.mpegurl m3u8; }
# 处理 M3U8 文件的请求
if ($request_filename ~* ^.*\.m3u8$) {
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *;
root /var/www/example.com;
expires -1;
}
# 处理 TS 文件的请求
if ($request_filename ~* ^.*\.ts$) {
root /var/www/example.com;
add_header Cache-Control "max-age=86400";
add_header Access-Control-Allow-Origin *;
}
}
}
}
在此示例中,Nginx 配置文件中的 location /videos/ 块用于处理视频文件的请求,其中 root 指令指定了视频文件所在的根目录。
types 指令用于设置 M3U8 文件的 MIME 类型为 application/vnd.apple.mpegurl。
然后,使用正则表达式 $request_filename ~* ^.*.m3u8$ 来匹配 M3U8 文件的请求,并添加必要的响应头信息,如 Cache-Control 和 Access-Control-Allow-Origin。
对于 TS 文件的请求,使用正则表达式 $request_filename ~* ^.*.ts$ 来匹配,并添加必要的响应头信息。
请注意,这只是一个示例配置,需要根据您的具体情况进行修改。