2016-06-12 4 views
0

J'ai nginx avec rtmp plagin, j'ai une page de test avec le lecteur dash.js. Je dois diffuser mpeg-dash. Je flux avec ffmpeg, nginx traiter le flux, lecteur de tableau de bord essayer de jouer le flux, mais dash.js démarrer la boucle et demande tous les 5 secondes fichier .mpd et ne montrent rien.Dash.js ne joue pas mpeg-dash à partir du module nginx rtmp

Je suis utiliser le lecteur VLC pour le test, son travail parfait, cela signifie problème dans dash.js

<!doctype html> 
 
<html> 
 
    <head> 
 
     <title>Dash.js Rocks</title> 
 
     <style> 
 
      video { 
 
       width: 640px; 
 
       height: 360px; 
 
      } 
 
     </style> 
 
    </head> 
 
    <body> 
 
     <div> 
 
      <video id="videoPlayer" controls></video> 
 
     </div> 
 
     <script src="dash.all.min.js"></script> 
 
     <script> 
 
      (function(){ 
 
       var url = "http://localhost:8080/dash/test.mpd"; 
 
       var player = dashjs.MediaPlayer().create(); 
 
       player.initialize(document.querySelector("#videoPlayer"), url, true); 
 
      })(); 
 
     </script> 
 
    </body> 
 
</html>

Ceci est les fichiers du répertoire flux de bord:

-rw-r--r-- 1 nginx nginx  120354 Jun 12 14:00 test-0.m4a 
-rw-r--r-- 1 nginx nginx  526439 Jun 12 14:00 test-0.m4v 
-rw-r--r-- 1 nginx nginx   599 Jun 12 14:00 test-init.m4a 
-rw-r--r-- 1 nginx nginx   662 Jun 12 14:00 test-init.m4v 
-rw-r--r-- 1 nginx nginx  292795 Jun 12 14:00 test-raw.m4a 
-rw-r--r-- 1 nginx nginx  284084 Jun 12 14:00 test-raw.m4v 
-rw-r--r-- 1 nginx nginx   2063 Jun 12 14:00 test.mpd 

Ceci est test.mpd:

<?xml version="3.0"?> 
<MPD 
    type="dynamic" 
    xmlns="urn:mpeg:dash:schema:mpd:2011" 
    availabilityStartTime="2016-06-12T13:59:55+00:00" 
    availabilityEndTime="2016-06-12T14:00:31+00:00" 
    minimumUpdatePeriod="PT5S" 
    minBufferTime="PT5S" 
    timeShiftBufferDepth="PT0H0M0.00S" 
    suggestedPresentationDelay="PT10S" 
    profiles="urn:hbbtv:dash:profile:isoff-live:2012,urn:mpeg:dash:profile:isoff-live:2011" 
    xmlns:xsi="http://www.w3.org/2011/XMLSchema-instance" 
    xsi:schemaLocation="urn:mpeg:DASH:schema:MPD:2011 DASH-MPD.xsd"> 
    <Period start="PT0S" id="dash"> 
    <AdaptationSet 
     id="1" 
     segmentAlignment="true" 
     maxWidth="1380" 
     maxHeight="800" 
     maxFrameRate="15"> 
     <Representation 
      id="test_H264" 
      mimeType="video/mp4" 
      codecs="avc1.640020" 
      width="1380" 
      height="800" 
      frameRate="15" 
      sar="1:1" 
      startWithSAP="1" 
      bandwidth="0"> 
     <SegmentTemplate 
      presentationTimeOffset="0" 
      timescale="1000" 
      media="test-$Time$.m4v" 
      initialization="test-init.m4v"> 
      <SegmentTimeline> 
      <S t="0" d="6000"/> 
      <S t="6000" d="16666"/> 
      <S t="22666" d="11000"/> 
      <S t="33666" d="2713"/> 
      </SegmentTimeline> 
     </SegmentTemplate> 
     </Representation> 
    </AdaptationSet> 
    <AdaptationSet 
id="2" 
     segmentAlignment="true"> 
     <AudioChannelConfiguration 
      schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" 
      value="1"/> 
     <Representation 
      id="test_AAC" 
      mimeType="audio/mp4" 
      codecs="mp4a.40.2" 
      audioSamplingRate="44100" 
      startWithSAP="1" 
      bandwidth="156000"> 
     <SegmentTemplate 
      presentationTimeOffset="0" 
      timescale="1000" 
      media="test-$Time$.m4a" 
      initialization="test-init.m4a"> 
      <SegmentTimeline> 
      <S t="0" d="6000"/> 
      <S t="6000" d="16666"/> 
      <S t="22666" d="11000"/> 
      <S t="33666" d="2713"/> 
      </SegmentTimeline> 
     </SegmentTemplate>`enter code here` 
     </Representation> 
    </AdaptationSet> 
    </Period> 
</MPD> 

Répondre

0

Il existe un bon tutoriel pour NGINX + DASH au https://www.nginx.com/blog/scalable-live-video-streaming-nginx-plus-bitmovin, mais il utilise le bitmovin player au lieu de dash.js. Je suppose que dash.js n'a pas implémenté certaines fonctionnalités utilisées par la sortie NGINX DASH. Vous pouvez également tester Shaka player.

+0

Oui, j'essaie le lecteur Shaka, mais je pense que j'ai trouvé le problème, c'est nginx rtmp-module, toutes les fourches peuvent générer invalid.mpd – Lem