Audio on mpv/Celluliod v Strawberry

Hello, I have a question about the audio on mpv/Celluloid v Strawberry. The sound is much better on my laptop playing files in Strawberry. This goes for mp3 files and also if I use ffmpeg to make a mp3 out of a video file (an interview, for example).

I’ve tried before to figure out how to load a mpv config file for Celluloid, but mpv has so many options that I got lost.

Does anyone have any suggestions on things I could try to make the sound on mpv/Celluloid better?

Thanks!

For MPV only
To make mpv sound like Strawberry on Linux, you can configure mpv to use similar audio settings and options. You made me write a mini novel…lol

Strawberry is known for its high-quality audio playback, and you can achieve similar results with mpv by adjusting a few settings.

  • Disable PulseAudio/PipeWire: Strawberry often bypasses PulseAudio or PipeWire to directly access the audio hardware for better sound quality. You can do the same with mpv by specifying the audio device directly:
mpv --audio-device='name of your DAC'

Replace ‘name of your DAC’ with the actual name of your Digital-to-Analog Converter (DAC).

  • Set Audio Samplerate and Format: Ensure that mpv uses the same sample rate and format as Strawberry. You can set these options in your mpv.conf file:
audio-samplerate=44100
audio-format=s16le

Adjust the sample rate and format to match your DAC’s capabilities.

  • Disable Audio Resampling: To avoid any unwanted resampling, you can disable it in mpv:

``
audio-resample=no


* Use High-Quality Audio Filters: If you want to apply any audio filters, ensure they are of high quality. For example, you can use the equalizer filter:

`af=equalizer=0:0:0:0:0:0:0:0:0:0`


* Configure mpv for Gapless Playback: Strawberry supports gapless playback, which you can enable in mpv:


`gapless-audio=yes`

Use the Same Audio Output Module: Strawberry might use a specific audio output module for better performance.

* You can specify the same module in mpv:

`audio-output=alsa`

Adjust Volume and Balance: If you prefer to match the volume and balance settings of

* Strawberry, you can set these in mpv:



volume=100
balance=0


By applying these settings, you can configure mpv to have a similar audio experience to Strawberry on Linux. 
You can add these options to your `~/.config/mpv/mpv.conf` file for persistent configuration.

Good Luck

Hi 1fallen, your post is so wonderful, thank you! I’m going to print it out and start working on it, but I will probably only have time over the weekend, so I’ll have to report back then.

I’m very glad you said “Strawberry is known for its high-quality audio playback” since it confirms my suspicions. Honestly, I’ll be in laptop audio heaven if I can get mpv/Celluloid to match Strawberry or at least come close.

Thanks again!

This seems like a lot of tinkering for MPV, is there any reason you don’t like or just use Strawberry? Just curious is all. :slight_smile:

This setting works on my end:

 mpv --audio-device=alsa/pipewire '/home/me/Music/The Cult - The Singles 1984-1995 (2000) [MP3 320] 88/06. Revolution.mp3'  
● Image  --vid=1  (mjpeg 250x248)
○ Image  --vid=2  'folder.jpg' (mjpeg 250x248) [external]
● Audio  --aid=1  (mp3 2ch 44100 Hz 320 kbps)
File tags:
 Artist: The Cult
 Album: Pure Cult: The Singles 1984-1995
 Album_Artist: The Cult
 Comment: Exact Audio Copy V1.0b3
 Date: 2000
 Genre: Hard Rock
 Title: Revolution
 Track: 06
Displaying cover art. Use --no-audio-display to prevent this.
VO: [gpu] 250x248 yuv420p
AO: [alsa] 44100Hz stereo 2ch float
AV: 00:00:53 / 00:04:17 (21%)


wpctl status|grep mpv
       112. PipeWire ALSA [mpv]                 [1.4.2, me@cachyos-gnome, pid:329738]
       105. PipeWire ALSA [mpv]                                         

