High battery consumption during video playback

I have a laptop running manjaro gnome and I’ve noticed that battery life while playing any sort of video tends to be abysmal. I’m talking about a drop of 20-30% in a little more than an hour in VLC and it tends to be even worse if I’m playing anything online from Youtube (I’ve enabled VA-API but the effects, if there are any, are negligible).

output of inxi:

System:
  Kernel: 5.10.26-1-MANJARO x86_64 bits: 64 compiler: gcc v: 10.2.0 
  parameters: BOOT_IMAGE=/boot/vmlinuz-5.10-x86_64 
  root=UUID=d7737d6c-758c-4ace-933d-05aad7acbdcb rw quiet splash apparmor=1 
  security=apparmor udev.log_priority=3 mem_sleep_default=deep 
  resume=UUID=d7737d6c-758c-4ace-933d-05aad7acbdcb resume_offset=15343616 
  Desktop: GNOME 3.38.4 tk: GTK 3.24.28 wm: gnome-shell dm: GDM 3.38.2.1 
  Distro: Manjaro Linux base: Arch Linux 
Machine:
  Type: Laptop System: Dell product: XPS 13 9360 v: N/A serial: <filter> 
  Chassis: type: 9 serial: <filter> 
  Mobo: Dell model: 0N0TW9 v: A02 serial: <filter> UEFI: Dell v: 2.14.2 
  date: 07/13/2020 
Battery:
  ID-1: BAT0 charge: 51.1 Wh (85.2%) condition: 60.0/60.0 Wh (100.0%) 
  volts: 8.1 min: 7.6 model: SMP DELL TP1GT61 type: Li-poly serial: <filter> 
  status: Discharging 
Memory:
  RAM: total: 7.66 GiB used: 2.51 GiB (32.7%) 
  RAM Report: permissions: Unable to run dmidecode. Root privileges required. 
CPU:
  Info: Quad Core model: Intel Core i5-8250U bits: 64 type: MT MCP 
  arch: Kaby Lake note: check family: 6 model-id: 8E (142) stepping: A (10) 
  microcode: E0 cache: L2: 6 MiB bogomips: 28808 
  Speed: 900 MHz min/max: 400/3400 MHz Core speeds (MHz): 1: 900 2: 900 3: 900 
  4: 900 5: 901 6: 901 7: 900 8: 900 
  Flags: 3dnowprefetch abm acpi adx aes aperfmperf apic arat arch_perfmon art 
  avx avx2 bmi1 bmi2 bts clflush clflushopt cmov constant_tsc cpuid 
  cpuid_fault cx16 cx8 de ds_cpl dtes64 dtherm dts epb ept ept_ad erms est 
  f16c flexpriority flush_l1d fma fpu fsgsbase fxsr ht hwp hwp_act_window 
  hwp_epp hwp_notify ibpb ibrs ida intel_pt invpcid invpcid_single lahf_lm lm 
  mca mce md_clear mmx monitor movbe mpx msr mtrr nonstop_tsc nopl nx pae pat 
  pbe pcid pclmulqdq pdcm pdpe1gb pebs pge pln pni popcnt pse pse36 pti pts 
  rdrand rdseed rdtscp rep_good sdbg sep smap smep ss ssbd sse sse2 sse4_1 
  sse4_2 ssse3 stibp syscall tm tm2 tpr_shadow tsc tsc_adjust 
  tsc_deadline_timer vme vmx vnmi vpid x2apic xgetbv1 xsave xsavec xsaveopt 
  xsaves xtopology xtpr 
  Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled 
  Type: l1tf 
  mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable 
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable 
  Type: meltdown mitigation: PTI 
  Type: spec_store_bypass 
  mitigation: Speculative Store Bypass disabled via prctl and seccomp 
  Type: spectre_v1 
  mitigation: usercopy/swapgs barriers and __user pointer sanitization 
  Type: spectre_v2 mitigation: Full generic retpoline, IBPB: conditional, 
  IBRS_FW, STIBP: conditional, RSB filling 
  Type: srbds mitigation: Microcode 
  Type: tsx_async_abort status: Not affected 
