0

jwplayer、ffmpeg、crtmpserver を使用してライブ ストリーミングを行っています。ffmpeg でストリーミングされているビデオに応じて jwplayer のサイズを動的に変更できるかどうか疑問に思っていました。たとえば、次の ffmpeg コマンドがビデオのストリーミングに使用されているとします。

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 を 30x30 としてビデオをストリーミングしているため、ビデオがぼやけすぎています。したがって、ビデオに合わせて jwplayer のサイズを変更することは可能ですか? この場合、jwplayer のサイズを小さくする必要があります。にjwplayer.resize()基づいて使用してみjwplayer().getCurrentQuality()ましたが、この場合の使用方法がわかりません。

4

1 に答える 1

0

答えを見つけました。jwplayer().onQualityChange上記は、次のようなイベントを使用して実現できます。

    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);
      } 
    } 

上記のイベントは、jwplayer の品質が変更されたときにトリガーされます。この URL http://www.longtailvideo.com/support/jw-player/29365/rtmp-dynamic-streamは、jwplayer 用にさまざまな品質のビデオを作成する方法を示しています。上記の関数resizePlayer()は、必要に応じて他の適切な jwplayer イベントを使用して呼び出すこともできます。

于 2014-01-15T11:26:40.150 に答える