2017-02-22 11 views
1

dash.js 및 wowza를 사용하여 MPEG 비디오를 스트리밍하려고합니다. 포트 443을 통해 ssl을 스트리밍하도록 VHost.xml을 구성하고 내 keystorepath와 keystorepassword를 제공했습니다. 이 링크 https://maximilian-boehm.com/hp2121/Create-a-Java-Keystore-JKS-from-Let-s-Encrypt-Certificates.htm을 사용하여 letsencrypt 인증서에서 jks를 만들었습니다. 내 fullchain.pem 및 privKey.pem에서 jks를 만들었습니다. 또한 crossdomain.xml에서 CORS를 사용하도록 설정했습니다. 나는 SSL 스트리밍과 CORS가 enginemanager UI에서도 가능하다는 것을 알 수있다. 8087을 대신 IP 주소보다 : 8087과 같은 오류가 나는이 POST를 시도했습니다 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} 

포트에 wowza의 나머지 API를 사용하여 스트림을 생성하고 호스트 이름으로 요청을 PUT 방법은 다음이다. 그런 다음 내 js에서 크롬의 콘솔에이 오류가 표시됩니다.

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 응답 헤더를 보내지 않고 있다는 것입니다. 아마도 비 오류에 대해서만 보내도록 구성 되었기 때문일 것입니다.

는 그래서, 는 "서버가 Access-Control-Allow-Origin로 보내하지 않았기 때문에 나는 당신에게 404 오류 응답의 응답 본문을 줄 수 없다"클라이언트 자바 스크립트 코드를 말하는 브라우저입니다.

그러나 리소스가 404 인 이유는 CORS 구성 문제가 아니기 때문입니다. 당신이 확인할 수있는 방법은, 또는-을 위해 그것을 예를 들어, curl을 사용하여 요청하는 일부 브라우저 이외의 도구를 사용하여 브라우저 (대신 자바 스크립트에서의)에 직접 URL을 열어입니다 :

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