Πως να μεταφέρω ρυθμίσεις του mpv

Γεια σας παιδιά.
Έχω μία εντολή που κάνω το wallpaper να παίζει βίντεο. Να

xwinwrap -ni -o 0.3 -fs -s -st -sp -b -nf -- mpv https://youtu.be/XB5EniQqFT4 --wid WID

Κάθε 4 δευτερόλεπτα όμως παγώνει και μάλλον θα κάνει μπάφερινγκ που λένε. Η ίδια εντολή στο Arch (plasma) παει το βίντεο μια χαρά. Για πολύ ώρα. Βασικά δεν θυμάμαι να σταμάτησε καθόλου.

Έκανα τη σκέψη ότι είναι ρύθμιση του mpv και λέω να πάρω το αρχείο ρυθμίσεων από το Arch και να το κοτσάρω εδώ στο mint. Δεν ξέρω όμως ποιο αρχείο είναι και που. Γενικά δηλαδή δεν ξέρω που είναι οι ρυθμίσεις του mpv.
Έχετε καμιά ιδέα;

Τσέκαρε στους καταλόγους :

/etc/mpv
/usr/doc/mpv

καθώς επίσης και στον home directory.

1 Like
# mpv configuration file
#

#########################
# encoding profile file #
#########################
#
# Note: by default, this file is installed to /etc/mpv/encoding-profiles.conf
# (or a different location, depending on --prefix). mpv will load it by
# default on program start. If ~/.mpv/encoding-profiles.conf exists, this file
# will be loaded instead.
#
# Then, list all profiles by
#   mpv --profile=help | grep enc-
#
# The following kinds of encoding profiles exist:
#   enc-a-*:  initialize an audio codec including good defaults
#   enc-v-*:  initialize a video codec including good defaults
#   enc-f-*:  initialize a file format including good defaults, including
#             selecting and initializing a good audio and video codec
#   enc-to-*: load known good settings for a target device; this typically
#             includes selecting an enc-f-* profile, then adjusting some
#             settings like frame rate, resolution and codec parameters
#
# AFTER including a profile of these, you can of course still change
# options, or even switch to another codec.
#
# You can view the exact options a profile sets by
#   mpv --show-profile=enc-to-hp-slate-7
#
# Examples:
#   mpv --profile=enc-to-dvdpal --o=outfile.mpg infile.mkv
#   mpv --profile=enc-f-avi --ofps=30 --o=outfile.avi infile.mkv
#   mpv --profile=enc-v-mpeg4 --ovcopts-add=qscale=7 --profile=enc-a-mp3 --oacopts-add=b=320k --o=outfile.avi infile.mkv

################
# audio codecs #
################
[enc-a-aac]
profile-desc = "AAC (libfdk-aac or FFmpeg)"
oac = libfdk_aac,aac
oacopts = b=96k

[enc-a-ac3]
profile-desc = "AC3 (FFmpeg)"
oac = ac3
oacopts = b=448k

[enc-a-mp3]
profile-desc = "MP3 (LAME)"
oac = libmp3lame
oacopts = b=128k

[enc-a-vorbis]
profile-desc = "Vorbis (libvorbis or FFmpeg)"
oac = libvorbis,vorbis
oacopts = qscale=3

[enc-a-opus]
profile-desc = "Opus (libopus or FFmpeg)"
oac = libopus,opus
audio-samplerate = 48000
oacopts = b=96k

################
# video codecs #
################
[enc-v-h263]
profile-desc = "H.263 (FFmpeg)"
ovc = h263
ovcopts = qscale=4

[enc-v-h264]
profile-desc = "H.264 (x264)"
ovc = libx264
ovcopts = preset=medium,crf=23,threads=0
# If you want to restrict the output video to something compatible with most
# hardware and basic decoders, add "profile=high,level=41" to ovcopts above and
# uncomment the following line to avoid errors when source video isn't yuv420p:
#vf-add = format=yuv420p

[enc-v-mpeg2]
profile-desc = "MPEG-2 Video (FFmpeg)"
ovc = mpeg2video

