- mpv एक कमांड लाइन-केंद्रित मुक्त और ओपन सोर्स मीडिया प्लेयर है, जो कई मीडिया फ़ाइल फ़ॉर्मैट, ऑडियो·वीडियो codecs और subtitle फ़ॉर्मैट को सपोर्ट करता है
- शक्तिशाली scripting फ़ीचर और user scripts के संग्रह की वजह से बेसिक प्लेयर को अपनी ज़रूरत के अनुसार आसानी से बढ़ाया जा सकता है
- मिनिमल डिज़ाइन बनाए रखते हुए यह अलग GUI नहीं देता, लेकिन वीडियो पर बुनियादी नियंत्रण के लिए एक छोटा on-screen controller देता है
- OpenGL, Vulkan, D3D11 आधारित उच्च-गुणवत्ता वीडियो output और hardware decoding API सपोर्ट की मदद से अलग-अलग environments में playback quality को समायोजित किया जा सकता है
- शुरुआत से library integration को ध्यान में रखकर बनाया गया C API मौजूद है, जिससे mpv को दूसरे applications के अंदर एम्बेड करके इस्तेमाल किया जा सकता है
कमांड लाइन-केंद्रित मीडिया प्लेयर
- mpv कमांड लाइन में इस्तेमाल होने वाला एक मुक्त मीडिया प्लेयर है
- यह कई मीडिया फ़ाइल फ़ॉर्मैट, ऑडियो·वीडियो codecs और subtitle फ़ॉर्मैट को सपोर्ट करता है
scripting और नियंत्रण का तरीका
- scripting फ़ीचर के ज़रिए प्लेयर के व्यवहार को काफ़ी हद तक विस्तार दिया जा सकता है
- user scripts wiki के User Scripts में एकत्र हैं
- मिनिमलिज़्म पर ज़ोर होने के कारण अलग GUI उपलब्ध नहीं कराया जाता
- बुनियादी नियंत्रण के लिए वीडियो पर दिखने वाला छोटा on-screen controller इस्तेमाल किया जा सकता है
वीडियो output और decoding
- OpenGL, Vulkan, D3D11 आधारित वीडियो output उपलब्ध है
- वीडियो प्रेमियों के लिए playback फ़ीचर भी शामिल हैं
- उच्च-गुणवत्ता algorithm-आधारित video scaling
- color management
- frame timing
- interpolation
- HDR
- ज़्यादातर platforms पर कई hardware decoding API का उपयोग किया जा सकता है
- hardware decoding को चलने के दौरान ज़रूरत पड़ने पर सक्रिय किया जा सकता है
application integration और development status
- mpv ने दूसरे applications में आसान integration के लिए शुरुआत से ही C API डिज़ाइन किया है
- API client.h में है
- project पर सक्रिय रूप से development जारी है, और फ़ोकस code refactoring, cleanup और feature addition पर है
- feature requests या patches mpv GitHub issues के माध्यम से भेजे जा सकते हैं
संबंधित resources
- Installation: इंस्टॉलेशन गाइड
- Source Code Repository: source code repository
1 टिप्पणियां
Hacker News की राय
mpv एक शानदार मीडिया प्लेयर है। काफ़ी minimal है, performance भी अच्छी है, और जो काम करना है उसे ठीक से करता है
author का locale को लेकर गुस्से से भरा एक शानदार commit भी है: https://github.com/mpv-player/mpv/commit/1e70e82baa9193f6f02... हँसते हुए पढ़ने लायक है
Zig, Go, Rust वगैरह कई languages की standard libraries, C standard library या POSIX API से कहीं आगे हैं। सिर्फ़ यही उन्हें इस्तेमाल करने की पर्याप्त वजह है
25 साल पहले Spolsky ने “everything you wanted to know about Unicode and character sets” नाम का लेख लिखा था, जो उन लोगों के लिए भी उपयोगी हो सकता है जिन्होंने Unicode/UTF के बाद की दुनिया ही देखी है
errnoके साथ करने की कल्पना करने वाली बात पर, असल में ऐसा हुआ हुआ एक उदाहरण है।localtime,localtime_r,tzsetजैसे time functions वही हैंवे locale पर निर्भर हैं, इसलिए locale के पास का क्षेत्र तो है ही, लेकिन timezone भी global state है, इसलिए POSIX-portable multithreaded C code में standard API भर से किसी दूसरे timezone का समय पाना असंभव है
wchar_tदोनों टूटे हुए legacy brain-dead हालात हैं। C/POSIX standard committees में कोई सक्षम व्यक्ति होता तो इन्हें बहुत पहले deprecate या remove कर दिया गया होता।gets()को तो हटाया ही था न। जिन लोगों को जानकारी नहीं है उन्हें यह अपमानजनक लग सकता है, इस भावनात्मक विस्फोट को सही ठहराने के लिए मैं एक लंबा लेख लिखूँगा। जिन्हें तीखी भाषा असहज करे, वे इसे धार्मिक साहित्य समझें।”सच में legendary है
कुछ साल पहले Linux पर इस्तेमाल करना शुरू किया था, और अब यह Android tablet तक मेरे सभी devices पर installed है। perfect है। Minimal defaults, समझदार settings, तेज़ speed, बस अच्छे से काम करता है
SSH के पार से भी native playback कर पाना तो कमाल है:
mpv sftp://mit@nyx/home/mit/Work/merged.mp4हाल में वीडियो rotate करने के लिए shortcut चाहिए था; दूसरे players में यह आसानी से होता नहीं लगा, और mpv में बस
input.confमेंr cycle_values video-rotate "90" "180" "270" "0"डालना पड़ाmpvLinux पर हों तो
mpv.confमेंhwdec=autoजोड़कर hardware acceleration चालू करना न भूलें। AMD/Intel/NVIDIA पर काम करता हैhttps://interfacinglinux.com/2024/01/10/hardware-acceleratio...
vo=gpu-next,gpu-api=vulkan,hwdec=vulkan,gpu-context=waylandvkअगर Vulkan video काम न करे तो
hwdec=vulkanकोhwdec=vaapiसे बदल सकते हैंpacmanसे mpv install करके 4K वीडियो चलाया, तो CPU fan तुरंत घूमने लगा, औरtopमें कई cores इस्तेमाल होते दिखे। इस HN thread को नीचे scroll करते हुएhwdec=autoके बारे में पता चलाmplayer और VLC इस्तेमाल करने वाले के तौर पर तुरंत सवाल आया: “maintainers इसे default न बनाकर कौन-सा trade-off स्वीकार करना चाहते हैं?”
यह project बहुत पुरानी lineage वाला है; पहले इसे mplayer के नाम से जाना जाता था। 2001 तक पीछे जाने वाले 5 लाख commits हैं, और वह भी CVS repository को Subversion में convert किए जाने के बाद की गिनती है
Ubuntu चलाने वाले fanless Minix z100 पर streamlink और mpv साथ इस्तेमाल करने से Olympics देखने का setup लगभग perfect था
https://streamlink.github.io/
https://www.minix.com.hk/products/z100-0db-fanless-n100-mini...
सुनने में मूर्खतापूर्ण लग सकता है, लेकिन निजी तौर पर मेरे लिए मुख्य फीचर यह है कि कई subtitles एक साथ दिखाए जा सकते हैं। tracks, offset, position, size वगैरह कुछ shortcuts से आसानी से सेट किए जा सकते हैं
कोई भी streaming service यह सुविधा नहीं देती, और जो subtitle languages उपयोगकर्ता की location से “संबंधित नहीं” मानी जाती हैं, उन्हें actively छिपाती है। ऐसी services का सम्मान करना मुश्किल है
--sid1=और--sid2=से शुरू करने पर यह काफी अच्छी तरह काम करता हैमैं और मेरा जीवनसाथी, हम दोनों native English speaker नहीं हैं और हमारी मातृभाषाएँ भी अलग-अलग हैं। मैं English में काफी सहज हूँ, लेकिन कुछ dialects मुश्किल लगते हैं और audio noisy हो तो कभी-कभी शब्द छूट जाते हैं, इसलिए मैं English subtitles पसंद करता हूँ। मेरे जीवनसाथी को अपनी मातृभाषा के subtitles पसंद हैं
कई subtitles दिखा पाने से screen space थोड़ा खर्च होता है, लेकिन बदले में हम दोनों को अपनी पसंद का viewing experience मिल जाता है, इसलिए यह पूरी तरह worth it है
मैंने इस बारे में लिखा है: https://www.baeldung.com/linux/mpv-subtitles-automatic. हालांकि supported subtitle formats की documentation कम थी, यह अफसोसजनक था, और असल supported formats देखने के लिए ffmpeg code में झाँकना पड़ा
इसके अलावा https://subdl.com/ और https://github.com/alexanderwink/subdl command line से subtitles खोजने और download करने के लिए अच्छे resources हैं
mpv हमेशा अच्छी तरह काम करता आया है, और उस पर फेंकी जाने वाली लगभग हर चीज़ को आसानी से handle करता रहा है
अब शायद चीज़ें बदल गई हों, लेकिन कुछ साल पहले जब पहली बार इससे परिचय हुआ, तो इस project को दूसरे players से अलग करने वाली बात यह लगी कि यह accuracy और accurate playback को बहुत अहमियत देता है। उदाहरण के लिए, जिन files में VLC पर color reproduction थोड़ा अजीब होने जैसी विशिष्ट समस्याएँ दिखती थीं, वे mpv में perfectly play हुई हैं
हालांकि ऐसा क्यों है, यह मैं ठीक से नहीं जानता। क्योंकि मुझे लगता है कि दोनों कई codecs के लिए मोटे तौर पर उन्हीं libraries पर निर्भर करते हैं
mpv शानदार है। बिना किसी खास क्रम के, ये recommendations हैं: Seeds of Might/JySzE का default
mpv.conf, feature-rich लेकिन फिर भी minimal UI uosc, uosc या दूसरे custom UI के साथ इस्तेमाल होने वाला तेज़ thumbnailer thumbfast, और audio के आधार पर openings वगैरह skip करने वाला Eisa01 का SmartSkip[1] Windows: https://gist.github.com/JySzE/db4149cad726b3b6955dca8d47a197..., macOS: https://gist.github.com/JySzE/34ee131da3974811a9469e1e3b7d4d...
[2] https://github.com/tomasklaen/uosc
[3] https://github.com/po5/thumbfast
[4] https://github.com/Eisa01/mpv-scripts#smartskip
openings या ending credits को reliably खोजने के लिए non-local analysis चाहिए। मूल रूप से, एक season या पूरी series के episodes के बीच common रूप से आने वाले audio segments खोजने पड़ते हैं
मैंने यह कर सकने वाला CLI tool बनाया था, लेकिन सच कहूँ तो यह “finished” state में नहीं है और शायद आगे भी नहीं होगा। शुरुआती लक्ष्य Jellyfin plugin develop करना था, लेकिन बाद में पता चला कि ऐसा plugin पहले से मौजूद है
https://github.com/aksiksi/needle
यह अभी मौजूद सबसे अच्छा media player है। शानदार minimal UI, hardware acceleration का इस्तेमाल, और बस video play कर देना—ये बातें अच्छी लगती हैं
यह लगातार इतना अच्छा है कि शायद यही उन वजहों में से एक है जिनके चलते मैं जीवनभर piracy करता रहूँगा। streaming services players पर millions of dollars खर्च करती हैं, फिर भी इस स्तर के आसपास भी नहीं पहुँचतीं
MPV में बहुउपयोगी scripts हैं। उदाहरण के लिए, आप जो वीडियो देख रहे हैं उसे काट या crop कर सकते हैं[1]
ऐसे फीचर भी keyboard shortcut में डाल सकते हैं जो दूसरे players में मैंने नहीं देखे। कभी-कभी देखे जा रहे scene की brightness और color को normalize करने के लिए
input.confमेंn vf toggle normalize=smoothing=100लिखता हूँ, लेकिन hardware decoding इस्तेमाल करने पर यह काम नहीं कर सकतावीडियो rotation को
Ctrl+r no-osd cycle-values video-rotate "90" "180" "270" "0"की तरह सेट करते हैं[1] <https://github.com/occivink/mpv-scripts>
[1]: https://gist.github.com/madeindjs/f33225cf4d8fdc9f61e0fe3ebe...
एक बात जो लोग अच्छी तरह नहीं जानते: mpv न सिर्फ YouTube videos stream कर सकता है, बल्कि CLI में
mpv ytdl://ytsearch:queryसे YouTube search भी कर सकता हैसाथ ही ASCII, sixel, kitty image protocol का इस्तेमाल करके terminal के अंदर सीधे videos चलाए जा सकते हैं; इनमें kitty image protocol की quality जबरदस्त रूप से बेहतर है
अब तक mpv में मेरा सबसे पसंदीदा feature यह है कि content पर CRT shaders real time में apply किए जा सकते हैं। यह तरीका HD video को सचमुच 240p buffer में ठीक से downscale करने के बाद, shader के जरिए screen resolution के हिसाब से upscale करने का काम भी संभालता है
https://i.imgur.com/akmgzxX.png
https://github.com/hhirtz/mpv-retro-shaders