Megjelent az MPlayer fork, az mpv-player új kiadása

Címkék

Az mpv egy MPlayer-fork, ami néhány évvel ezelőtt indult útjára. A projekt most bejelentette, hogy elérhető 0.35.0-s kiadása. Ez a kiadás FFmpeg 4.0-t vagy újabbat igényel.

Változások:

This release requires FFmpeg 4.0 or newer.

For packagers: Note that mpv's build system is only supported on Python 3. If you use the bootstrap.py script it will take care of this, otherwise you need to explicitly invoke the build system using python3 waf.

This release adds the Meson build system as an alternative to waf. It is supposed to be feature-complete but please report any issues you encounter.

Features

Added

  • vo_gpu_next: add new libplacebo-based renderer
  • build: add meson build support
  • vo_gpu_next: forward Dolby Vision metadata to libplacebo
  • ao_pipewire: add PipeWire audio backend
  • ao_sndio: readd this audio output again
  • vo_gpu_next: apply film grain if such metadata is present
  • drm: context_drm_egl: add support for enabling VRR
  • demux: add support for R128 replaygain tags
  • x11: support X Present extension
  • af_rubberband: add support for new engine in rubberband 3.0.0
  • hwdec/drmprime: add drmprime hwdec-interop (commonly found on SoCs)
  • various: support binding functions keys beyond F12
  • audio: support hotplug events for multiple AOs
  • sub: use Unicode linebreaking for non-ASS subs and OSD
  • vo_gpu: hwdec: add Android hwdec utilizing AImageReader
  • vo_dmabuf_wayland: add wayland VO displaying dmabuf buffers (vaapi or drm hwdec only)
  • lua/console: add history deduplication

Changed

  • filters: re-add vavpp hardware deinterlacing auto-filter (for --deinterlace)
  • swresample: don't forcibly clip audio on every conversion
  • ytdl_hook: always set HTTP headers to fix yt-dlp on certain sites

Removed

  • libmpv: remove opengl_cb API and other deprecated symbols
  • lua: remove deprecated mp.suspend(), resume() and resume_all()
  • build: raise minimum libplacebo version requirement to v4.157.0

Options and Commands

Added

  • vo_gpu_next: add --target-colorspace-hint to facilitate HDR passthrough
  • vo_gpu_next: new tone mapping options 'auto', 'spline', 'bt.2446a' and add --tone-mapping-crosstalk, --inverse-tone-mapping
  • vo_gpu: add --gamut-mapping-mode and --tone-mapping-mode
  • options: add 'always' choice to --stop-screensaver
  • options: add --osd-playing-msg-duration
  • player: add --cover-art-whitelist option
  • x11: add --x11-present option

Changed

  • ao_openal: enable --openal-direct-channels by default
  • options: only apply --sub-visibility to primary subtitles
  • options: make --cover-art-auto=exact the default
  • vo_gpu/hwdec: rename and introduce legacy names for some interops

Deprecated

  • vo_gpu: deprecate --gamma-factor and --gamma-auto

Removed

  • vo_gpu: remove --gamut-clipping, --gamut-warning, --tone-mapping-desaturate and --tone-mapping-desaturate-exponent (replacements available)
  • vulkan: remove --vulkan-disable-events

