2014-01-15 27 views
0

我使用jwplayer,ffmpeg和crtmpserver做直播。我想知道是否可以根据ffmpeg流式传输的视频动态调整jwplayer的大小。例如假设下面的ffmpeg命令正在使用的视频流:根据ffmpeg视频动态调整jwplayer的大小

ffmpeg -re -i 'myVideo.mp4' -vf scale=30:30 -vcodec flv -acodec copy -s 30x30 -f flv rtmp://localhost/flvplayback/livestream 
的代码

Jwplayer方:现在

<script type="text/javascript"> 
    jwplayer("myElement").setup({ 
     playlist: [{ 
     image: "/uploads/myPoster.jpg", 
     sources: [{ 
      file: "/uploads/myManifest.smil", 
      type: "rtmp" 
      },{ 
      file: "/uploads/myVideo.mp4" 
      }] 
     }], 
     primary: "flash", 
     listbar: { 
      position: 'right', 
      size: 100 
     }, 
     stretching: "exactfit" 
}); 

,因为ffmpeg的是视频流与-s为30×30,视频太模糊。那么,是否可以调整jwplayer以适应视频?在这种情况下jwplayer的大小应该减小。 我尝试使用jwplayer.resize()根据jwplayer().getCurrentQuality(),但不知道如何在这种情况下使用它。

+0

无关:为什么'flv'而不是'libx264'?另外,您不需要同时使用'scale'视频过滤器和'-s'。 – LordNeckbeard

回答

0

找到了答案。以上可以使用可以活动jwplayer().onQualityChange类似下面的实现:当jwplayer的质量发生变化时触发

jwplayer().onQualityChange(function(event){ 
     resizePlayer(); 
    }); 

    function resizePlayer(){ 
     if (jwplayer().getCurrentQuality() == 0) 
     { 
     jwplayer().resize(1024, 720); 

     } 
     if (jwplayer().getCurrentQuality() == 1) 
     { 
     jwplayer().resize(640, 360); 
     } 
     if (jwplayer().getCurrentQuality() == 2) 
     { 
     jwplayer().resize(320,180); 
     } 
    } 

上述事件。这里的网址http://www.longtailvideo.com/support/jw-player/29365/rtmp-dynamic-stream显示了如何为jwplayer创建不同质量的视频。上述功能resizePlayer()也可以根据需要使用其他合适的jwplayer事件来调用。

相关问题