我正在使用Nginx將實時流發佈到網頁 - 它發佈HLS並退回到Flash。在桌面/筆記本電腦上運行良好 - Android是一個混合包。一些觀衆(包括我)可以看到和聽到溪流 - 其他人只是看到一個黑色的屏幕,或者「旋轉的輪子」。Nginx - Video.js - 實時流在某些Android設備上可見
Nginx的錯誤日誌:
2017/02/25 16:28:16 [error] 32054#0: *57 open() "/tmp/hls/test.m3u8" failed (2: No such file or directory), client: (my ip address), server: localhost, request: "GET /hls/test.m3u8 HTTP/1.1", host: "mydomain.com:8080"
HLS片段被生成到服務器上HLS文件夾。 Crossdomain.xml文件位於所有相關位置。 CORS已啓用(我認爲)。
CentOS7 VPS服務器Apache 2.4.25 Nginx 1.9.15(由gcc 4.8.5 20150623構建,使用OpenSSL 1.0.1e-fips構建2013年2月11日),安裝了Nginx RTMP模塊,用於查看流的Video.js (我嘗試安裝HLSJS插件,但它沒有幫助)。從現場
相關的HTML代碼:
<head>
<script src="video.js"></script>
<script src="videojs-hlsjs.js"></script>
<script>
videojs.options.flash.swf = "video-js.swf";
</script>
</head>
<body>
<div class="jsvideo" align="center">
<video id="test-stream" class="video-js vjs-default-skin vjs-big-play-centered" width="auto" height="auto" controls preload="auto" poster="images/Funkazoid-Radio-1.jpg" data-setup='{"fluid":true,"aspectRatio":"16:9","controls": true, "autoplay": false, "preload": "auto", "techOrder": ["html5","flash"]}' >
<source src="http://funkazoidradio.com:8080/hls/test.m3u8" type='application/x-mpegURL' />
<source src="rtmp://funkazoidradio.com:1935/live/test" type='rtmp/mp4' />
<p class="vjs-no-js">To view this video please enable JavaScript, and consider upgrading to a web browser that <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a></p>
</video>
<script src="video.js"></script>
<script src="videojs-hlsjs.js"></script>
<script>
// fire up the plugin
videojs('video');
</script>
</body>
Nginx的配置文件:
#user root;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location/{
root html;
index index.html index.htm;
}
location /hls {
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root /tmp;
add_header Cache-Control no-cache;
}
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}
location /stat.xsl {
root html;
}
}
rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
hls on;
hls_path /tmp/hls;
}
}
}
問題:
這可能是一個問題CORS?我有其他人爲我編譯Nginx和模塊(noob)。我向他提到我沒有在配置文件中看到CORS,但他說他在Nginx的根目錄中啓用了CORS,他說如果CORS未啓用,該流不適用於任何人。無論如何,我嘗試將CORS放入配置文件中,但它沒有改變。我嘗試使用代碼來自2個地方: https://enable-cors.org/server_nginx.html https://gist.github.com/Stanback/7145487
我是不是在尋找一個設備/ OS的具體問題?今天我參加了一場有6名觀衆的測試。 3可以查看流,3不能。其中2人不能在LG手機上運行Android 6,所以我想也許這是針對Android 6或LG的 - 但是我有另外一個使用Android 6的人,他們說手機上的數據流運行良好。
在瀏覽器或移動操作系統兼容性方面,它是Video.js的限制嗎?
此外,我強迫HTTPS通過htaccess – djkfunk
真的嗎?沒有一個答案? – djkfunk