Přehrávání videa z Raspberry Pi na 4K obrazovce

Přehrávání videa z Raspberry Pi na 4K obrazovce
« kdy: 30. 03. 2025, 23:26:21 »
Zdravím všechny diskutující co budou číst můj dotaz.
Mám Raspberry Pi 4 Model B verzi se 4 GB RAM a s aktuální minimalistickou verzí Raspbian (64-bit, Bookworm). K němu je připojena přes první HDMI výstup 4K televize s Google TV, na které chci přehrávat ve smyčce krátké informační video.
Raspbian neobsahuje grafické prostředí, H.264 video v rozlišení 1920x1080 a délce cca 11 minut přehrávám pomocí VLC takto:
Kód: [Vybrat]
cvlc --fullscreen --loop --no-audio /path/to/video.mp4Poznámka: "cvlc" je existující alias na "vlc -I dummy" což zajistí přehrávání bez nutnosti grafického prostředí.

To funguje dlouhodobě dobře pro Full HD obrazovku, bohužel u připojené 4K televize je video vždy po 90 sekundách přerušeno, dokonce krátce problikne na obrazovce terminál a video se začne přehrávat od začátku.
Výstup na televizi si VLC při přehrávání videa přepne vždy do rozlišení 4096x2160.

Nikde jsem podobný problém popsaný nenašel, Raspberry Pi 4 by snad zobrazení na moderní 4K televizi zvládnout mělo. Hrál jsem si s tím celý den, ale už mi nápady docházejí, tak budu rád za jakékoli nasměrování.

Co jsem zkoušel, ale nijak to nepomohlo:
  • překódovat video do H.265, ale kromě zmenšení souboru videa na cca polovinu žádný rozdíl
  • omezit na televizi rozlišení pouze na Full HD, bohužel to Google TV v ní neumožňuje a co jsem četl, tak to ani není dobrý nápad, protože to by měl řídit vstup a ne TV
  • do /boot/firmware/config.txt přidat řádek pro povolení 4K rozlišení na výstupu: hdmi_enable_4kp60=1
  • do /boot/firmware/config.txt přidat řádek pro vynucení konkrétního rozlišení: video=HDMI-A-1:1920x1080M@60
  • zapnout Debug logování VLC do souboru, ale ani tam jsem před resetováním videa nenašel žádný důvod

Nesetkal se někdo s podobným problémem a nenašel na to řešení?
Nenapadá někoho, co dalšího ještě vyzkoušet a zjistit důvod resetování přehrávaného videa?


Re:Přehrávání videa z Raspberry Pi na 4K obrazovce
« Odpověď #1 kdy: 31. 03. 2025, 08:07:17 »
Je divné, že by VLC nenapsalo důvod restartu přehrávání do svého logu.

Re:Přehrávání videa z Raspberry Pi na 4K obrazovce
« Odpověď #2 kdy: 31. 03. 2025, 08:08:41 »
Pokud problikne terminál - nezabije něco VLC (tedy nemá šanci nic zalogovat) a nerestartuje je to znovu (třeba z nějaké unity v systemd)?

Třeba nějaký oom-killer, že by VLC při 4k/60Hz žralo paměť?

Re:Přehrávání videa z Raspberry Pi na 4K obrazovce
« Odpověď #3 kdy: 31. 03. 2025, 12:34:50 »
do /boot/firmware/config.txt přidat řádek pro vynucení konkrétního rozlišení: video=HDMI-A-1:1920x1080M@60
tohle se nedava do config.txt, je to parametr kernelu takze do cmdline

Re:Přehrávání videa z Raspberry Pi na 4K obrazovce
« Odpověď #4 kdy: 03. 04. 2025, 09:54:17 »
video=HDMI-A-1:1920x1080M@60

Toto navíc není 4k.

Co ještě zkusit mplayer?

Kolik je gpu_mem? Pro to 4k možná musí být hodně 512, nebo 256?


