Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierKorben

ffmpeg-over-ip - Le transcodage GPU distant pour Jellyfin

Par : Korben ✨
4 mai 2026 à 16:15

Jellyfin sans GPU, c'est la croix et la bannière dès que quelqu'un lance un film en 4K. Mais c'était sans compter sur ffmpeg-over-ip qui est capable de transformer un serveur équipé d'un GPU en endpoint de transcoding distant, accessible via un simple binaire qui se fait passer pour ffmpeg. Y'a pas de passthrough GPU, ni besoin de vous lancer dans la config de point de montage réseau exotique.

Le principe c'est que le client reçoit les commandes ffmpeg de Jellyfin (ou Emby), les sérialise et les envoie ensuite via TCP (port 5050) vers un serveur qui lui dispose d'un bon GPU. Et côté Jellyfin, rien ne change puisque le binaire répond exactement comme ffmpeg le ferait (et je vous rassure, y'a un peu d'authentification pour éviter de vous faire squatter votre serveur de transcoding à l'insu de votre plein gré).

Alors imaginons un peu dans quelle situation ça peut être utile... Par exemple, vous pourriez avoir un NUC ou mini-PC tout neuf qui fait tourner Jellyfin dans Docker, et à côté une vieille tour avec une GTX qui traîne dans un coin pour le transcodage. L'avantage c'est que plusieurs clients peuvent ainsi partager le même serveur GPU en parallèle, donc ffmpeg-over-ip peut valoir le coup si vous avez du matériel qui dort dans un coin.

L'outil est signé Anees Iqbal (steelbrain) et voici comment l'installer (pensez à vérifier le contenu du .sh avant) :

curl -fsSL https://ffmpeg-over-ip.com/install-client.sh | sh

Windows a aussi droit à son équivalent PowerShell si vous voulez.

Pour brancher ça sur Jellyfin ensuite, c'est direction Dashboard → Playback → chemin ffmpeg → et faites pointer vers ffmpeg-over-ip-client. Notez que ffprobe doit aussi être redirigé car Jellyfin l'appelle séparément pour les métadonnées. Vous pouvez faire un lien symbolique pour être tranquille :

ln -s ffmpeg-over-ip-client ffprobe

Et ensuite, pour vérifier, cette commande : ./ffmpeg-over-ip-client -version devrait vous retourner les infos de l'instance ffmpeg distante. Si ça répond, c'est que c'est bon !

Notez que la config permet de passer par des variables d'environnement du genre FFMPEG_OVER_IP_CLIENT_ADDRESS pour l'adresse du serveur, FFMPEG_OVER_IP_CLIENT_AUTH_SECRET pour la clé HMAC. Et pour tout ce qui est paramètres avancés, disons que les remappings de filtres complexes qu'on peut faire avec ffmpeg nécessitent encore un fichier .jsonc à créer et paramétrer.

Côté serveur, les accélérations supportées sont : NVENC (NVIDIA), QSV (Intel), VAAPI (Linux), AMF (AMD), VideoToolbox (macOS). Et comme c'est basé sur jellyfin-ffmpeg, du coup y'a toutes les accélérations habituelles sans avoir à recompiler.

Par contre, attention si le serveur GPU tombe, y'aura aucun fallback automatique vers le CPU local. Et si votre réseau interne est en 100Mbps et que vous transcodez du 4K HEVC, le goulot d'étranglement sera le transit réseau, pas le GPU. Donc optez pour un réseau en gigabit minimum dans ce cas.

Bref, c'est simple, propre, et très bien pensé par exemple pour les setups Docker qui n'ont pas d'accès direct au matériel.

Tunarr - Recréer la télévision qu'on aime zapper dans Plex

Par : Korben ✨
1 mai 2026 à 09:08

Vous vous souvenez de l'époque où on s'écroulait comme des merdes dans notre canapé après une grosse journée de boulot et où on regardait juste ce que la télé nous balançait ? Pas de choix à faire sur Netflix, ni de recommandation sur l'Apple TV. On zappait juste en mode no-brain jusqu'à ce qu'on tombe sur une connerie qui réveille notre cerveau reptilien.

Eh bah le dev Chris Benincasa a créé Tunarr , un soft open source qui ressuscite ce truc-là en transformant votre Plex ou Jellyfin en chaîne de TV en continue.

Grâce à Tunarr, vous configurez vos chaînes dans une interface web (en glisser-déposer...), le soft émule un tuner HDHomeRun (le standard de la TV réseau aux US), que Plex, Jellyfin ou Emby reconnaissent ensuite comme une vraie source TV. Et voilà comment vous avez maintenant votre propre antenne maison.

Ou alors vous exportez en M3U pour des players IPTV comme Tivimate ou UHF, le tout avec un EPG intégré (c'est le guide des programmes), des bumpers (vous savez ces petites séquences Tchii Tchaaa ou M6 Mhmmmh des chaînes TV), des pubs vintage entre les programmes et même des clips musicaux pour faire authentique.

Bref, du déjà-vu, mais avec votre catalogue d'émissions à vous.

L'histoire de ce projet est d'ailleurs assez marrante car c'est un fork de dizqueTV (de vexorian), lui-même fork de pseudotv-plex (de DEFENDORe) et chacun de ces devs contribuent à Tunarr. 3 générations de mainteneurs qui collaborent sur le même projet, ça fait plaisir à voir car dans l'open source et la tech en général, ce genre de filiation c'est souvent rare tant les egos sont groooos.

Et côté fonctionnalités, c'est plutôt pas mal. Vous programmez vos chaînes par créneaux horaires (comme une vraie grille TV), par shuffle aléatoire ou par blocs cycliques. Vous balancez alors du contenu de remplissage entre les épisodes, vous personnalisez les profils de transcodage par chaîne, et vous regardez ça directement dans votre navigateur web ou via votre client Plex préféré.

De son côté, le hardware transcoding gère NVENC, VAAPI, Intel QuickSync et VideoToolbox sur macOS, donc votre GPU ne bosse pas pour rien.

Pour ma part, je me ferais bien une ambiance "C'est dimanche" qui balance des séries TV + vidéo gag et des docs sur la nature toute la journée, ou une "chaîne minuit" uniquement pour les vieux films d'horreur et les clips MTV de ma jeunesse ^^. Aaaah, nostalgie quand tu nous tiens ! Et je mettrais des vrais bumpers vintage entre les programmes, comme ça, ça donnerait l'illusion qu'on est sur une vraie programmation TF1 des années 90. Ce serait chouette non ?

Pour faire tourner ça, un Docker compose suffit (port 8000), avec un FFmpeg 6.1 minimum (7.1.1 recommandé). Vous lancez simplement :

docker run -d -p 8000:8000 -v ./tunarr-data:/config/tunarr chrisbenincasa/tunarr:latest

et c'est en ligne !

Maintenant sauf si votre Pi 3 a 2 Go de RAM, le transcoding 4K ne marchera pas mais sur du x86 récent ou un Pi 5, ça envoie carrément bien.

Et si vous préférez la méthode à l'ancienne, y'a également des binaires Linux, macOS, Windows, et même une image ARM pour Raspberry Pi . Le code est en TypeScript à 99,6%, sous license zlib (très permissive) et y'a des nouvelles releases régulières.

Voilà, ce projet n'a aucun sens dans le monde du streaming à la demande et c'est précisément pour ça que je vous en parle ! Si vous voulez retrouver l'ambiance zapping, c'est par ici ou sur le GitHub .

Et un GRAND merci à Johnny pour l'info !!

❌
❌