finamp
finamp copied to clipboard
Skipping Songs While Transcoding Causes Audio Glitches
Sorry if this shows as a duplicate, my main public account (midwesternrodent) is apparently flagged since I logged into it with a VPN so I have to wait for github support to make my contributions visible again.
Last Updated 8/30/2024
Look at the edit history of this comment to see the original issue report.
Steps to reproduce
- Turn on transcoded streams in finamp
- Shuffle your entire library and skip songs like a maniac, waiting just a second for a song to start buffering before skipping to the next one.
- In the Jellyfin Admin Console, look at your most recent transcoded logs until you find something like below (Note the "[q] command received. Exiting line" It will occur near the bottom. It's important that you see some files were opened for writing prior to that command being issued, and that you see one file opened for writing after it was issued.
size= 0kB time=-577014:32:22.77 bitrate= -0.0kbits/s speed=N/A
[hls @ 0x617991b04380] Opening '/var/lib/jellyfin/transcodes/f569acf3f179213107393728c98a234f0.ts' for writing
[hls @ 0x617991b04380] Opening '/var/lib/jellyfin/transcodes/f569acf3f179213107393728c98a234f1.ts' for writing
[q] command received. Exiting.
[hls @ 0x617991b04380] Opening '/var/lib/jellyfin/transcodes/f569acf3f179213107393728c98a234f2.ts' for writing
size=N/A time=00:00:00.00 bitrate=N/A speed= 0x
video:0kB audio:253kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
- Play that song all the way through on the same device you skipped songs on. Listen for a brief cutout in the song (see example videos below)
Known to affect the following versions of Finamp
Version: 0.9.9, 0.9.8, 0.6.23, Debian Flatpak
Server Information
Jellyfin Version: 10.9.8.0
This is where things get unique. I have Jellyfin running in an unprivileged LXC on a proxmox host, I'm passing an Intel 12th gen i5 iGPU to the LXC via mount entries in the node.conf file, and I'm accessing the files for Jellyfin over an NFS share mounted to my proxmox host and passed through to the LXC in a similar manner. In case it's relevant, I've shared my conf below.
arch: amd64
cores: 2
features: nesting=1
hostname: jamjar
memory: 4096
mp0: /mnt/pve/jellyshare,mp=/mnt/truenas/jellyshare
nameserver: [redacted]
net0: name=eth0,bridge=vmbr0,gw=[redacted],hwaddr=[redacted],ip=[redacted]
/24,tag=[redacted],type=veth
ostype: debian
rootfs: local-lvm:vm-2010-disk-1,size=32G
swap: 4096
unprivileged: 1
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=fi
le 0, 0
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir
lxc.idmap: u 0 100000 65536
lxc.idmap: g 0 100000 44
lxc.idmap: g 44 44 1
lxc.idmap: g 45 100045 61
lxc.idmap: g 106 104 1
lxc.idmap: g 107 100107 65429
Workarounds
- Turning off transcoding in finamp solves this issue if the file can be direct-played
- Clearing the the transcoding directory in Jellyfin resolves this problem temporarily (though it will reoccur, by default Jellyfin clears this log once daily, it can be increased to run every 15 minutes as a hacky workaround for now)
ScreenRecording on Youtube Another Example
finamp-logs.txt Jellyfin-Server-Logs-Using-Finamp.txt Jellyfin-ServerLogs-Using-Standard-App.txt
Taylor Swift - Question - Before Playing.txt Taylor Swift - Question - Second File After Playing.txt