Estou tentando otimizar a reprodução de conteúdo em um sistema baseado no N3060 usando o VLC 2.2.6. Atualmente, estou executando 17.10 para determinar se esse conceito é possível.
Atualmente, vejo cerca de 80% a 100% de utilização da CPU no topo quando reproduzo um trailer de 1080p h.264 que baixei. A saída mediainfo para esse arquivo é:
General
Complete name : I Am Legend - Trailer.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom)
File size : 121 MiB
Duration : 2 min 3 s
Overall bit rate mode : Variable
Overall bit rate : 8 237 kb/s
Encoded date : UTC 2008-12-01 05:16:01
Tagged date : UTC 2008-12-01 05:16:01
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings, CABAC : Yes
Format settings, RefFrames : 3 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 2 min 3 s
Bit rate mode : Variable
Bit rate : 8 000 kb/s
Maximum bit rate : 40.0 Mb/s
Width : 1 920 pixels
Height : 816 pixels
Display aspect ratio : 2.35:1
Frame rate mode : Constant
Frame rate : 23.976 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.213
Stream size : 117 MiB (97%)
Writing library : x264 core 65 r1040M 1591275
Encoding settings : cabac=1 / ref=3 / deblock=1:-1:-1 / analyse=0x3:0x113 / me=umh / subme=7 / psy_rd=1.0:0.0 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / chroma_qp_offset=-2 / threads=3 / nr=0 / decimate=1 / mbaff=0 / bframes=3 / b_pyramid=0 / b_adapt=2 / b_bias=0 / direct=3 / wpredb=1 / keyint=24 / keyint_min=2 / scenecut=40(pre) / rc=2pass / bitrate=8000 / ratetol=1.0 / qcomp=0.50 / qpmin=10 / qpmax=51 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / vbv_maxrate=40000 / vbv_bufsize=40000 / ip_ratio=1.10 / pb_ratio=1.10 / aq=1:1.00
Encoded date : UTC 2008-12-01 04:50:08
Tagged date : UTC 2008-12-01 05:16:04
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 2 min 3 s
Bit rate mode : Variable
Bit rate : 258 kb/s
Maximum bit rate : 365 kb/s
Channel(s) : 2 channels
Channel(s)_Original : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 kHz
Frame rate : 46.875 FPS (1024 SPF)
Compression mode : Lossy
Stream size : 3.80 MiB (3%)
Encoded date : UTC 2008-12-01 05:16:04
Tagged date : UTC 2008-12-01 05:16:04
Acredito que tenho o vaapi instalado corretamente no sistema. A saída do vainfo é:
libva info: VA-API version 0.40.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_40
libva info: va_openDriver() returns 0
vainfo: VA-API version: 0.40 (libva )
vainfo: Driver version: Intel i965 driver for Intel(R) CherryView - 1.8.3
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Simple : VAEntrypointEncSlice
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointEncSlice
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileH264MultiviewHigh : VAEntrypointVLD
VAProfileH264MultiviewHigh : VAEntrypointEncSlice
VAProfileH264StereoHigh : VAEntrypointVLD
VAProfileH264StereoHigh : VAEntrypointEncSlice
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointEncPicture
VAProfileVP8Version0_3 : VAEntrypointVLD
VAProfileVP8Version0_3 : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
Quando eu executo o VLC, recebo as seguintes informações
[000055b4085169d8] core libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[00007fd2f0c01988] mp4 stream warning: unknown box type btrt (incompletely loaded)
[00007fd2f0c021e8] mp4 demux warning: STTS table of 1 entries
[00007fd2f0c021e8] mp4 demux warning: CTTS table of 1916 entries
[00007fd2f0c021e8] mp4 demux warning: STTS table of 1 entries
[00007fd2f0da50e8] faad decoder warning: decoded zero sample
libva info: VA-API version 0.40.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_40
libva info: va_openDriver() returns 0
[00007fd2f0c39108] avcodec decoder: Using Intel i965 driver for Intel(R) CherryView - 1.8.3 for hardware decoding.
Failed to open VDPAU backend libvdpau_i965.so: cannot open shared object file: No such file or directory
Com base no que posso encontrar, acho que parece certo.
O problema é que, independentemente das opções que eu escolher para a decodificação de aceleração de hardware, não vejo o uso da CPU se mexer. O mesmo se aplica ao módulo de saída também.
Eu tentei o mpv e encontrei uma melhora drástica no desempenho quando configurado corretamente. Infelizmente, não é uma opção para o aplicativo existente.
Eu sei que existem diferenças significativas entre MPV e VLC com suas implementações de aceleração, mas eu sinto que deveria estar vendo um desempenho melhor do que no VLC. Minha única linha de base para o desempenho da Intel GPU é este processador / placa-mãe.
Devo esperar um melhor desempenho ou estou recebendo tudo o que deveria esperar? Obrigado.