[enc-v-mpeg4]
profile-desc = "MPEG-4 Part 2 (FFmpeg)"
ovc = mpeg4
ovcopts = qscale=4

[enc-v-vp8]
profile-desc = "VP8 (libvpx)"
ovc = libvpx
ovcopts = speed=0,lag-in-frames=8,slices=2,threads=0,b=2M,crf=10,qmin=0,qmax=36

[enc-v-vp9]
profile-desc = "VP9 (libvpx)"
ovc = libvpx-vp9
ovcopts = speed=6,lag-in-frames=8,slices=2,threads=0,crf=18,qmin=0,qmax=36

###########
# formats #
###########
[enc-f-3gp]
profile-desc = "H.263 + AAC (for 3GP)"
of = 3gp
ocopyts = yes
profile = enc-v-h263
profile = enc-a-aac
ofopts-clr = yes

[enc-f-avi]
profile-desc = "MPEG-4 + MP3 (for AVI)"
of = avi
ocopyts = no
oautofps = yes
profile = enc-v-mpeg4
profile = enc-a-mp3
ofopts-clr = yes

[enc-f-mp4]
profile-desc = "H.264 + AAC (for MP4)"
of = mp4
ocopyts = yes
profile = enc-v-h264
profile = enc-a-aac
## equivalent to using qt-faststart tool
## can be used to speed up seeking when streaming
# ofopts = movflags=+faststart

[enc-f-webm]
profile-desc = "VP9 + Opus (for WebM)"
of = webm
ocopyts = yes
profile = enc-v-vp9
profile = enc-a-opus
ofopts-clr = yes

##################
# target devices #
##################
[enc-to-dvdpal]
profile-desc = "DVD-Video PAL, use dvdauthor -v pal -a ac3+en (MUST be used with 4:3 or 16:9 aspect, and 720x576, 704x576, 352x576 or 352x288 resolution)"
profile = enc-v-mpeg2
profile = enc-a-ac3
of = dvd
ofopts-append = packetsize=2048
ofopts-append = muxrate=10080000
ofps = 25
oharddup = yes
ovfirst = yes # dvdauthor needs this
audio-samplerate = 48000
ovcopts = g=15,b=6000000,maxrate=9000000,minrate=0,bufsize=1835008

[enc-to-dvdntsc]
profile-desc = "DVD-Video NTSC, use dvdauthor -v ntsc -a ac3+en (MUST be used with 4:3 or 16:9 aspect, and 720x480, 704x480, 352x480 or 352x240 resolution)"
profile = enc-v-mpeg2
profile = enc-a-ac3
of = dvd
ofopts-append = packetsize=2048
ofopts-append = muxrate=10080000
ofps = 24000/1001
oharddup = yes
ovfirst = yes # dvdauthor needs this
audio-samplerate = 48000
ovcopts = g=18,b=6000000,maxrate=9000000,minrate=0,bufsize=1835008

[enc-to-nok-n900]
profile-desc = "MP4 for Nokia N900"
profile = enc-f-mp4
# DW = 800, DH = 480, SAR = 1
vf-add = lavfi=graph="scale=floor(min(min(800\,dar*480)\,in_w*max(1\,sar))/2+0.5)*2:floor(min(min(800/dar\,480)\,in_h*max(1/sar\,1))/2+0.5)*2,setsar=sar=1"
ovcopts-append = profile=baseline
ovcopts-append = level=30
ovcopts-append = maxrate=10000k
ovcopts-append = bufsize=10000k
ovcopts-append = rc_init_occupancy=9000k
ovcopts-append = refs=5
omaxfps = 30

[enc-to-nok-6300]
profile-desc = "3GP for Nokia 6300"
profile = enc-f-3gp
ofps = 25
vf-add = lavfi=graph="scale=176:144"
audio-samplerate = 16000
audio-channels = 1
oacopts-add = b=32k

[enc-to-hp-slate-7]
profile-desc = "MP4 for HP Slate 7 (1024x600, crazy aspect)"
profile = enc-f-mp4
omaxfps = 30
ovcopts-add = profile=high
# DW = 1024, DH = 600, DAR = 97:54 (=> SAR = 2425:2304)
vf-add = lavfi=graph="scale=floor(min(1024*min(1\,dar/(97/54))\,in_w)/2+0.5)*2:floor(min(600*min((97/54)/dar\,1)\,in_h)/2+0.5)*2,setsar=sar=sar/(2425/2304)"

