Mám distribuci OSMC a zkoušel jsem maximální kvalitu videí. Pokud chci vyzkoušet přehrávání videí v kvalitě 4k na 60Hz, tak je nutné přidat direktivu do souboru /boot/config.txt. Zároveň je dobré zdrůraznit, že pak je možné používat pouze jeden z HDMI výstupů – nikoli 2. Pokud bych chtěl používat 2 HDMI výstupy, tak nemohu zase zapnout video na 60Hz, ale musí být na 30Hz.
Zapnutí 4K@60Hz
Inspiroval jsem se v tomto návodu. Editoval jsem soubor /boot/config.txt a přidal jsem do něj řádek:
hdmi_enable_4kp60=1
Poté jsem restartoval Raspberry a bylo možné přehrávat videa vee 4k na 60Hz. Opravdový problém ovšem bylo otestování správné funkčnosti, protože videa ve 4k@60Hz nejsou v současné době tak častá. Nejdříve jsem zkusil spustit video z Youtube na RPi. Video vytížilo procesor na maximum a sekalo se. Zatím jsem s doplňkem z Youtube moc neexperimentoval, ale Youtube jednoduše dodávalo video ve formátu (VP9), ve kterém RPi používalo softwarové (pomalé dekódování), místo toho, aby využívalo hardwarové. Nakonec jsem to řešil tak, že jsem na Youtube našel video ve 4k, pomocí utility youtube-dl jsem ho stáhnul a překódoval do video kodeku H265, kde má Raspberry hardwarovou podporu.
Utilita Youtube-dl
Utilita mimo jiné slouží ke stahování videí z Youtube. Po troše pročítání jsem zjistil, jak vypsat formáty, ve kterých je video na youtube.
youtube-dl -F https://www.youtube.com/watch?v=CYYtLXfquy0 [info] Available formats for CYYtLXfquy0: format code extension resolution note 249 webm audio only tiny 47k , webm_dash container, opus @ 47k (48000Hz), 634.94KiB 250 webm audio only tiny 63k , webm_dash container, opus @ 63k (48000Hz), 842.32KiB 251 webm audio only tiny 125k , webm_dash container, opus @125k (48000Hz), 1.63MiB 140 m4a audio only tiny 129k , m4a_dash container, mp4a.40.2@129k (44100Hz), 1.67MiB 394 mp4 256x144 144p 71k , mp4_dash container, av01.0.00M.08@ 71k, 30fps, video only, 951.09KiB 160 mp4 256x144 144p 79k , mp4_dash container, avc1.4d400c@ 79k, 30fps, video only, 1.03MiB 278 webm 256x144 144p 79k , webm_dash container, vp9@ 79k, 30fps, video only, 1.03MiB 395 mp4 426x240 240p 138k , mp4_dash container, av01.0.00M.08@ 138k, 30fps, video only, 1.79MiB 242 webm 426x240 240p 143k , webm_dash container, vp9@ 143k, 30fps, video only, 1.86MiB 133 mp4 426x240 240p 176k , mp4_dash container, avc1.4d4015@ 176k, 30fps, video only, 2.28MiB 396 mp4 640x360 360p 288k , mp4_dash container, av01.0.01M.08@ 288k, 30fps, video only, 3.72MiB 243 webm 640x360 360p 345k , webm_dash container, vp9@ 345k, 30fps, video only, 4.46MiB 134 mp4 640x360 360p 348k , mp4_dash container, avc1.4d401e@ 348k, 30fps, video only, 4.50MiB 397 mp4 854x480 480p 521k , mp4_dash container, av01.0.04M.08@ 521k, 30fps, video only, 6.74MiB 244 webm 854x480 480p 536k , webm_dash container, vp9@ 536k, 30fps, video only, 6.93MiB 135 mp4 854x480 480p 571k , mp4_dash container, avc1.4d401f@ 571k, 30fps, video only, 7.39MiB 247 webm 1280x720 720p 1013k , webm_dash container, vp9@1013k, 30fps, video only, 13.09MiB 398 mp4 1280x720 720p60 1511k , mp4_dash container, av01.0.08M.08@1511k, 60fps, video only, 19.52MiB 136 mp4 1280x720 720p 1720k , mp4_dash container, avc1.4d401f@1720k, 30fps, video only, 22.22MiB 302 webm 1280x720 720p60 2024k , webm_dash container, vp9@2024k, 60fps, video only, 26.15MiB 298 mp4 1280x720 720p60 2692k , mp4_dash container, avc1.4d4020@2692k, 60fps, video only, 34.78MiB 399 mp4 1920x1080 1080p60 2777k , mp4_dash container, av01.0.09M.08@2777k, 60fps, video only, 35.88MiB 303 webm 1920x1080 1080p60 3466k , webm_dash container, vp9@3466k, 60fps, video only, 44.78MiB 299 mp4 1920x1080 1080p60 4747k , mp4_dash container, avc1.64002a@4747k, 60fps, video only, 61.32MiB 400 mp4 2560x1440 1440p60 6586k , mp4_dash container, av01.0.12M.08@6586k, 60fps, video only, 85.09MiB 308 webm 2560x1440 1440p60 9713k , webm_dash container, vp9@9713k, 60fps, video only, 125.48MiB 401 mp4 3840x2160 2160p60 13317k , mp4_dash container, av01.0.13M.08@13317k, 60fps, video only, 172.04MiB 315 webm 3840x2160 2160p60 22303k , webm_dash container, vp9@22303k, 60fps, video only, 288.13MiB 18 mp4 640x360 360p 604k , avc1.42001E, 30fps, mp4a.40.2 (48000Hz), 7.81MiB 22 mp4 1280x720 720p 1849k , avc1.64001F, 30fps, mp4a.40.2 (44100Hz) (best)
Tady je dobré si všimnout, že audio a video jsou zvlášť. Původně jsem postupoval tak, že jsem stáhl pouze video (zvolil jsem řádek začínající 315) a to jsem pak překódoval v grafické utilitě handbrake. Příkaz ke stažení videa.
youtube-dl -f 315 https://www.youtube.com/watch?v=CYYtLXfquy0
Pak jsem ale víc objevoval utilitu youtube-dl a tady je pár příkazů, které mohou usnadnit práci. Tento příkaz stáhne video v nejlepší video kvalitě i s audiem.
youtube-dl -f bestvideo+bestaudio https://www.youtube.com/watch?v=CYYtLXfquy0
Pokud bych chtěl nakombinovat konkrétní audio a video z možných formátů, tak bych volil tento příkaz:
youtube-dl -f 315+140 https://www.youtube.com/watch?v=CYYtLXfquy0
Nebo také:
youtube-dl -f 315+bestaudio --merge-output-format mp4 https://www.youtube.com/watch?v=CYYtLXfquy0
A jako poslední příkaz jsem objevil, že utilita umí i překonvertovat video do jiného formátu. Na konvertování slouží parametr –postprocessor-args a syntaxe mi přijde identická se syntaxí ffmpeg. Tady uvádím příklad stažení videa a audia v nejlepší kvalitě a překódování video do kodeku H265:
youtube-dl -f 315+140 https://www.youtube.com/watch?v=CYYtLXfquy0 --postprocessor-args "-c:v libx265" --merge-output-format mp4
Užitečné zdroje
- https://www.makeuseof.com/run-your-raspberry-pi-at-4k-60hz/
- https://discourse.osmc.tv/t/howto-install-a-vnc-server-on-the-raspberry-pi/1517
- https://raspberrytips.com/remote-desktop-raspberry-pi/
- https://askubuntu.com/questions/486297/how-to-select-video-quality-from-youtube-dl
- https://github.com/ytdl-org/youtube-dl/issues/17134