VLC, ffmpeg et codecs

3 réponses
Avatar
Yliur
Bonjour

Par curiosité, je me demande comment tout ce petit monde s'imbrique...

Si je comprends bien, ffmpeg est un projet de développement de
bibliothèques/codecs + un outil en ligne de commande pour l'encodage
audio/vidéo.

VLC semble s'appuyer sur tout ou partie de ce projet, tout en indiquant
qu'ils n'utilisent pas de codecs (en fait je pense qu'ils font référence
au fait de ne pas utiliser des codecs fournis par le système sous
Windows : VLC choisit précisément le code qu'il exécute pour
encoder/décoder de l'audio/vidéo).

Les gens de VLC indiquent travailler sur des codecs : il s'agit de
bibliothèques du projet ffmpeg ou à côté, qui ne sont pas propres à VLC
au final ?

Et que fait VLC par-dessus tout ça ? Le projet semble assez gros, il
n'y a pas seulement une interface graphique dedans...

Question annexe pour gstreamer : il s'agit d'outils permettant de gérer
des flux audio/vidéos, pour constituer une chaîne de traitement
(lecture, filtre, ...) ?

Merci

Yliur

3 réponses

Avatar
Jo Engo
Le Mon, 05 Mar 2018 01:16:08 +0100, Yliur a écrit :
Si je comprends bien

Ce message me paraît tout à fait en charte dans fcal
(fr.comp.applications.libres) et y aura probablement des réponses.
Avatar
Nicolas George
Yliur , dans le message , a écrit :
Si je comprends bien, ffmpeg est un projet de développement de
bibliothèques/codecs + un outil en ligne de commande pour l'encodage
audio/vidéo.
VLC semble s'appuyer sur tout ou partie de ce projet, tout en indiquant
qu'ils n'utilisent pas de codecs (en fait je pense qu'ils font référence
au fait de ne pas utiliser des codecs fournis par le système sous
Windows : VLC choisit précisément le code qu'il exécute pour
encoder/décoder de l'audio/vidéo).

Tu as probablement raison sur le sens de leur affirmation.
Un « codec », c'est un encodeur ou un décodeur, c'est à dire un bout de
programme capable de transformer un flux vidéo ou un flux audio d'une
forme prête à l'affichage vers une forme prête au stockage très
compressée, ou un bout de programme capable de l'opération inverse. Pour
VLC, c'est surtout des décodeurs qui sont nécessaires.
Souvent, les codecs viennent sous forme de bibliothèques, pour pouvoir
être utilisés par de nombreuses applications. Parfois, ces bibliothèques
sont conçues avec une interface standardisée pour pouvoir être chargées
dynamiquement ; ça permet à n'importe quel vendeur de distribuer son
propre codec NIH, et donc c'est très populaire dans le monde
propriétaire.
FFmpeg, c'est un projet qui implémente de nombreux codecs, avec une
interface unifiée, plus des encapsulations de codecs tiers avec la même
interface, plus des modules pour d'autres aspects (décodage des fichiers
d'encapsulation, accélération matérielle). Ça sait à peu près tout lire.
Et ça ne prévoit pas de chargement dynamique. Sont disponibles les
codecs prévus au moment de la compilation.
Les gens de VLC indiquent travailler sur des codecs : il s'agit de
bibliothèques du projet ffmpeg ou à côté, qui ne sont pas propres à VLC
au final ?

VLC utilise FFmpeg pour la plupart de ses tâches de décodage, mais il
utilise parfois directement d'autres bibliothèques pour certains
formats. D'autre part, ils aident matériellement le développement de
certaines bibliothèques, et même un peu de FFmpeg, parce qu'ils ont pas
mal de moyens.
Et que fait VLC par-dessus tout ça ? Le projet semble assez gros, il
n'y a pas seulement une interface graphique dedans...

Il y a une interface graphique, ce n'est pas rien, des infrastructures
pour le traitement de la vidéo, des systèmes clients pour des télés
connectées, etc. La liste des features doit se trouver assez facilement.
Question annexe pour gstreamer : il s'agit d'outils permettant de gérer
des flux audio/vidéos, pour constituer une chaîne de traitement
(lecture, filtre, ...) ?

gstreamer, c'est un ensemble de bibliothèques et d'outils qui permet de
construire une chaîne de traitement audio-vidéo qui ne marche pas.
Avatar
Yliur
Le 05 Mar 2018 16:34:54 GMT
Nicolas George <nicolas$ a écrit :
[...]

D'accord, merci pour toutes ces précisions.