# Advanced scaling for specific output devices - how it works:
# DW = display width (px) (1024)
# DH = display height (px) (600)
# SAR = display sample aspect ratio, i.e. DAR * DH / DW (2425:2304)
# DAR = display aspect ratio, i.e. SAR * DW / DH (97:54)
# Variant: zoomed out
# vf-add = lavfi=graph="scale=floor(min(DW*min(1\,dar/DAR)\,in_w*max(1\,sar/SAR))/2+0.5)*2:floor(min(DH*min(DAR/dar\,1)\,in_h*max(SAR/sar\,1))/2+0.5)*2,setsar=sar=1"
# Variant: zoomed in
# vf-add = lavfi=graph="scale=floor(min(DW*max(1\,dar/DAR)\,in_w*max(1\,sar/SAR))/2+0.5)*2:floor(min(DH*max(DAR/dar\,1)\,in_h*max(SAR/sar\,1))/2+0.5)*2,setsar=sar=1"
# How it works:
# 1a: DW, DH*dar/DAR - fit to display width
# 1b: DH*DAR/dar, DH - fit to display height
# 1: the min of 1a and 1b these (i.e. fit inside both width and height); for zoomed in view, use the max
# 2a: in_w, in_h*SAR/sar - fit to original width
# 2b: in_w*sar/SAR, in_h - fit to original height
# 2: the max of 2a and 2b (i.e. avoid enlarging both dimensions - let HW scaling handle this)
# output: the min of 1 and 2 (i.e. fulfill both constraints)
# setsar=sar=1 to prevent scaling on the device (skip this if the device actually wants the proper SAR to be specified for not performing needless scaling)
#
# Simplified special case for SAR == 1, DAR == DW/DH:
# Variant: zoomed out
# vf-add = lavfi=graph="scale=floor(min(min(DW\,dar*DH)\,in_w*max(1\,sar))/2+0.5)*2:floor(min(min(DW/dar\,DH)\,in_h*max(1/sar\,1))/2+0.5)*2,setsar=sar=1"
# Variant: zoomed in
# vf-add = lavfi=graph="scale=floor(min(max(DW\,dar*DH)\,in_w*max(1\,sar))/2+0.5)*2:floor(min(max(DW/dar\,DH)\,in_h*max(1/sar\,1))/2+0.5)*2,setsar=sar=1"
# setsar=sar=1 to prevent nasty almost-1 SAR to be passed to the codec due to the rounding which can fail
#
# If the device supports file SAR properly, we can make use of it to avoid
# upscaling. The setsar=sar=sar/SAR at the end serves to fake the SAR for devices that don't know their own display's SAR.
# Variant: zoomed out
# vf-add = lavfi=graph="scale=floor(min(DW*min(1\,dar/DAR)\,in_w)/2+0.5)*2:floor(min(DH*min(DAR/dar\,1)\,in_h)/2+0.5)*2,setsar=sar=sar/SAR"
# Variant: zoomed in
# vf-add = lavfi=graph="scale=floor(min(DW*max(1\,dar/DAR)\,in_w)/2+0.5)*2:floor(min(DH*max(DAR/dar\,1)\,in_h)/2+0.5)*2,setsar=sar=sar/SAR"
# Simplified special case for SAR == 1, DAR == DW/DH:
# Variant: zoomed out
# vf-add = lavfi=graph="scale=floor(min(min(DW\,dar*DH)\,in_w)/2+0.5)*2:floor(min(min(DW/dar\,DH)\,in_h)/2+0.5)*2"
# Variant: zoomed in
# vf-add = lavfi=graph="scale=floor(min(max(DW\,dar*DH)\,in_w)/2+0.5)*2:floor(min(max(DW/dar\,DH)\,in_h)/2+0.5)*2"

Αυτό έιναι το /etc/mpv/encoding-profiles.conf . Δύο αρχεία Έχει μόινο o /etc/mpv, το άλλο γράφει κάτι άσχετο, μία γραμμή μονο.

