回答
收藏
分享
举报
nginx 搭建点播服务hls流有声音没画面什么问题?
提问于2022-12-02 19:33

浏览 744

系统 centos 7.6

nginx 1.20.2

nginx-vod-module 1.28


服务设置

server{
listen 80;
server_name 192.168.2.110;
location /vod {
vod hls; # 协议使用hls模式
vod_mode local;


vod_align_segments_to_key_frames on; # 每个切片以关键帧开头
vod_manifest_segment_durations_mode accurate; # 精确显示每个切片的长度

# 解决浏览器跨域问题
add_header Access-Control-Allow-Headers '*';
add_header Access-Control-Expose-Headers 'Server,range,Content-Length,Content-Range';
add_header Access-Control-Allow-Methods 'GET, HEAD, OPTIONS';
add_header Access-Control-Allow-Origin '*';

alias //media; # 视频文件路径
}

}


通过url  http://192.168.2.110/vod/a.mp4/index.m3u8可以正常获取索引文件,

播放器可以播放声音,但是没有画面

尝试安装ffmpeg,libx264 依然没有解决,请问有大佬解惑吗

已修改于2023-03-17 02:23



写下您的回答
发表回答
全部回答(0)

按点赞数排序

按时间排序

提问者
Find Beautiful
这家伙很懒还未留下介绍~
0
文章
1
问答
0
粉丝
相关问答

按照官方的 rtmp 规范文档第 30 页的内容,"rtmp://example.com/vod/1/test.mp4" 这种 url 是错的,因为规范文档里写明了 tcUrl 的格式是 "protocol://servername:port/appName/appInstance",即 url 中除了协议名,主机名和端口外,只能有两层。而你的 url 是3层,所以无法访问。

解决办法有 3 种:

1. 可以将 application vod 修改为 application x (x 是数字),但是这中配置不太灵活,因为服务器无法事先知道你有多少个摄像头。

2. 摄像头生成的媒体文件带上编号,例如:1 号摄像头生成的媒体文件是 1_test.mp4,2 号摄像头生成的媒体文件是 2_test.mp4,以此类推。

3. 你这使用的是 nginx-rtmp-module 及其各种变种吧,源代码都开放了,如果有能力,可以自己修改源代码以达到要求。

点赞 0
浏览 915

试试rtmp模块?https://github.com/arut/nginx-rtmp-module

点赞 0
浏览 626