Fixes and Minor Enhancements

  • context_drm_egl: use gbm_surface_create_with_modifiers
  • context_drm_egl: add support for BGR surface formats
  • vo_gpu: vulkan: open DRM render fd when using VK_KHR_display
  • client API: use symbol visibility attributes
  • vo_gpu: hwdec_vaapi: add dma-buf modifiers support
  • wayland: fix various issues that could lead to jitter
  • osc: fix cache displaying 60s in some cases
  • player: make --keep-open=always work with --loop-playlist
  • opengl: support driver debug message under OpenGL ES
  • vo_gpu: opengl: fixes for OpenGL ES version and extension handling
  • f_decoder_wrapper: support frame rotation metadata (used by JPEG)
  • wscript: switch shaderc checks to pkgconfig
  • vd_lavc: enable hwdec for prores by default
  • vo_gpu: add HOOKED_gather for custom shaders
  • wayland, x11: sanitize window title for valid UTF-8
  • win32: apply geometry position to content instead of window
  • filter_kernels: add cosine window
  • vo_gpu: hwdec_vaapi: don't probe formats for irrelevant endpoints
  • vo_gpu: hwdec: load hwdec interops on-demand by default
  • stats.lua: graphs: fix bad rendering due to division by 0
  • hwdec: warn on unsupported --hwdec option value
  • x11: fix --screen-name option
  • x11: avoid wasteful rendering when possible
  • video/image_writer: add JPEG XL support
  • stream_lavf: enable ipfs, ipns and rist protocol support
  • osc.lua: fix crash when calling osc-tracklist while idle
  • player: add jxl, tiff, tif to list of image extensions
  • various: switch to new AVChannelLayout structure
  • lua: command_native_async: always run callback asynchronously (edge case)
  • context_x11egl: remove supposed transparency workaround
  • vo_gpu: fix 3DLUT precision
  • drm: avoid drmModeAtomicCommit races by blocking
  • drm_common: skip cards that don't support KMS for autodetection
  • hwdec/dmabuf_interop_gl: support basic multi-plane formats
  • misc/random: switch to internal xoshiro rng implementation
  • ytdl_hook: improve track detection
  • ad_lavc: strip non-normalized floats
  • mpv.metainfo.xml: add XDG appstream metadata manifest
  • mac: avoid unnecessary unsafe conversions; fixes crash in debug builds
  • af_scaletempo2: fix crash when the number of channels increases
  • wayland: correctly handle non-CLOCK_MONOTONIC clocks
  • x11: fix --on-all-workspaces option
  • sd_ass: improve handling of subtitles with unknown duration
  • hwdec/vaapi: improve probing of supported sw formats
  • demux_mf: enable support for QOI, PHM and HDR images
  • demux_mkv: add AVS2 and AVS3 to tag list
  • TOOLS/lua/autoload: fix incorrect duplicate file loading behavior
  • demux/codec_tags: support more WAVEFORMATEXTENSIBLE tags
  • sd_ass: never mangle colours on RGB video

This listing is not complete. Check DOCS/client-api-changes.rst for a history
of changes to the client API, and DOCS/interface-changes.rst for a history
of changes to other user-visible interfaces.

A complete changelog can be seen by running git log v0.34.0..v0.35.0
in the git repository or by visiting v0.34.0...v0.35.0

Hozzászólások

En egy ideje feladtam oket, amikor elegem lett hogy az osszes uj verziobol csak a) kivettek featureoket, b) elrontottak az rpi supportot, c) random mindig atneveztek egy par command line switchet, csak hogy elromoljon az osszes scriptem. Tortent azota barmi fejlodes ezugyben?

I hate myself, because I'm not open-source.

a) kivett feature-ökről nem tudok
b) pi-t nem használok, bár azt nem tartom elképzelhetetlennek, hogy gondok lehetnek rajta az mpv-vel, az pi szoftveres supportja mindig is kétes volt, lásd GPU driverek
c) ha kis is vesznek CLI kapcsolót (ez valóban előfordul), az nem random, hanem megelőzi egy hosszabb türelmi időszak, amikor a dokumentáció és maga a program is szól, hogy deprecated, legacy, ne használd, de működik, és csak utána veszik ki.

Én csak mpv-t használok már vagy 5-6 éve, nem volt vele soha bajom. Használtam volna még korábbbról is, de akkor még nem hallottam róla, így kimaradt egy ideig, míg nem ajánlotta az egyik linuxos a Prohardver fórumán. Azelőtt meg mplayer2-őt, azelőtt mplayer-t, már vagy 16 éve, azokkal sem volt gondom. VLC-t is használtam az évek során hébe-hóba, de nem szeretem, túl bloat és bugos is tud lenni néha. Így csakis mpv, minimalista, gyenge gépeken főleg must have, amin más lejátszók már csak akadva játszanak HD és afölötti felbontású videókat, meg az mpv integrálható böngésző pluginként, meg youtube-dl-lel. Még az audiofájlokat is ezzel nyitom általában meg (Vifm-en keresztül), főleg, ha csak néhányba akarok belehallgatni, vagy saját scripttel hallgatok online rádiókat. Dedikált audiolejátszót (cmus) ritkán veszek elő, ha nagyobb lejátszási listákat és albumgyűjteményeket hallgatok, csak akkor. Esetleg néha deadbeef-et beizzítok audiofájlokhoz, de azt csak akkor, ha tömeges konvertálást vagy tag-szerkesztést akarok. Videókhoz eszembe nem jutna mást használni, még Windowson is mpv-t teszek fel, ha olyan gép előtt lennék, amin még az a szutyok OS van.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