Graphics:
  Device-1: Intel UHD Graphics 620 vendor: Dell driver: i915 v: kernel 
  bus-ID: 00:02.0 chip-ID: 8086:5917 class-ID: 0300 
  Device-2: Microdia Integrated Webcam HD type: USB driver: uvcvideo 
  bus-ID: 1-5:3 chip-ID: 0c45:670c class-ID: 0e02 
  Display: x11 server: X.Org 1.20.10 compositor: gnome-shell driver: 
  loaded: intel unloaded: modesetting alternate: fbdev,vesa display-ID: :1 
  screens: 1 
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.0x11.2") 
  s-diag: 582mm (22.9") 
  Monitor-1: eDP1 res: 1920x1080 hz: 60 dpi: 168 size: 290x170mm (11.4x6.7") 
  diag: 336mm (13.2") 
  OpenGL: renderer: Mesa Intel UHD Graphics 620 (KBL GT2) v: 4.6 Mesa 21.0.1 
  direct render: Yes 
Audio:
  Device-1: Intel Sunrise Point-LP HD Audio vendor: Dell driver: snd_hda_intel 
  v: kernel alternate: snd_soc_skl bus-ID: 00:1f.3 chip-ID: 8086:9d71 
  class-ID: 0403 
  Sound Server-1: ALSA v: k5.10.26-1-MANJARO running: yes 
  Sound Server-2: JACK v: 0.125.0 running: no 
  Sound Server-3: PulseAudio v: 14.2 running: yes 
  Sound Server-4: PipeWire v: 0.3.24 running: yes 
Network:
  Device-1: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter 
  vendor: Rivet Networks driver: ath10k_pci v: kernel port: f040 
  bus-ID: 3a:00.0 chip-ID: 168c:003e class-ID: 0280 
  IF: wlp58s0 state: up mac: <filter> 
  IP v4: <filter> type: dynamic noprefixroute scope: global 
  broadcast: <filter> 
  IP v6: <filter> type: dynamic noprefixroute scope: global 
  IP v6: <filter> type: noprefixroute scope: link 
  WAN IP: <filter> 
Bluetooth:
  Device-1: Qualcomm Atheros QCA61x4 Bluetooth 4.0 type: USB driver: btusb 
  v: 0.8 bus-ID: 1-3:2 chip-ID: 0cf3:e300 class-ID: e001 
  Report: This feature requires one of these tools: hciconfig/bt-adapter 
Logical:
  Message: No LVM data was found. 
RAID:
  Message: No RAID data was found. 
Drives:
  Local Storage: total: 232.89 GiB used: 117.7 GiB (50.5%) 
  SMART Message: Required tool smartctl not installed. Check --recommends 
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung 
  model: SSD 970 EVO Plus 250GB size: 232.89 GiB block-size: physical: 512 B 
  logical: 512 B speed: 31.6 Gb/s lanes: 4 rotation: SSD serial: <filter> 
  rev: 2B2QEXM7 temp: 38.9 C scheme: GPT 
  Message: No Optical or Floppy data was found. 
Partition:
  ID-1: / raw-size: 232.59 GiB size: 227.94 GiB (98.00%) 
  used: 117.7 GiB (51.6%) fs: ext4 dev: /dev/nvme0n1p2 maj-min: 259:2 
  label: N/A uuid: d7737d6c-758c-4ace-933d-05aad7acbdcb 
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%) 
  used: 312 KiB (0.1%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1 label: N/A 
  uuid: A9BD-4512 
  ID-3: /run/timeshift/backup raw-size: 232.59 GiB size: <superuser required> 
  used: <superuser required> fs: ext4 dev: /dev/nvme0n1p2 maj-min: 259:2 
  label: N/A uuid: d7737d6c-758c-4ace-933d-05aad7acbdcb 
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) 
  ID-1: swap-1 type: file size: 16 GiB used: 535.8 MiB (3.3%) priority: -2 
  file: /swapfile 
Unmounted:
  Message: No Unmounted partitions found. 
USB:
  Hub-1: 1-0:1 info: Full speed (or root) Hub ports: 12 rev: 2.0 
  speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900 
  Device-1: 1-3:2 info: Qualcomm Atheros QCA61x4 Bluetooth 4.0 type: Bluetooth 
  driver: btusb interfaces: 2 rev: 2.0 speed: 12 Mb/s power: 100mA 
  chip-ID: 0cf3:e300 class-ID: e001 
  Device-2: 1-5:3 info: Microdia Integrated Webcam HD type: Video 
  driver: uvcvideo interfaces: 2 rev: 2.0 speed: 480 Mb/s power: 500mA 
  chip-ID: 0c45:670c class-ID: 0e02 
  Hub-2: 2-0:1 info: Full speed (or root) Hub ports: 6 rev: 3.0 speed: 5 Gb/s 
  chip-ID: 1d6b:0003 class-ID: 0900 
Sensors:
  System Temperatures: cpu: 43.0 C mobo: N/A 
  Fan Speeds (RPM): cpu: 0 
Info:
  Processes: 241 Uptime: 3d 20h 50m wakeups: 11 Init: systemd v: 247 
  tool: systemctl Compilers: gcc: 10.2.0 Packages: 1549 pacman: 1540 lib: 447 
  flatpak: 9 Shell: Zsh v: 5.8 running-in: gnome-terminal inxi: 3.3.03 

Any solutions?

Playing video is never going to be easy on your battery - no matter the system - it is only going to get worse if you stream it over wireless - that task is very power hungry.

Hi @federation,

Well, for video that actually doesn’t sound to bad, IMHO.

That said, I’ve read here that VLC is… not what it once was, so maybe give another player a go and see?

But I’ve noticed video playback battery consumption was a fair bit lower when this laptop ran windows…perhaps this has something to do with the kernel then?

How much lower exactly?

5-10%. Can’t remember the exact numbers

you will have to look closer into your power settings - tlp is a good place to start - but video playback will always consume more power - but I am fairly certain you are going to gain any significant change from.

And by the way - Linux is not Windows - and you cannot compare apples to oranges.

Try another player, as mpv or haruna (which uses mpv), or another one. Maybe it could help too

are there any tlp configurations you recommend? I have it enabled but I’m using the default config.

https://linrunner.de/tlp/

Nah - use tlpui - it makes more sense than staring at the config file - but as a said - I don’t think you will make more out of it.

Just keep your charge level between 20% and 80% to avoid killing your battery. Something incredibly simple is to lower your screen brightness - that alone can make a difference. But try doing the math

if you got 240min before then 10% is minus 24min - that can be screen brightness or simply wear and tear - there is really not one-size answer to you issue.