FreeTubeApp / FreeTube

An Open Source YouTube app for privacy
https://freetubeapp.io/
GNU Affero General Public License v3.0
13.37k stars 825 forks source link

[Feature Request]: export resolution and codec to mpv #2260

Open vmath3us opened 2 years ago

vmath3us commented 2 years ago

Guidelines

Problem Description

a configuração legado funciona perfeitamente dentro do freetube, porem, ao exportar para mpv, caso este não tenha sido configurado, vp9 é usado, e na resolução mais alta, porque em $@ é exportado somente o tempo e a velocidade. dispositivos antigos, sem suporte a vp9 por hardware, onde legado é mais útil, perdem desempenho

Proposed Solution

ao usar mpv como player externo, informar ao usuário que caso ele tenha yt-dl(p) instalado, será possível exportar em $@ o codec e a resolução. dado que mpv privilegia a cli ao arquivo de config, nenhum conflito será criado em legado 720, 2x, seria --ytdl-format="bv[height<=?720][vcodec=avc1]+ba" --speed=2 --time=x youtubeURL em dash 720, 2x, seria --ytdl-format="bv*[height<=?720]+ba" --speed=2 --time=x youtubeURL testado e perfeitamente funcional em mpv em flatpak (yt-dlp instalado no host)

Alternatives Considered

exportar diretamente o código de qualidade em yt-dlp, na maior parte dos casos (já vi excessões), 1080p legado é 137, 720p legado é 136, e assim sucessivamente. 144p porém geralmente é 160 então seria simplesmente --ytdl-format=ba+1xx --speed=x --time=x youtubeURL dado que essa numeração nem sempre é consistente, a solução anterior me parece a ideial

Issue Labels

ease of use improvement, improvement to existing feature, support for external software

Additional Information

No response

efb4f5ff-1298-471a-8973-3d47447115dc commented 2 years ago

@vmath3us Please change the issue contents to English. Without all the info we cant help u.

vmath3us commented 2 years ago

Problem description the legacy configuration works perfectly within freetube, however, when exporting to mpv, if it has not been configured, vp9 is used, and at the highest resolution, because in $@ only time and speed are exported. old devices, no hardware vp9 support, where legacy is more useful, lose performance

furthermore, freetube only shows legacy video options that have audio track included. most videos are at least 1080p60fps avc1, which works perfectly in combination with best m4a audio, using h264 acceleration on intel core 1 gen or newer, or even vaapi intel 2 gen or newer

Proposed solution ---display legacy resolutions blocking webm, not displaying only mp4 with audio---- when using mpv as an external player, inform the user that if he has yt-dl(p) installed, he will be able to export the codec and resolution in $@. since mpv privileges the cli to the config file, no conflict will be created in legacy 720, 2x, it would be --ytdl-format="bv[height<=?720][vcodec=avc1]+ba[ext=m4a]" --speed=2 --time=x youtubeURL in dash 720, 2x, would be --ytdl-format="bv[height<=?720]+ba" --speed=2 --time=x youtubeURL tested and perfectly working in mpv on flatpak (yt-dlp installed on host)

Alternatives considered directly export the quality code in yt-dlp, in most cases (I've seen exceptions), legacy 1080p is 137, legacy 720p is 136, and so on. 144p but usually it's 160 then it would simply be --ytdl-format=ba (or ba*[ext=m4a]")+1xx --speed=x --time=x youtubeURL given that this numbering is not always consistent, the previous solution seems to me the ideal by google translate

vmath3us commented 2 years ago

blocking webm and av01