a) v4l supportot kidobtak valahol 0.30 kornyeken (szerintem azert vagyok 0.29.1-en, talan az volt az utolso ami mukodott). cdda-val is voltak bajaim, de ahogy most nezem az inkabb volt bug mint removed feature, ugyhogy az most megse szamit
b) pi szoftveresen eselytelen barmi 320x240-es felbontasunal nagyobb video lejatszasa, hardeveres support az meg olyan hogy nagyon sok csillag egyuttallasa szukseges hogy mukodjon
c) nem tudom, nekem tobbszor volt olyan hogy update utan hopp elromlott valami script mert random atneveztek egy command line parametert, egyik verziorol a kovetkezore, 0 deprecation warning vagy akarmi nelkul.  Lehet hogy a doksi melyen valahol el volt rejtve hogy ez deprecated, de nem fogom minden update utan vegigolvasni 0-rol a manpaget hatha deprecated lett valami switch amit egy 1.5 evvel ezelott altalam irt script hasznal, es meg emlekezzek is ra. Es a legtobb az olyan volt hogy csak atneveztek egy switchet, csakhogy nehogy az legyen mint mplayernel, mert mas ertelmes magyarazat nem volt ra.

I hate myself, because I'm not open-source.

a) Valóban, most nézem, a v4l2-t kidobták, de állítólag ffmpeg-gel összedolgozva továbbra is működik:
mpv av://v4l2:/dev/video0

b) attól is függ, hogy melyik Pi-t nézzük, az újabbak (3-4A/B) szerintem a HD-t is simán viszik CPU renderrel. FullHD-t nem.

c) Hidd el, hogy nem csak a doksi mondja, hanem mikor fut az mpv, kimenetben is írni szokta, hogy ha elavult kapcsolóval lett hívva vagy a config fájlban van elavult paraméter (ezek megegyeznek a kapcsolókkal), ettől még működik a kapcsoló, amíg meg nem szüntetik. Maximum futtattad a scriptet, de a kimenetét nem nézted, ahol reklamált érte, hogy deprecated, csak azt láttad, hogy működik, aztán egyszer csak nem. Nem hibáztatlak egyébként, könnyű elsiklani felette, én is csak véletlenül vettem észre 1-2 éve, hogy voltak ilyen kimeneti meg postprocessing kapcsolók, amikért rinyált pirossal a kimenetben, mert CLI-ből hívtam, és nem fájlkezelőből, ahogy szokásosan. Anélkül lehet én se veszem észre a mai napig.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

a) Nekem valami csunyabb workaround remlik, de lehet az csak akkor van ha kell felbontast allitani, etc, es nem csak mindenbol a defaultot akarod hasznalni.

b) Nekem 2-es van, az meg egy dvd felbontasu videot se tud szoftveresen lejatszani ertelmes FPS-el, viszont ha van HW dekoder, akkor siman megy a fullHD is. (De igazabol lehet meg fogok szabadulni tole, mert eleg sok szopas van vele, lassu mint a dog, ha pont nincs abban a 3 formatumban a video amit a HW dekoder megeszik, akkor eselytelen lejatszani, a kernele az valami szarrapatchelt fos, egyszer sikerult valami 5.10-es kernelt leforditani ra ami pont mukodik, 5.15-osbol meg nem sikerult olyat forditanom ahol mukodne az sd kartya vagy az usb vagy az ethernet vagy ugy kb barmi az fb-n kivul, van ket parhuzamos GPU implementacio, kb mint az nvidia-nal desktopon, csak itt annyival rosszabb hogy az appok egy random subsetje csak az egyikkel mukodik, a masik subsetje meg a masikkal, stb.)

c) Konzolbol szoktam futtatni, nincs lenyeletve a kimenete, ugyhogy fel kellett volna tunjon. Ugyhogy most vagy az van hogy deprekalva volt 1 minor verzioig amit pont sikerult atugranom (tobbszor is, konzisztensen), vagy utobbi idoben mar jobban csinaljak. Nagyon jo hogy ezek a scriptjeim pont nincsenek git-ben, mert akkor most meg tudnam nezni mi volt.

I hate myself, because I'm not open-source.

Na, közben tegnap este Archra megjött a 0.35.0. Ma be is szopatott, ezt írta minden videóra:

amdgpu_device_initialize: amdgpu_query_info(ACCEL_WORKING) failed (-13)
amdgpu: amdgpu_device_initialize failed.
amdgpu_device_initialize: amdgpu_query_info(ACCEL_WORKING) failed (-13)
amdgpu: amdgpu_device_initialize failed.
[vo/opengl] Failed to create GBM surface.
[vo/opengl] Failed to setup GBM.
[vo/opengl] Failed initializing any suitable GPU context!
Error opening/initializing the selected video_out (--vo) device.

Szerencse, hogy nem tértem ki a hitemből, hanem frissítettem megint, erre már befigyelt a tárolóban a 0.35.0-2 build, és az fixálta ezt szerencsére. Valószínű az 1. build fordítását elkeffintette a csomagfenntartó, nem fordított bele valami drivertámogatást. Majdnem azt hittem, hogy az mpv hibája.

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”

