-
-
Notifications
You must be signed in to change notification settings - Fork 290
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] Path to FFMPEG No Longer Updatable in 10.8.13 #899
Comments
Jellyfin not picking up the path correctly from the xml seems like a Jellyfin bug which has popped up across RPM and Free-BSD builds, however its been completely removed in 10.9 https://jellyfin.org/posts/jellyfin-release-10.9.0#transcoding--ffmpeg. Agree the mod will need to change from relying on end user changes to setting the --ffmpeg flag from an environment variable. I have changed my setup since creating this mod and no longer actively use it. I will see if I can find some time to update but happy for someone else to take that on in the meantime. |
I can make the needed changes. Are there any good examples for altering the run script? My initial thought is to edit the |
I've added the svc directory with the following script with #!/usr/bin/with-contenv bash
# shellcheck shell=bash
export \
JELLYFIN_DATA_DIR="/config/data" \
JELLYFIN_CONFIG_DIR="/config" \
JELLYFIN_LOG_DIR="/config/log" \
JELLYFIN_CACHE_DIR="/config/cache" \
JELLYFIN_WEB_DIR="/usr/share/jellyfin/web"
exec \
s6-notifyoncheck -d -n 300 -w 1000 \
s6-setuidgid abc /usr/bin/jellyfin \
--ffmpeg=/usr/local/bin/rffmpeg/wol_rffmpeg/ffmpeg I've hard coded the flag here to test on my environment with the type file containing "longrun", but it hasn't worked. I still see the default path in my jellyfin logs. Is the svc script supposed to overwrite the main jellyfin run script, or does anything additional need to be done? |
If you want a mod to overwrite the built-in init files you need to place them in exactly the same locations so that when the mod is unpacked it replaced them. |
Thank you! Working now. I suppose I can import |
According to the 10.9 release notes
|
Do docker env vars get imported into the run script by default? Can't seem to get mine to take: #!/usr/bin/with-contenv bash
# shellcheck shell=bash
if [ -z "$RFFMPEG_PATH" ]
then
RFFMPEG_PATH=/usr/local/bin/ffmpeg
fi
export \
JELLYFIN_DATA_DIR="/config/data" \
JELLYFIN_CONFIG_DIR="/config" \
JELLYFIN_LOG_DIR="/config/log" \
JELLYFIN_CACHE_DIR="/config/cache" \
JELLYFIN_WEB_DIR="/usr/share/jellyfin/web"
exec \
s6-notifyoncheck -d -n 300 -w 1000 \
s6-setuidgid abc /usr/bin/jellyfin \
--ffmpeg="$RFFMPEG_PATH" By the way this is my first time editing one of these. If there's a better way, let me know. |
Disregard the bit about the variable. I must have forgotten to write after editing my yaml. Second question still valid! :) |
Maybe we should add that var to the jellyfin image as an unlisted one and this mod can just set it. No need to override the whole service file |
If we're going to do that we probably also want to add an And it'll need to be documented by the mod because there are two different RFFMPEG binaries to pick from. |
I agree with this. The readme for this mod will need to be updated to reflect it as well.
This also makes sense. Like this: #!/usr/bin/with-contenv bash
# shellcheck shell=bash
if [[ -z "$FFMPEG_PATH" || ! -f "$FFMPEG_PATH" ]]
then
FFMPEG_PATH=/usr/lib/jellyfin-ffmpeg/ffmpeg
fi
export \
JELLYFIN_DATA_DIR="/config/data" \
JELLYFIN_CONFIG_DIR="/config" \
JELLYFIN_LOG_DIR="/config/log" \
JELLYFIN_CACHE_DIR="/config/cache" \
JELLYFIN_WEB_DIR="/usr/share/jellyfin/web"
exec \
s6-notifyoncheck -d -n 300 -w 1000 \
s6-setuidgid abc /usr/bin/jellyfin \
--ffmpeg="$FFMPEG_PATH" This would be for the main jellyfin image, and the mod readme would simply need to be updated to reflect this, with the two options available. |
Happy side effect from linuxserver/docker-jellyfin#248 and linuxserver/docker-jellyfin#249 is that I realised we never added the proper health endpoint check to the nightly branch. |
I was thinking on this last night, only the wol path needs to be configured and adding an additional check that if the wol env var isn't set to native or API it just kicks off rffmpeg. Readme would still need to be updated to reflect as well. |
I think users would still want the option of providing a custom path even if they were using the mod for flexibility reasons. |
Agree ability to set a custom is good, but looks like that's being added to the main container. The wol version is only a minor shell script, and might make it easier to use only having it specified rather than giving two different possible paths in the readme. My original thought was to just sed the run script to change the -ffmpeg flag but giving it as an option in the main container give more flexibility. |
Actually, re-reading the wol script it already accommodates just running rffmpeg if API or native isn't set. |
Both Jellyfin branch PRs have merged now, providing the option of passing a |
Just be wary of anyone still running old versions who will still be pulling the mod and try not to break things for them. |
This should now be resolved by #901 |
Is there an existing issue for this?
Name of mod
jellyfin-rffmpeg
Name of base container
jellyfin
Current Behavior
As of 10.8.13, this mod is no longer usable due to the inability for users to manually set the path to the ffmpeg binary.
See here
Expected Behavior
The way by which the mod operates may have to change. Setting the value in encoding.xml followed by a restart does not seem to work either. Possibly due to:
Note that in the
run
script ofdocker-jellyfin
, the flag mentioned above is hard coded, possibly overwriting the value entered into the .xml:Steps To Reproduce
FFmpeg path
is no longer an editable field/config/encoding.xml
are already set:Environment
CPU architecture
arm64
Docker creation
Container logs
The text was updated successfully, but these errors were encountered: