2017-02-22 4 views
1

Я пытаюсь передать mpeg-видео с помощью dash.js и wowza. Я сконфигурировал VHost.xml для потока ssl через порт 443 и дал ему мой keystorepath и keystorepassword. Я использовал эту ссылку https://maximilian-boehm.com/hp2121/Create-a-Java-Keystore-JKS-from-Let-s-Encrypt-Certificates.htm для создания моих jks из сертификатов letencrypt. Я создал jks из моего fullchain.pem и privKey.pem. Я также включил CORS в crossdomain.xml. Я вижу, что потоковая передача SSL и CORS включены в enginemanager ui. Вот как я создаю поток, используя Wowza REST API на порт 8087.Проблемы с wowza, dash, ssl и cors

HTTP POST called : http://ip-address:8087/v2/servers/_defaultServer_/vhosts/_defaultVHost_/applications/App/streamfiles/96728ede-bda0-4fe7-86e1-724f5ea6237b 
Post Response: {"success":true,"message":"","data":null} 
HTTP PUT called : http://ip-address:8087/v2/servers/_defaultServer_/vhosts/_defaultVHost_/streamfiles/96728ede-bda0-4fe7-86e1-724f5ea6237b/actions/connect?connectAppName=App&appInstance=_definst_&mediaCasterType=rtp&vhostName=_defaultVHost_&streamfileName=96728ede-bda0-4fe7-86e1-724f5ea6237b 
PUT Response: {"success":true,"message":"Publish stream successfully started [App/_definst_]: mp4:96728ede-bda0-4fe7-86e1-724f5ea6237b.stream","data":null} 

Я пробовал эти POST и PUT запросов с именем хоста: 8087, а не IP-адрес: 8087 и получить ту же ошибку. Затем из моего js я вижу эту ошибку в консоли в chrome.

GET https://hostname/App/96728ede-bda0-4fe7-86e1-724f5ea6237b.stream/manifest.mpd 404 (Not Found) 
c @ dash.all.min.js:6 
(anonymous) @ dash.all.min.js:6 
index#/security:1 XMLHttpRequest cannot load https://hostname/App/96728ede-bda0-4fe7-86e1-724f5ea6237b.stream/manifest.mpd. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8090' is therefore not allowed access. The response had HTTP status code 404. 

Может ли кто-нибудь увидеть, что я делаю неправильно или перед этим столкнулся?

ответ

1

https://hostname/App/96728ede-bda0-4fe7-86e1-724f5ea6237b.stream/manifest.mpd - 404, в зависимости от этого сообщение об ошибке.

Так что это основная причина: сервер не находит запрашиваемый ресурс по этому URL-адресу.

Я думаю, что упоминание о Access-Control-Allow-Origin в сообщении объясняется тем, что сервер не отправляет ответный ответ Access-Control-Allow-Origin в ответ на ошибку, вероятно, потому, что он настроен только на отправку его для не-ошибок.

Так что браузер сообщая клиенту код JavaScript, «Я не могу дать вам тело ответа ответа 404 ошибок, потому что сервер не отправил его с Access-Control-Allow-Origin».

Но причина, по которой этот ресурс составляет 404, не вызвана какой-либо проблемой конфигурации CORS. Как вы можете подтвердить, что на открытии URL непосредственно в браузере (а не от JavaScript), или с помощью какой-то инструмент, не браузер, чтобы запросить ее, например, с помощью curl:

curl https://hostname/App/96728ede-bda0-4fe7-86e1-724f5ea6237b.stream/manifest.mpd 

Или подражать то, как браузер отправил запрос, включите заголовок Origin:

curl -H "Origin: http://localhost:8090" \ 
    https://hostname/App/96728ede-bda0-4fe7-86e1-724f5ea6237b.stream/manifest.mpd 
Смежные вопросы