Full Return

wpctl status
PipeWire ‘pipewire-0’ [1.4.2, me@cachyos-gnome, cookie:1850068055]
└─ Clients:
32. WirePlumber [1.4.2, me@cachyos-gnome, pid:4994]
33. pipewire [1.4.2, me@cachyos-gnome, pid:5008]
37. pipewire [1.4.2, me@cachyos-gnome, pid:5008]
39. pipewire [1.4.2, me@cachyos-gnome, pid:5008]
48. WirePlumber [export] [1.4.2, me@cachyos-gnome, pid:4994]
49. gnome-shell [1.4.2, me@cachyos-gnome, pid:4733]
50. GNOME Shell Volume Control [1.4.2, me@cachyos-gnome, pid:4733]
51. GNOME Volume Control Media Keys [1.4.2, me@cachyos-gnome, pid:4865]
96. wpctl [1.4.2, me@cachyos-gnome, pid:435191]
98. xdg-desktop-portal [1.4.2, me@cachyos-gnome, pid:5283]
101. Mutter [1.4.2, me@cachyos-gnome, pid:4733]
103. libcanberra [1.4.2, me@cachyos-gnome, pid:4865]
112. PipeWire ALSA [mpv] [1.4.2, me@cachyos-gnome, pid:428140]

Audio
├─ Devices:
│ 52. GA107 High Definition Audio Controller [alsa]
│ 53. UOEOS Laptop Dock [alsa]
│ 54. Family 17h/19h/1ah HD Audio Controller [alsa]

├─ Sinks:
│ 58. UOEOS Laptop Dock Analog Surround 4.1 [vol: 0.89]

├─ Sources:

├─ Filters:
│ - combine-sink-5008-13
│ * 41. combined [Audio/Sink]
│ 59. output.combined_alsa_output.usb-DisplayLink_UOEOS_Laptop_Dock_4307293310436-02.analog-surround-41 [Stream/Output/Audio]
│ 67. output.combined_alsa_output.pci-0000_06_00.6.pro-output-0 [Stream/Output/Audio]
│ - pro-audio-1
│ 66. alsa_output.pci-0000_06_00.6.pro-output-0 [Audio/Sink]
│ * 83. alsa_input.pci-0000_06_00.6.pro-input-0 [Audio/Source]

└─ Streams:
102. PipeWire ALSA [mpv]
106. output_FR > combined:playback_FR [active]
107. output_FL > combined:playback_FL [active]

Video
├─ Devices:
│ 63. Integrated Camera [v4l2]
│ 64. Integrated Camera [v4l2]

├─ Sinks:

├─ Sources:
│ * 99. Integrated Camera (V4L2)

├─ Filters:

└─ Streams:

Settings
└─ Default Configured Devices:
0. Audio/Sink combined

Is it 1988?
Where did you get your Time Machine?

I have all my CD’s DVD’s backed up. The Cult is a keeper for me! :two_hearts:
They actually came to our town! Great Show.

@riverhawkny if you need any more help on the .config, I have a few, you might be interested in.

mpv --audio-device=alsa/pipewire https://stream.radioparadise.com/rock-320
Option --sub-ass-vsfilter-blur-compat was removed: replaced by sub-ass-use-video-data=all
Error parsing option sub-ass-vsfilter-blur-compat (option not found)
/home/me/.config/mpv/mpv.conf:63: setting option sub-ass-vsfilter-blur-compat='yes' failed.
   cplayer: Auto-loading profile 'protocol.https'