Re:Přehrávání videa z Raspberry Pi na 4K obrazovce
« Odpověď #5 kdy: 03. 04. 2025, 10:43:41 »
Toto navíc není 4k.
to asi byla ta myslenka, prehravat  na 4k televizi 1080p video pomoci 1080p rozliseni a ne pomoci 4k rozliseni

Re:Přehrávání videa z Raspberry Pi na 4K obrazovce
« Odpověď #6 kdy: 03. 04. 2025, 12:54:18 »
Tak to stačí 4k zakázat pomocí hdmi_enable_4kp60=0, nebo to tam vůbec nepsat.

Re:Přehrávání videa z Raspberry Pi na 4K obrazovce
« Odpověď #7 kdy: 03. 04. 2025, 15:16:37 »
Tak to stačí 4k zakázat pomocí hdmi_enable_4kp60=0, nebo to tam vůbec nepsat.
asi nejaky kriticky den? staci precist prvni prispevek, to vybere 4kp30
tenhle flag zapina jen to p60 (asi neco trochu pretaktuje aby to slo)

Re:Přehrávání videa z Raspberry Pi na 4K obrazovce
« Odpověď #8 kdy: 03. 04. 2025, 19:29:26 »
máte pravdu, na 4kp30 jsem zapomněl

4k jde zakázat jednoduše takto:

Kód: [Vybrat]
hdmi_max_pixel_freq:0=200000000
hdmi_max_pixel_freq:1=200000000

https://forums.raspberrypi.com/viewtopic.php?t=255970

Re:Přehrávání videa z Raspberry Pi na 4K obrazovce
« Odpověď #9 kdy: 06. 04. 2025, 15:50:22 »
Tak to stačí 4k zakázat pomocí hdmi_enable_4kp60=0, nebo to tam vůbec nepsat.
asi nejaky kriticky den? staci precist prvni prispevek, to vybere 4kp30
tenhle flag zapina jen to p60 (asi neco trochu pretaktuje aby to slo)

Ano, to dává smysl. Díky za doplnění.
Parametr hdmi_enable_4kp60 jsem přidával už jako zoufalý pokus omezit vysoké rozlišení, které jsem původně podezříval z nestability VLC. I bez něj zvládla čtvrtá generace Raspberry Pi rozlišení 3840x2160, na TV tak byly po straně dva tmavé okraje a až s přidáním zmíněného parametru mělo video plné rozlišení 4096x2160 obrazovky.

Re:Přehrávání videa z Raspberry Pi na 4K obrazovce
« Odpověď #10 kdy: 06. 04. 2025, 15:50:45 »
máte pravdu, na 4kp30 jsem zapomněl

4k jde zakázat jednoduše takto:

Kód: [Vybrat]
hdmi_max_pixel_freq:0=200000000
hdmi_max_pixel_freq:1=200000000

https://forums.raspberrypi.com/viewtopic.php?t=255970

Děkuji za zajímavý tip. Někdy určitě vyzkouším.

Re:Přehrávání videa z Raspberry Pi na 4K obrazovce
« Odpověď #11 kdy: 06. 04. 2025, 15:52:47 »
Vyřešeno. Kdyby to někomu pomohlo, tak mně pomohlo následující.

Přehrávání řídím pomocí Systemd jednotky. Také jsem si prošel starší poznámky a narazil na parametr "--daemon", který jsem u VLC dříve používal. Po jeho doplnění už je přehrávání videa stabilní, i když se tento parametr nikde v dokumentaci VLC nevyskytuje.

Výsledná Systemd jednotka tak v mém případě vypadá takto:
Kód: [Vybrat]
[Unit]
Description=Play video on TV
After=network.target

[Service]
Type=forking
User=pi
Group=pi
ExecStart=/usr/bin/cvlc --fullscreen --no-audio --loop --no-osd --daemon /path/to/video.mp4
Restart=always

[Install]
WantedBy=multi-user.target