- mpv adalah pemutar media bebas dan open-source yang berfokus pada baris perintah, serta mendukung berbagai format file media, codec audio·video, dan format subtitle
- Berkat kemampuan scripting yang kuat dan kumpulan skrip pengguna, pemutar dasarnya mudah diperluas sesuai kebutuhan
- Dengan tetap mempertahankan desain minimalis, tidak ada GUI terpisah, tetapi tersedia pengontrol kecil di layar untuk operasi dasar di atas video
- Dukungan keluaran video berkualitas tinggi berbasis OpenGL, Vulkan, dan D3D11 serta API decoding perangkat keras memungkinkan kualitas pemutaran disesuaikan di berbagai lingkungan
- Tersedia C API yang sejak awal dirancang untuk integrasi pustaka, sehingga mpv dapat disematkan dan dimanfaatkan di dalam aplikasi lain
Pemutar media yang berfokus pada baris perintah
- mpv adalah pemutar media bebas yang digunakan dari baris perintah
- Mendukung berbagai format file media, codec audio·video, dan format subtitle
Scripting dan cara pengoperasian
- Dengan fitur scripting, perilaku pemutar dapat diperluas secara luas
- Skrip pengguna dikumpulkan di User Scripts pada wiki
- Mengusung minimalisme sehingga tidak menyediakan GUI terpisah
- Untuk operasi dasar, dapat digunakan pengontrol di layar kecil yang ditampilkan di atas video
Keluaran video dan decoding
- Menyediakan keluaran video berbasis OpenGL, Vulkan, dan D3D11
- Juga mencakup fitur pemutaran untuk penggemar video
- Penskalaan video berbasis algoritme berkualitas tinggi
- Manajemen warna
- Pengaturan waktu frame
- Interpolasi
- HDR
- Di sebagian besar platform, berbagai API decoding perangkat keras dapat dimanfaatkan
- Decoding perangkat keras dapat diaktifkan saat dijalankan ketika diperlukan
Integrasi aplikasi dan status pengembangan
- mpv merancang C API sejak awal agar mudah diintegrasikan ke aplikasi lain
- API tersedia di client.h
- Proyek ini masih dikembangkan secara aktif dan berfokus pada refaktorisasi kode, perapian, dan penambahan fitur
- Permintaan fitur atau patch dapat dikirim melalui mpv GitHub issues
Sumber daya terkait
- Installation: panduan instalasi
- Source Code Repository: repositori kode sumber
1 komentar
Komentar Hacker News
mpv adalah pemutar media yang luar biasa. Cukup minimalis, performanya bagus, dan melakukan tugasnya dengan benar
Ada juga commit keren ketika penulisnya meluapkan kemarahan soal locale: https://github.com/mpv-player/mpv/commit/1e70e82baa9193f6f02... layak dibaca sambil tersenyum
Standard library dari berbagai bahasa seperti Zig, Go, Rust, dan lainnya jauh lebih maju daripada standard library C atau API POSIX. Itu saja sudah cukup menjadi alasan untuk menggunakannya
25 tahun lalu Spolsky menulis artikel “everything you wanted to know about Unicode and character sets”, dan itu masih bisa bermanfaat bahkan bagi orang-orang yang hanya hidup di dunia setelah Unicode/UTF
errnodiperlakukan seperti rusaknya API locale C, sebenarnya ada contoh yang memang seperti itu. Yaitu fungsi waktu sepertilocaltime,localtime_r, dantzsetKarena bergantung pada locale, ini memang area yang berdekatan dengan locale, tetapi zona waktu juga merupakan state global, sehingga dalam kode C multithread yang portabel POSIX, tidak mungkin mendapatkan waktu di zona waktu lain hanya dengan API standar
wchar_tsama-sama warisan rusak yang mati otak. Jika komite standar C/POSIX punya orang yang kompeten, keduanya sudah lama dideprekasi atau dihapus.gets()saja dihapus, bukan? Untuk membenarkan ledakan emosi ini, yang mungkin terasa menghina bagi yang belum tahu, saya akan menulis penjelasan panjang. Jika bahasa keras membuat Anda tidak nyaman, anggap saja ini sebagai teks religius.”Benar-benar legendaris
Saya mulai memakainya di Linux beberapa tahun lalu, dan sekarang terpasang di semua perangkat saya sampai tablet Android. Sempurna. Default yang minimalis, konfigurasi yang masuk akal, cepat, dan memang berfungsi dengan baik
Bahkan bisa memutar secara native lewat SSH, ini luar biasa:
mpv sftp://mit@nyx/home/mit/Work/merged.mp4Baru-baru ini saya butuh shortcut untuk memutar orientasi video, dan sepertinya tidak mudah dilakukan di pemutar lain; di mpv cukup menambahkan
r cycle_values video-rotate "90" "180" "270" "0"keinput.confmpvKalau di Linux, jangan lupa mengaktifkan akselerasi hardware dengan menambahkan
hwdec=autokempv.conf. Ini bekerja di AMD/Intel/NVIDIAhttps://interfacinglinux.com/2024/01/10/hardware-acceleratio...
vo=gpu-next,gpu-api=vulkan,hwdec=vulkan,gpu-context=waylandvkJika video Vulkan tidak berjalan,
hwdec=vulkanbisa diganti menjadihwdec=vaapipacmandan mencoba memutar video 4K; kipas CPU langsung berputar, dan ditopterlihat beberapa core digunakan. Saat terus menggulir thread HN ini, saya baru tahu tentanghwdec=autoSebagai pengguna mplayer dan VLC, pertanyaan yang langsung muncul adalah, “trade-off apa yang ingin diterima para maintainer dengan tidak menjadikannya default?”
Proyek ini punya silsilah yang sangat panjang; dulu dikenal sebagai mplayer. Ada 500 ribu commit yang mundur sampai tahun 2001, itu pun dihitung sejak repository CVS dikonversi ke Subversion
Menggunakan streamlink bersama mpv di Minix z100 fanless yang menjalankan Ubuntu memberikan pengalaman menonton Olimpiade yang hampir sempurna
https://streamlink.github.io/
https://www.minix.com.hk/products/z100-0db-fanless-n100-mini...
Mungkin terdengar konyol, tetapi bagi saya pribadi fitur intinya adalah kemampuan untuk menampilkan beberapa subtitle sekaligus. Track, offset, posisi, ukuran, dan sebagainya bisa diatur dengan mudah lewat beberapa pintasan keyboard
Tidak ada layanan streaming yang menyediakan ini, dan mereka secara aktif menyembunyikan bahasa subtitle yang dianggap “tidak relevan” dengan lokasi pengguna. Sulit untuk menghormati layanan seperti itu
--sid1=dan--sid2=sudah bekerja dengan cukup baikSaya dan pasangan sama-sama bukan penutur asli bahasa Inggris, dan bahasa ibu kami juga berbeda. Saya cukup nyaman dengan bahasa Inggris, tetapi beberapa dialek terasa sulit dan kalau audionya berisik kadang saya melewatkan kata, jadi saya lebih suka subtitle bahasa Inggris. Pasangan saya suka subtitle dalam bahasa ibunya
Dengan menampilkan beberapa subtitle, kami berdua bisa mendapatkan pengalaman menonton yang kami inginkan dengan imbalan sedikit ruang layar, dan itu sangat sepadan
Saya menulis tentang ini: https://www.baeldung.com/linux/mpv-subtitles-automatic. Namun sayangnya dokumentasi format subtitle yang didukung kurang memadai, dan untuk memastikan format yang benar-benar didukung saya harus melihat kode ffmpeg
Selain itu, https://subdl.com/ dan https://github.com/alexanderwink/subdl adalah sumber yang bagus untuk mencari dan mengunduh subtitle dari command line
mpv selalu bekerja dengan baik, dan dengan mudah menangani hampir apa pun yang dilemparkan kepadanya
Mungkin sekarang sudah berbeda, tetapi ketika pertama kali saya menemukannya beberapa tahun lalu, yang membedakan proyek ini dari player lain adalah kesan bahwa mereka sangat menekankan akurasi dan pemutaran yang tepat. Misalnya, ada file yang di VLC menunjukkan masalah aneh seperti reproduksi warna yang agak ganjil, tetapi di mpv pernah diputar dengan sempurna
Namun saya tidak begitu tahu alasannya, karena menurut saya keduanya pada dasarnya bergantung pada library yang sama untuk banyak codec
mpv luar biasa. Beberapa hal yang layak direkomendasikan, tanpa urutan tertentu:
mpv.confdasar dari Seeds of Might/JySzE, uosc sebagai UI yang kaya fitur tetapi tetap minimal, thumbfast sebagai thumbnailer cepat untuk dipakai bersama uosc atau UI kustom lain, dan SmartSkip dari Eisa01 yang melewati opening dan sejenisnya berbasis audio[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
Untuk menemukan opening atau kredit penutup secara andal, diperlukan analisis non-lokal. Pada dasarnya, perlu menemukan segmen audio yang umum muncul di antara episode-episode dalam satu season atau seluruh karya
Saya membuat tool CLI yang bisa melakukan ini, tetapi sebenarnya belum dalam keadaan “selesai” dan mungkin akan tetap begitu. Tujuan awalnya adalah mengembangkan plugin Jellyfin, tetapi belakangan saya tahu bahwa plugin seperti itu sudah ada
https://github.com/aksiksi/needle
Ini media player terbaik yang ada saat ini. Saya suka UI minimal-nya yang bagus, pemanfaatan akselerasi hardware, dan fakta bahwa ia sekadar memutar video
Karena terus sebagus ini, mungkin ini menjadi salah satu alasan saya akan terus membajak seumur hidup. Layanan streaming menghabiskan jutaan dolar untuk player mereka, tetapi tetap tidak mendekati level ini
MPV memiliki skrip yang serbaguna. Misalnya, Anda bisa memotong atau melakukan crop pada video yang sedang ditonton[1]
Anda juga bisa menambahkan fitur sebagai pintasan keyboard yang belum pernah saya lihat di pemutar lain. Kadang saya menulis
n vf toggle normalize=smoothing=100diinput.confuntuk menormalkan kecerahan dan warna adegan yang sedang ditonton, tetapi ini mungkin tidak berfungsi jika memakai hardware decodingRotasi video diatur seperti
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...
Hal yang kurang diketahui orang, mpv tidak hanya bisa men-streaming video YouTube, tetapi juga bisa melakukan pencarian YouTube dari CLI dengan
mpv ytdl://ytsearch:querySelain itu, video juga bisa diputar langsung di dalam terminal menggunakan protokol gambar ASCII, sixel, dan kitty; di antara ini, protokol gambar kitty memiliki kualitas yang jauh lebih baik
Sejauh ini fitur favorit saya di mpv adalah kemampuan menerapkan shader CRT ke konten secara real-time. Dengan cara ini, video HD benar-benar di-downscale dengan benar ke buffer 240p, lalu shader juga menangani proses upscale agar sesuai dengan resolusi layar
https://i.imgur.com/akmgzxX.png
https://github.com/hhirtz/mpv-retro-shaders