_quality_menu: fetching available formats with youtube-dl...
 quality_menu: fetching available formats with youtube-dl...
      cplayer: ● Audio  --aid=1  (aac 2ch 44100 Hz 319 kbps)
 display-tags: File tags:
 display-tags:  icy-title: Franz Ferdinand - Take Me Out
      ao/alsa: The --audio-stream-silence option is set. This will break certain player behavior.
      cplayer: AO: [alsa] 44100Hz stereo 2ch float
      modernx: Changing title to include filename
      modernx: WEB: Video is a web video
      modernx: WEB: Loading filesize...
      modernx: WEB: Loading description...
      modernx: WEB: Loaded video description
 display-tags: File tags:
 display-tags:  icy-title: The Black Keys - Howlin’ for You
 display-tags: File tags:
 display-tags:  icy-title: Pearl Jam - Force of Nature
 display-tags: File tags:
 display-tags:  icy-title: David Bowie - Panic in Detroit
 display-tags: File tags:
 display-tags:  icy-title: Beck - Youthless
 display-tags: File tags:
 display-tags:  icy-title: An Emotional Fish - Celebrate
 display-tags: File tags:
 display-tags:  icy-title: Radiohead - Karma Police
 display-tags: File tags:
 display-tags:  icy-title: Yeah Yeah Yeahs - Burning
 display-tags: File tags:
 display-tags:  icy-title: Commercial-free - Listener-supported
 display-tags: File tags:
 display-tags:  icy-title: The Republic Tigers - Weatherbeaten
 display-tags: File tags:
 display-tags:  icy-title: Led Zeppelin - Immigrant Song
 display-tags: File tags:
 display-tags:  icy-title: Bush - Everything Zen
ffmpeg/demuxer: aac: Packet corrupt (stream = 0, dts = NOPTS).
    statusline: A: 00:32:59 / 00:33:09 (99%) Cache: 9.8s/608KB
       cplayer: Exiting... (Quit)

1 Like

Hello again, for years I used VLC, but it started choking on larger files last year so I switched to mpv, which does much better. But I think, out-of-the-box, VLC did better with sound than mpv. I generally download music stuff off of YouTube, so they are video files. Then, if I like a song, I’ll go get an audio file and use Strawberry.

This command didn’t work:

mpv --audio-device=alsa/pipewire '/home/ssd-01/3-media/kpop-songs/Brown Eyed Girls - Wave.flac'

mpv --audio-device=alsa/pipewire errors
Option audio-format: unknown format name: 's16le'
Error parsing option audio-format (option parameter could not be parsed)
/home/ssd-01/.config/mpv/mpv.conf:3: setting option audio-format='s16le' failed.
Error parsing option audio-resample (option not found)
/home/ssd-01/.config/mpv/mpv.conf:4: setting option audio-resample='no' failed.
Error parsing option audio-output (option not found)
/home/ssd-01/.config/mpv/mpv.conf:6: setting option audio-output='alsa' failed.
 (+) Video --vid=1 [P] 'cover.jpg' (mjpeg 1200x1200 1.000fps)
 (+) Audio --aid=1 (flac 2ch 44100Hz)
File tags:
 Artist: Brown Eyed Girls
 Album: Basic
 Album_Artist: Brown Eyed Girls
 Date: 2015-11-05
 Genre: K-Pop
 Title: Wave
 Track: 3
Displaying cover art. Use --no-audio-display to prevent this.
VO: [gpu] 1200x1200 yuv420p
ALSA lib pcm.c:2721:(snd_pcm_open_noupdate) Unknown PCM pipewire
[ao/alsa] Playback open error: No such file or directory
[ao] Failed to initialize audio driver 'alsa'
[ao] This audio driver/device was forced with the --audio-device option.
[ao] Try unsetting it.
Could not open/initialize audio device -> no sound.
Audio: no audio
Exiting... (Interrupted by error)

Here’s my config so far:

#mpv --audio-device='name of your DAC'
audio-samplerate=44100
audio-format=s16le
audio-resample=no
gapless-audio=yes
audio-output=alsa

#af=equalizer=0:0:0:0:0:0:0:0:0:0
#volume=100
#balance=0

I’m a bit confused about locating my DAC. I looked it up and ran aplay -l and get the following:

aplay -l output

