microsoft / microsoft/FFmpegInterop

HEVC buffering a lot in phones!

Open
#208 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
1.4k
Forks
319
PR merge metrics
No merged PRs in 30d

Description

Hi, I have an local HEVC movie (720p). In pc there is no buffering while playing this movie, but in my phone, there's a lot of buffering!
(Windows 10 mobile, creators update)
Movie info:

General
Unique ID                      : 42348663308122598639254619844544870105 (0x1FDC0E4DF44EC74CDE088474C138B6D9)
Complete name                  : C:\Users\Ramti\Downloads\Video\Man_with_a_Plan_S02E06_x265_720p.mkv
Format                         : Matroska
Format version                 : Version 4 / Version 2
File size                      : 128 MiB
Duration                       : 20 min 49 s
Overall bit rate               : 858 kb/s
Movie name                     : Man with a Plan S02E06 - RMTeam, RMZ.cr
Description                    : Encoded By RMTeam, http://RMZ.cr
Writing application            : Lavf57.83.100
Writing library                : Lavf57.83.100
ErrorDetectionType             : Per level 1

Video
ID                             : 1
Format                         : HEVC
Format/Info                    : High Efficiency Video Coding
Format profile                 : Main@L3.1@Main
Codec ID                       : V_MPEGH/ISO/HEVC
Duration                       : 20 min 49 s
Width                          : 1 280 pixels
Height                         : 720 pixels
Display aspect ratio           : 16:9
Frame rate mode                : Variable
Original frame rate            : 23.976 FPS
Color space                    : YUV
Chroma subsampling             : 4:2:0
Bit depth                      : 8 bits
Writing library                : x265 2.5+27-0e168bdeb48b:[Linux][GCC 6.4.0][64 bit] 8bit+10bit+12bit
Encoding settings              : cpuid=1173503 / frame-threads=3 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=1280x720 / interlace=0 / total-frames=0 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=3 / no-allow-non-conformance / no-repeat-headers / annexb / no-aud / no-hrd / info / hash=0 / no-temporal-layers / open-gop / min-keyint=23 / keyint=250 / bframes=4 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=20 / lookahead-slices=4 / scenecut=40 / no-intra-refresh / ctu=64 / min-cu-size=8 / no-rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=0 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / strong-intra-smoothing / max-merge=2 / limit-refs=3 / no-limit-modes / me=1 / subme=2 / merange=57 / temporal-mvp / weightp / no-weightb / no-analyze-src-pics / deblock=0:0 / sao / no-sao-non-deblock / rd=3 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.00 / psy-rdoq=0.00 / no-rd-refine / analysis-reuse-mode=0 / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=crf / crf=25.0 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=0 / ipratio=1.40 / pbratio=1.30 / aq-mode=1 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 / range=0 / colorprim=2 / transfer=2 / colormatrix=2 / chromaloc=0 / display-window=0 / max-cll=0,0 / min-luma=0 / max-luma=255 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / opt-qp-pps / opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / no-opt-cu-delta-qp / no-aq-motion / no-hdr / no-hdr-opt / no-dhdr10-opt / analysis-reuse-level=5 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=0 / no-limit-sao / ctu-info=0
Language                       : English
Default                        : No
Forced                         : No

Audio
ID                             : 2
Format                         : AAC
Format/Info                    : Advanced Audio Codec
Format profile                 : LC
Codec ID                       : A_AAC-2
Duration                       : 20 min 49 s
Channel(s)                     : 2 channels
Channel positions              : Front: L R
Sampling rate                  : 48.0 kHz
Frame rate                     : 46.875 FPS (1024 SPF)
Compression mode               : Lossy
Writing library                : Lavc57.107.100 aac
Default                        : Yes
Forced                         : No

Here I got the Current state changed of MediaElement, you can see the buffering, time and movie position:

[1/4/2018 10:22:22 PM]	CurrentState: Buffering [Position: 00:00:00]
[1/4/2018 10:22:22 PM]	Buffering: 0.0299999993294477 [Position: 00:00:00]


[1/4/2018 10:22:27 PM]	CurrentState: Buffering [Position: 00:00:00]
[1/4/2018 10:22:27 PM]	Buffering: 0 [Position: 00:00:00]


[1/4/2018 10:22:28 PM]	CurrentState: Buffering [Position: 00:00:00]
[1/4/2018 10:22:28 PM]	Buffering: 0.870000004768372 [Position: 00:00:00]

[1/4/2018 10:22:28 PM]	CurrentState: Playing [Position: 00:00:00]


[1/4/2018 10:22:32 PM]	CurrentState: Buffering [Position: 00:00:04]
[1/4/2018 10:22:32 PM]	Buffering: 0.5 [Position: 00:00:04]

[1/4/2018 10:22:36 PM]	CurrentState: Playing [Position: 00:00:04]


[1/4/2018 10:22:41 PM]	CurrentState: Buffering [Position: 00:00:09]
[1/4/2018 10:22:41 PM]	Buffering: 0.5 [Position: 00:00:09]

[1/4/2018 10:22:46 PM]	CurrentState: Playing [Position: 00:00:09]


[1/4/2018 10:22:52 PM]	CurrentState: Buffering [Position: 00:00:15]
[1/4/2018 10:22:52 PM]	Buffering: 0.5 [Position: 00:00:15]

[1/4/2018 10:22:58 PM]	CurrentState: Playing [Position: 00:00:15]


[1/4/2018 10:22:59 PM]	CurrentState: Buffering [Position: 00:00:16]
[1/4/2018 10:22:59 PM]	Buffering: 0.519999980926514 [Position: 00:00:16]

[1/4/2018 10:23:01 PM]	CurrentState: Playing [Position: 00:00:16]


[1/4/2018 10:23:07 PM]	CurrentState: Buffering [Position: 00:00:22]
[1/4/2018 10:23:07 PM]	Buffering: 0.5 [Position: 00:00:22]

[1/4/2018 10:23:13 PM]	CurrentState: Playing [Position: 00:00:22]

What is the problem of this?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the HEVC playback report on Windows 10 Mobile using the supplied 720p MKV and observe the MediaElement CurrentState and Buffering logs. No repository file, test, or code entry point is named, so completion would require identifying the cause of the repeated buffering and demonstrating smooth playback or documenting a confirmed platform limitation.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
audio-video-rtc, mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.