Szamomra egy megbocsathatatlan commit volt:

macOS - F-et megnyomva olyan full screent csinalt ami ugy mukodott ahogy vartam, replace content az egesz screenen es kesz. Regen. Lecsereltek a macOS-es fullscreenre, ami ugy szar ahogy van, masik virt desktopra dob ha bejovo hivasod van, mikozben megy tovabb a film es vissza kell menni megallitani es visszatekerni.

Miutan sokan panaszkodtak, evek utan nagy nehezen visszatettek egy kapcsoloval elerheto "regi F betu" viselkedest - de azzal a kapcsoloval Finderbol trivialis tarsitani, conf file entry nincs hozza, es megy az anyazas.

Kar ilyen szar bugfeature-rel elrontani, de igy is ez a leghasznalhatobb lejatszo korunkban.

Szerkesztve: 2022. 11. 14., h – 12:51

Back to the 2000's...

Fixes and Minor Enhancements: [...]*[...]

Nagyon MPlayer feeling. :-)

READY.
󠀠󠀠‎‏‏‎▓

Persze, hogy azonos feeling, mert közvetve annak a forkja. Az mpv az mplayer2-őn alapul, ami meg az mplayer-en. De az se véletlen, hogy az ffmpeg is hasonló, merített az is a mencoderből. Ez a CLI meg GUI nélküli OSD, billentyűs irányítás a mai napig hatékony koncepció. Akár még X se kell a lejátszáshoz, tty-ból is lehet videóbuffert nyitogatni, vagy scriptelésnél is jól jön, hogy CLI. Plusz cserébe a hardverigénye is kisebb, régi, ergya gépeken jobban játszik le erőforrás-igényesebb videókat, olyanokat, amik más lejátszóban meg böngészőben akadnak, mert adott esetben a régi GPU miatt hardveres lejátszás sem lehetséges. Memóriát is jobban kíméli.

Plusz szerintem nagyon hatékony ez a billentyűzetorientált irányítás, meg a minimalista OSD-s felület. Nem terelik el a figyelmet a videótartalomból a menük, eszköztár, és minden funkció elérhető egy közvetlen billentyűre, igaz azokat fejben kell tartani (vagy átkonfigolni), bár ebből sem használ mindent az ember (csak szóköz, kurzormozgató nyilak, kilépés, hangerő, stb.), meg egéreseményeket is bevesz (amik ugyanúgy működnek, ahogy a hagyományos GUI lejátszóknál). GUI amúgy sem kéne, pl. a videók 99%-át fájlkezelőből nyitogatom, 1%-ban meg CLI-ből vagy scriptből, így menük nem kellenek (Fájl, megnyitás, tulajdonságok, stb.), a beállításokat meg konfigfájlból veszi: ~/.config/mpv/mpv.conf és input.conf. Szépen be lehet lőni mindent pár sorban a konfigjában hardveres dekódolás, hardveresen gyorsított kimenet, CPU használata esetén többszálú dekódolás, teljes képernyőben megnyitás (csak videó esetén), deafult hangerő, preferált nyelve a hangsávnak, feliratnak, stb., így még felparaméterezgetni se kell állandóan CLI-ből, ráadásul ez a konfig hordozható gépek, rendszerek között.

Van egyébként az mpv-hez grafikus frontend dögivel, pl. SMPlayer, Celluloid, Kylin, Baka Player, stb., de overkill, felesleges.

Anno DOS-on is szerettem a QuickView (qv) progit, az is ugyanilyen CLI/TUI lejátszó volt, grafikus bufferkimenetben, audiót, videót, képeket is támogatva (mpv tud képeket is megnyitni, szintén zenész), úgy értve, hogy nem csak volt, hanem még létezik, pár évvel ezelőttig simán fejlesztették is, 2016-os belőle a legutolsó verzió, weblapja is üzemel. Igaz az fizetős. Ezek a régi koncepciók, szoftverek nem mennek sehova, ma is relevánsak. Pl. a DOS-os cubic playert is fejlesztik még open cubic player formájában, elérhető nem csak DOS-ra, hanem az összes többi OS-re is, meg a Winamp-nak is vannak klónjai, az XMMS igaz már nem használható (ki nem elégíthető, elavult függőségek okán), de van helyette egy rakat, Audacious, QMMP, Windowson új Winamp, AIMP, stb.. Zenelejátszásnál is dettó működik a CLI/TUI, pl. moc, cmus, ncmpcpp vagy más mpd-kliens, stb..

Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”