**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 8: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 9: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: PCH [HDA Intel PCH], device 0: 92HD93BXX Analog [92HD93BXX Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0

I’m going to keep on working on it! I think maybe I will give an estimate of one or two weeks to figure all this Linux sound out.

Thank you everyone for all your suggestions. And please, any more suggestions would be very helpful. I remember when The Cult first came out. I was driving on the freeway in Los Angeles and they played it on KROQ. It was very great!

Could you also include what release your using, 20.04 22.045 24.04?

Also it looks like you may still be using Pulseaudio to see please show these:

systemctl --user status pulseaudio 
### And
systemctl --user status pipewire

BTW this is my current config:

My Conf

###########

GPU API

###########

Controls which type of graphics APIs will be accepted, switch to “d3d11” (on Windows) or “opengl” if you have issues

Uncomment one API only

Vulkan Linux, Windows (preferred)

gpu-api=vulkan

DirectX on Windows

gpu-api=d3d11

OpenGL on Linux or macOS or Windows

gpu-api=opengl

##########

Player

##########

#input-ipc-server=/tmp/mpvsocket
hr-seek-framedrop=no
no-resume-playback
border=no # recommended for ModernX OSC
msg-color=yes
msg-module=yes

General

fullscreen=yes # Always open the video player in full screen

keep-open=yes # Don’t close the player after finishing the video

autofit=85%x85% # Start mpv with a % smaller resolution of your screen
cursor-autohide=100 # Cursor hide in ms

###############

Screenshots

###############

screenshot-template=“%x/Screens/Screenshot-%F-T%wH.%wM.%wS.%wT-F%{estimated-frame-number}”
screenshot-format=png # Set screenshot format
screenshot-png-compression=4 # Range is 0 to 10. 0 being no compression.
screenshot-tag-colorspace=yes
screenshot-high-bit-depth=yes # Same output bitdepth as the video

###########

OSC/OSD

###########

osc=no # ‘no’ required for MordernX OSC
osd-bar=yes # Do not remove/comment if mpv_thumbnail_script_client_osc.lua is being used.
osd-font=‘Inter Tight Medium’ # Set a font for OSC
osd-font-size=30 # Set a font size
osd-color=‘#CCFFFFFF’ # ARGB format
osd-border-color=‘#DD322640’ # ARGB format
osd-bar-align-y=-1 # progress bar y alignment (-1 top, 0 centered, 1 bottom)
osd-border-size=2 # size for osd text and progress bar
osd-bar-h=1 # height of osd bar as a fractional percentage of your screen height
osd-bar-w=60 # width of " " "

########

Subs

########

blend-subtitles=no
sub-ass-vsfilter-blur-compat=yes # Backward compatibility for vsfilter fansubs
sub-ass-scale-with-window=no # May have undesired effects with signs being misplaced.
sub-auto=fuzzy # external subs don’t have to match the file name exactly to autoload

sub-gauss=0.6 # Some settings fixing VOB/PGS subtitles (creating blur & changing yellow subs to gray)

sub-file-paths-append=ass # search for external subs in these relative subdirectories
sub-file-paths-append=srt
sub-file-paths-append=sub
sub-file-paths-append=subs
sub-file-paths-append=subtitles
demuxer-mkv-subtitle-preroll=yes # try to correctly show embedded subs when seeking
embeddedfonts=yes # use embedded fonts for SSA/ASS subs
sub-fix-timing=no # do not try to fix gaps (which might make it worse in some cases). Enable if there are scenebleeds.

Subs - Forced

sub-font=Open Sans SemiBold
sub-font-size=46
sub-blur=0.3
sub-border-color=0.0/0.0/0.0/0.8
sub-border-size=3.2
sub-color=0.9/0.9/0.9/1.0
sub-margin-x=100
sub-margin-y=50
sub-shadow-color=0.0/0.0/0.0/0.25
sub-shadow-offset=0

#########

Audio

#########

volume-max=200 # maximum volume in %, everything above 100 results in amplification
audio-stream-silence # fix audio popping on random seek
audio-file-auto=fuzzy # external audio doesn’t has to match the file name exactly to autoload
audio-pitch-correction=yes # automatically insert scaletempo when playing with higher speed

Languages

alang=jpn,jp,eng,en,enUS,en-US,de,ger # Audio language priority
slang=eng,en,und,de,ger,jp,jap # Subtitle language priority

##################

Video Profiles

##################

profile=high-quality # mpv --show-profile=gpu-hq
hwdec=auto-copy # enable hardware decoding, defaults to ‘no’
vo=gpu-next # GPU-Next: GPU Next vs GPU · mpv-player/mpv Wiki · GitHub

Dither

dither-depth=auto

Debanding

deband=yes
deband-iterations=4
deband-threshold=35
deband-range=16
deband-grain=4

Luma up (uncomment one shader line only) See: Mathematically Evaluating mpv's Resampling Algorithms

glsl-shader=“~~/shaders/ravu-zoom-ar-r3-rgb.hook” # good balance between performance and quality
scale=ewa_lanczos
scale-blur=0.981251

Luma down (optional, uncomment shader line if your hardware can support it)

dscale=catmull_rom
correct-downscaling=yes
linear-downscaling=no

Chroma up + down (optional, uncomment one shader line only if your hardware can support it)

glsl-shader=“~~/shaders/JointBilateral.glsl”

glsl-shader=“~~/shaders/FastBilateral.glsl”

glsl-shader=“~~/shaders/CfL_Prediction.glsl”
cscale=lanczos
sigmoid-upscaling=yes

Interpolation

video-sync=display-resample
interpolation=yes
tscale=sphinx
tscale-blur=0.6991556596428412
tscale-radius=1.05
tscale-clamp=0.0

SDR

tone-mapping=bt.2446a

HDR

target-colorspace-hint=yes

############

Playback

############

deinterlace=no # global reset of deinterlacing to off

[default]

apply all luma and chroma upscaling and downscaling settings

apply motion interpolation

############################

Protocol Specific Config

############################

[protocol.http]
hls-bitrate=max # use max quality for HLS streams
cache=yes
no-cache-pause # don’t pause when the cache runs low

[protocol.https]
profile=protocol.http

[protocol.ytdl]
profile=protocol.http

Plays Video’s nicely as well.

My version of Ubuntu: 24.04.2 LTS (from Xubuntu).

Output from: systemctl --user status pulseaudio

details - pulseaudio

○ pulseaudio.service - Sound Service
Loaded: loaded (/usr/lib/systemd/user/pulseaudio.service; enabled; preset: enab>
Active: inactive (dead)
TriggeredBy: ○ pulseaudio.socket

and from: systemctl --user status pipewire

details - pipewire

● pipewire.service - PipeWire Multimedia Service
Loaded: loaded (/usr/lib/systemd/user/pipewire.service; enabled; preset: enabled)
Active: active (running) since Wed 2025-04-23 11:03:38 EDT; 4h 21min ago
TriggeredBy: ● pipewire.socket
Main PID: 2002 (pipewire)
Tasks: 3 (limit: 9139)
Memory: 12.2M (peak: 12.9M)
CPU: 11.924s
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
└─2002 /usr/bin/pipewire

Apr 23 11:03:38 ssd-01-Latitude-E6430 systemd[1990]: Started pipewire.service - PipeWire Multimedia Service.
Apr 23 11:03:38 ssd-01-Latitude-E6430 pipewire[2002]: mod.jackdbus-detect: Failed to receive jackdbus reply: org.freedesktop.DBus.Error.ServiceUnknown: The name org.jackaudio.service was not provided by any .service files

Thank you for taking a look. Also, I got some printed material on Linux audio I plan on reading through over the next week or two.

Also, thanks for the config file! Its good to have a template to get started.