Αυτό ποy θα κάνω τώρα είναι να συγκρίνω τα αρχεία encoding-profiles.conf και του Arch και του mint με το meld. Περιμένω βέβαια να βρω τρελές διαφορές οπότε να μην βγάλω άκρη, αλλά θα προσανατολιστώ κάπως… Μετά θα έρθει η στιγμή να διαβάσω όλο το conf και να το κατανοήσω σιγά σιγά.

Κάποια άλλη ιδέα αν έχεις καλοδεχούμενη.

Τζίφος.
Αντέγραψα το ίδιο αρχείο στo /etc/mpv. Στο home μου ότι βρήκα, το έκανα να μοιάζει με το home του Arch.

Όταν το τρέχω από τερματικό βλέπω τα εξής:

Στο mint

Στην τελευταία γραμμή λέει: (Buffering) AV: 00:00:14 / 00:00:00 A-V: 0.000 Cache: 0s+2MB

(Δεν μπορώ σε σύντομο χρόνο να επεξεργαστώ το σκρίνσοτ και να του βάλω κόκκινο πλαίσιο, κι έτσι τα γράφω με λόγια :blush: )

Εκεί που λέει λοιπόν, 0s+2MB, το s είναι δευτερόλεπτα. Το βλέπω να ξεκινλάει από το 4 κια με κανονικό ρυθμό δευτερολέπτου μετράει αντίστροφα μέχρι το 0. Εκεί κοκαλώνει η εικόνα. Περνάνε καμιά 15αριά δευτερόλεπτα και ξαναπάει στο 4. Συνεχίζει και παίζει εκεί το βίντεο. Περνάνε τα 4 δευτερόλεπτα και πάλι πάγωμα. Άντε άλλα 15 (μπορεί και είκοσι δεν το μέτρησα) δευτερόλεπτα να περιμένω να ξανάρθει.

Στο Arch

Από πίσω παίζει το βίντεο χωρίς καμία διακοπή.
Στη γραμμή έβλεπα 5 MB, τώρα το πέτυχα να λέει 4. Τα δευτερόλεπτα τα έβλερπα στο 14 να πάεφτουν μέχρι το 9 και μετά να ξαναγίνετε 12 και πάλι το ίδιο. Τώρα το πέτυχα να λέει 6, αλλά ξανανεβαίνει στο 12 ή 14 και μετράει πάλι αλλά δεν φτάνει ποτέ στο 0.
Τα μεγαμπάιτ πάλι ξαναγίνονται 5 και 6 κάποια στιγμή.

Ελπίζω να περιέγραψα καλά το τι συμβαίνει .

Το παραπάνω αρχείο που post-αρες είναι το encoding-profiles.conf.
Υπάρχει αρχείο mpv.conf στις εξής διαδρομές?(έλεγξε και τις 2 διανομές):

~/.config/mpv/mpv.conf
ή
/usr/local/etc/mpv.conf
ή
/usr/share/doc/mpv/mpv.conf (μπορεί να έχει και κατάληξη .gz)

Αν ναι, τότε μπορείς να το χρησιμοποιήσεις για τον χρήστη σου και να κάνεις τις κατάλληλες τροποποιήσεις στα πεδία : cache-default demuxer-readahead-secs cache-secs
Το τροποποιημένο αρχείο σου θα πρέπει να το τοποθετήσεις μέσα στον φάκελο

~/.config/mpv/

Τζίφος ρε γαμώτο! Εν τω μεταξύ στο Arch δεν υπάρχει στο ~/.config/mpv/ αρχειο mpv.conf! Είναι άδειος φάκελος. Ούτε στο /usr/local/etc υπάρχει τίποτα.
Υπάρχει μόνο στο /usr/share/doc/mpv. Καθαρό αρχείο, όχι ζιπαρισμένο.
Το αντέγραψα, το άλλαξα σε cache, σε secs, το έβαλα στους φακέλους που είπες. Έκανα και συνδυασμούς φακέλων. Το έβαλα σε κάθε έναν μόνο και κάθε φορά, το έβαλα και σε όλους μαζί.
Τίποτα.

