Raspberry Pi 4 model B zapnutí přehrávání videí ve 4k na 60Hz

Autor: | 18. 6. 2022 | IT, Linux

Štítky: linux | raspberry pi

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

Další články