Android Exoplayer AdaptiveTrackSelection need to start video with high quality












1















I am using Exoplayer for streaming HLS video content. By default AdaptiveTrackSelection starts with low quality and as it detects good internet speed it switches to high quality. I want to start player with high quality and then it should change as per internet speed. Thanks in advance.










share|improve this question



























    1















    I am using Exoplayer for streaming HLS video content. By default AdaptiveTrackSelection starts with low quality and as it detects good internet speed it switches to high quality. I want to start player with high quality and then it should change as per internet speed. Thanks in advance.










    share|improve this question

























      1












      1








      1








      I am using Exoplayer for streaming HLS video content. By default AdaptiveTrackSelection starts with low quality and as it detects good internet speed it switches to high quality. I want to start player with high quality and then it should change as per internet speed. Thanks in advance.










      share|improve this question














      I am using Exoplayer for streaming HLS video content. By default AdaptiveTrackSelection starts with low quality and as it detects good internet speed it switches to high quality. I want to start player with high quality and then it should change as per internet speed. Thanks in advance.







      android exoplayer exoplayer2.x






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 20 '18 at 11:12









      Sachin JagtapSachin Jagtap

      687




      687
























          1 Answer
          1






          active

          oldest

          votes


















          1














          I believe what you're looking for is a modification of the "max initial bitrate". This is a parameter you can pass to the BandwidthMeter. The BandwidthMeter is what determines your bandwidth and how it will select the track based on that information. If you pass a large number as this parameter, it'll default to forcing a higher bitrate. The default is currently 1_000_000 I think (as DEFAULT_MAX_INITIAL_BITRATE) - but look this up to verify.



          To pass this in, it'd look like the following:



          final long defaultMaxInitialBitrate = Integer.MAX_VALUE;
          final DefaultBandwidthMeter defaultBandwidthMeter = new Builder()
          .setInitialBitrateEstimate(defaultMaxInitialBitrate)
          .build();
          final AdaptiveTrackSelection.Factory videoTrackSelectionFactory =
          new AdaptiveTrackSelection.Factory(defaultBandwidthMeter, ...)


          Some more sources:



          https://github.com/google/ExoPlayer/issues/3698



          https://github.com/google/ExoPlayer/issues/676






          share|improve this answer


























          • Thanks @Kyle. By default it is DEFAULT_INITIAL_BITRATE_ESTIMATE = 1_000_000.

            – Sachin Jagtap
            Nov 26 '18 at 7:25











          • Thanks @SachinJagtap - just updated.

            – Kyle Venn
            Nov 26 '18 at 14:32











          • In this case, do the stream changes to lower resolution when internet speed goes down? Or the video get freezed for buffering? In my case, video started buffering. What could be the possible issue?

            – Prakash
            Dec 17 '18 at 7:33











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53391740%2fandroid-exoplayer-adaptivetrackselection-need-to-start-video-with-high-quality%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          1














          I believe what you're looking for is a modification of the "max initial bitrate". This is a parameter you can pass to the BandwidthMeter. The BandwidthMeter is what determines your bandwidth and how it will select the track based on that information. If you pass a large number as this parameter, it'll default to forcing a higher bitrate. The default is currently 1_000_000 I think (as DEFAULT_MAX_INITIAL_BITRATE) - but look this up to verify.



          To pass this in, it'd look like the following:



          final long defaultMaxInitialBitrate = Integer.MAX_VALUE;
          final DefaultBandwidthMeter defaultBandwidthMeter = new Builder()
          .setInitialBitrateEstimate(defaultMaxInitialBitrate)
          .build();
          final AdaptiveTrackSelection.Factory videoTrackSelectionFactory =
          new AdaptiveTrackSelection.Factory(defaultBandwidthMeter, ...)


          Some more sources:



          https://github.com/google/ExoPlayer/issues/3698



          https://github.com/google/ExoPlayer/issues/676






          share|improve this answer


























          • Thanks @Kyle. By default it is DEFAULT_INITIAL_BITRATE_ESTIMATE = 1_000_000.

            – Sachin Jagtap
            Nov 26 '18 at 7:25











          • Thanks @SachinJagtap - just updated.

            – Kyle Venn
            Nov 26 '18 at 14:32











          • In this case, do the stream changes to lower resolution when internet speed goes down? Or the video get freezed for buffering? In my case, video started buffering. What could be the possible issue?

            – Prakash
            Dec 17 '18 at 7:33
















          1














          I believe what you're looking for is a modification of the "max initial bitrate". This is a parameter you can pass to the BandwidthMeter. The BandwidthMeter is what determines your bandwidth and how it will select the track based on that information. If you pass a large number as this parameter, it'll default to forcing a higher bitrate. The default is currently 1_000_000 I think (as DEFAULT_MAX_INITIAL_BITRATE) - but look this up to verify.



          To pass this in, it'd look like the following:



          final long defaultMaxInitialBitrate = Integer.MAX_VALUE;
          final DefaultBandwidthMeter defaultBandwidthMeter = new Builder()
          .setInitialBitrateEstimate(defaultMaxInitialBitrate)
          .build();
          final AdaptiveTrackSelection.Factory videoTrackSelectionFactory =
          new AdaptiveTrackSelection.Factory(defaultBandwidthMeter, ...)


          Some more sources:



          https://github.com/google/ExoPlayer/issues/3698



          https://github.com/google/ExoPlayer/issues/676






          share|improve this answer


























          • Thanks @Kyle. By default it is DEFAULT_INITIAL_BITRATE_ESTIMATE = 1_000_000.

            – Sachin Jagtap
            Nov 26 '18 at 7:25











          • Thanks @SachinJagtap - just updated.

            – Kyle Venn
            Nov 26 '18 at 14:32











          • In this case, do the stream changes to lower resolution when internet speed goes down? Or the video get freezed for buffering? In my case, video started buffering. What could be the possible issue?

            – Prakash
            Dec 17 '18 at 7:33














          1












          1








          1







          I believe what you're looking for is a modification of the "max initial bitrate". This is a parameter you can pass to the BandwidthMeter. The BandwidthMeter is what determines your bandwidth and how it will select the track based on that information. If you pass a large number as this parameter, it'll default to forcing a higher bitrate. The default is currently 1_000_000 I think (as DEFAULT_MAX_INITIAL_BITRATE) - but look this up to verify.



          To pass this in, it'd look like the following:



          final long defaultMaxInitialBitrate = Integer.MAX_VALUE;
          final DefaultBandwidthMeter defaultBandwidthMeter = new Builder()
          .setInitialBitrateEstimate(defaultMaxInitialBitrate)
          .build();
          final AdaptiveTrackSelection.Factory videoTrackSelectionFactory =
          new AdaptiveTrackSelection.Factory(defaultBandwidthMeter, ...)


          Some more sources:



          https://github.com/google/ExoPlayer/issues/3698



          https://github.com/google/ExoPlayer/issues/676






          share|improve this answer















          I believe what you're looking for is a modification of the "max initial bitrate". This is a parameter you can pass to the BandwidthMeter. The BandwidthMeter is what determines your bandwidth and how it will select the track based on that information. If you pass a large number as this parameter, it'll default to forcing a higher bitrate. The default is currently 1_000_000 I think (as DEFAULT_MAX_INITIAL_BITRATE) - but look this up to verify.



          To pass this in, it'd look like the following:



          final long defaultMaxInitialBitrate = Integer.MAX_VALUE;
          final DefaultBandwidthMeter defaultBandwidthMeter = new Builder()
          .setInitialBitrateEstimate(defaultMaxInitialBitrate)
          .build();
          final AdaptiveTrackSelection.Factory videoTrackSelectionFactory =
          new AdaptiveTrackSelection.Factory(defaultBandwidthMeter, ...)


          Some more sources:



          https://github.com/google/ExoPlayer/issues/3698



          https://github.com/google/ExoPlayer/issues/676







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Nov 26 '18 at 14:32

























          answered Nov 24 '18 at 19:05









          Kyle VennKyle Venn

          1,894823




          1,894823













          • Thanks @Kyle. By default it is DEFAULT_INITIAL_BITRATE_ESTIMATE = 1_000_000.

            – Sachin Jagtap
            Nov 26 '18 at 7:25











          • Thanks @SachinJagtap - just updated.

            – Kyle Venn
            Nov 26 '18 at 14:32











          • In this case, do the stream changes to lower resolution when internet speed goes down? Or the video get freezed for buffering? In my case, video started buffering. What could be the possible issue?

            – Prakash
            Dec 17 '18 at 7:33



















          • Thanks @Kyle. By default it is DEFAULT_INITIAL_BITRATE_ESTIMATE = 1_000_000.

            – Sachin Jagtap
            Nov 26 '18 at 7:25











          • Thanks @SachinJagtap - just updated.

            – Kyle Venn
            Nov 26 '18 at 14:32











          • In this case, do the stream changes to lower resolution when internet speed goes down? Or the video get freezed for buffering? In my case, video started buffering. What could be the possible issue?

            – Prakash
            Dec 17 '18 at 7:33

















          Thanks @Kyle. By default it is DEFAULT_INITIAL_BITRATE_ESTIMATE = 1_000_000.

          – Sachin Jagtap
          Nov 26 '18 at 7:25





          Thanks @Kyle. By default it is DEFAULT_INITIAL_BITRATE_ESTIMATE = 1_000_000.

          – Sachin Jagtap
          Nov 26 '18 at 7:25













          Thanks @SachinJagtap - just updated.

          – Kyle Venn
          Nov 26 '18 at 14:32





          Thanks @SachinJagtap - just updated.

          – Kyle Venn
          Nov 26 '18 at 14:32













          In this case, do the stream changes to lower resolution when internet speed goes down? Or the video get freezed for buffering? In my case, video started buffering. What could be the possible issue?

          – Prakash
          Dec 17 '18 at 7:33





          In this case, do the stream changes to lower resolution when internet speed goes down? Or the video get freezed for buffering? In my case, video started buffering. What could be the possible issue?

          – Prakash
          Dec 17 '18 at 7:33




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53391740%2fandroid-exoplayer-adaptivetrackselection-need-to-start-video-with-high-quality%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          mysqli_query(): Empty query in /home/lucindabrummitt/public_html/blog/wp-includes/wp-db.php on line 1924

          How to change which sound is reproduced for terminal bell?

          Can I use Tabulator js library in my java Spring + Thymeleaf project?