Με προβληματίζει γιατί λέει το τερματικό στη γραμμή VO: [gpu] 1280x720
ενώ στο μιντ λέει
VO:[opengl] 1280x720.

Τι είναι αυτή η γραμμή;

Να πω ότι στο mint έχω το nouveau να οδηγάει, ενώ στο Arch έχω το nvidia-340 (κλειστός οδηγός της nvidia). Το κάνω αυτό γιατί στο mint δεν μου παίζει με τον κλειστό το Age of Empires (το πρόλαβε κανείς σας από τους μικρούς; :grinning: ). Με τον ανοιχτό μου παίζει.

Ωστόσο ενεργοποίησα τον κλειστό μπας και έπαιζε ρόλο αυτό. Αυτά τα opengl και gpu με εμπνέυσανε (ως λέξεις) ότι κάτι μπορεί να παίζει με τα γραφικά. Τίποτα και πάλι. Ξαναέβαλα λοιπόν το noaveau και συνεχίζω να ψάχνω.

Αμέσως μετά το κλείσιμο του παραθύρου του mpv μου βγάζει αυτή τη γραμμή

[ffmpeg/demuxer] hls,applehttp: Failed to reload playlist 0

Μήπως είναι θέμα ffmpeg και ρυθμίσεων αυού και όχι του mpv;
Αλλά τι λέω; Αφού και στο Arch βγάζει αυτό το μήνυμα, εκεί με τα καφέ γράμματα.

Τώρα παρατήρησα ότι μου βγάζει και μία άλλη γραμμή στο mint παρόλο που δεν την έβγαζε παλιά και παρόλο που το βίντεο παίζει έστω με αυτήν τη διακοπή στα 4 δευτερόλεπτα.

VO does not support requested hardware decoder, or loading it failed

Με την παρακάτω εντολή βλέπεις τα διαθέσιμα vo(video output) drivers :

mpv --vo=help

Δοκίμασε να τρέξεις ξανα το url του video στo mint με την εντολή :

mpv --vo=gpu youtube-url

$ mpv --vo=gpu https://youtu.be/XB5EniQqFT4
Playing: https://youtu.be/XB5EniQqFT4
 (+) Video --vid=1 (h264 1280x720 30.000fps)
 (+) Audio --aid=1 (aac 2ch 48000Hz)
[vo] Video output gpu not found!
Error opening/initializing the selected video_out (--vo) device.
Video: no video


Exiting... (Errors when loading file)

Η πρώτη εντολή τι αποτελέσματα βγάζει?

~$ mpv --vo=help
 Available video outputs:
  opengl         : Extended OpenGL Renderer
  vdpau          : VDPAU with X11
  wayland        : Wayland SHM video output
  xv             : X11/Xv
  sdl            : SDL 2.0 Renderer
  vaapi          : VA API with X11
  x11            : X11 (slow, old crap)
  null           : Null video output
  image          : Write video frames to image files
  tct            : true-color terminals
  caca           : libcaca
  drm            : Direct Rendering Manager

Στο ένα λειτουργικό δηλαδή παίζει με OpenGL και ανοικτούς οδηγούς, το άλλο με κλειστούς και τα κόλπα της NVidia για κωδικοποίηση βίντεο στην gpu. Είναι μάλλον προφανής μια μικρή πτώση στην απόδοση :-).

Όσο για το AoE για το II και III υπάρχει υποστήριξη στο lutris

:joy::rofl:

Κάθε ανάρτηση πρέπει να περιέχει τουλάχιστον 20 χαρακτήρες

1 Like

Κατάλαβα.
Ε ας βρω αυτούς τους οδηγούς για να παίζουν τη gpu. Στο synaptic έβαζα λέξεις όπως hwdec, decoder, gpu, va, vo και εγκατέστησα κάνα δυο πακέτα που μπορεί (λέω) να είναι σχετικά.

Να σημειώσω ότι ο mpv όταν τον βάζω να παίξει το κανάλι του ALPHA (του οποίου βρήκα το m3u8) παίζει μια χαρά χωρίς διακοπή.

Τα seconds φτάνουν μέχρι το 16 και ξαναπάνε στο 23 αμέσως. Διακοπή δεν έχει γίνει ακόμα.
Αυτό μου έλεγε ότι μάλλον θα είναι και θέμα βίντεο. Όχι ότι γενικά έχει θέμα ο mpv με όλα τα βίντεο. Πράγματι το βίντεο της ΕΡΤ (το επίμαχο που μιλάμε) με τον mplayer δεν έπαιζε.

$ mplayer https://youtu.be/XB5EniQqFT4
MPlayer 1.3.0 (Debian), built with gcc-7 (C) 2000-2016 MPlayer Team
do_connect: could not connect to socket
connect: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing https://youtu.be/XB5EniQqFT4.
libavformat version 57.83.100 (external)
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
[tls @ 0x7f1ae29cc180]The specified session has been invalidated for some reason.
[tls @ 0x7f1ae29cc180]The specified session has been invalidated for some reason.
[tls @ 0x7f1ae29cc180]The specified session has been invalidated for some reason.
Cannot seek backward in linear streams!
[tls @ 0x7f1ae29cc180]The specified session has been invalidated for some reas

Ενώ ο mplayer μπορεί να παίξει στριμς. Του ALPHA ας πούμε το έπαιξε.

Από την άλλη, το βίντεο της ΕΡΤ (που έμαθα ότι είναι και linear - ότι τώρα κατάλαβα ας πούμε! - Τέλος πάντων) , μια χαρά έπαιζε στον vlc. Για πολύ ώρα.

Κατέληξα ότι είναι και θέμα ρυθμίσεων του κάθε player και θέμα βίντεο και ρεύματος αλλά και θέμα τι οδηγούς έχω και ποιοι δουλεύουν.

Στο Arch πάντως μια χαρά με ότι βίντεο έχω βάλει.

Οφ τόπικ και περί Age of Empires.
Σ΄ευχαριστώ πολύ. Θα το μελετήσω. Είχα βρει μια μαστοριά όπου δεν xρειάζεσαι cd και το παίζεις από το φάκελο στο home σου. Μέχρι κι από άλλο partition μπορούσα. Να είμαι σε debian και να είναι γραμμένος ο φάκελος σε opensuse σε άλλο partition προσαρτημένο βέβαια) και έπαιζα μια χαρά. Πάνε χρόνια και έκανα πολλά φορμάτ και άλλαξαν οι σκληροί κιόλας κάποια στιγμή. Ο φάκελος age_of_empires_II πάντα φυλάσσεται και αντιγράφεται σε κάθε νέο λειτουργικό. Απλά με την εγκατάσταση του wine πάντα έπαιζε. Βέβαια έβαζα και 32αρες διανομές γιατί 10 χρόνια με αυτό το μηχάνημα νόμιζα ότι μόνο 32άρες παίρνει γιατί απλά είναι 32άρι. Το έμαθα εντεώς τυχαία όταν μου το είπε ένας σε κάποιο φόρουμ που τον έκραζα κιόλας (“άσε μας ρε! Δεν ξέρβ το μηχάνημά μου; Εσύ θα μου πεις;”). Έλα που είχε δίκιο! :face_with_hand_over_mouth:
Τελευταία φορά λοιπόν που το είχα σε 32άρα διανομή όλα καλά. Τώρα που όλες είναι 64άρες δεν έπαιζε. Τελικά πήγα στο synaptix και την ενότητα Arcitecture (δεν την είχα παρατηρήσει). Εκεί έβαλα 32άρες βιβλιοθήκες, ότι μου φαινότανε (Χασάπης λέμε). Ε καταφερα να μου παίζει στο mint αλλά μόνο με νουόβο και όχι ενβίντια.

Αυτά. Σόρυ για την πολύ πάρλα αλλά είμαι χαλαρός (Διακοπές) και ήθελα να πω πολλά. :stuck_out_tongue_closed_eyes:

1 Like

Δοκίμασε να κάνεις hardware decoding με την εντολή :

mpv --vo=vdpau --hwdec=vdpau stream-url

Το ίδιο αποτέλεσμα έχω.