Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

V4L video for Linux

27 réponses
Avatar
Rakotomandimby (R12y) Mihamina
Bonjour,

Je m'interesse de pres à theora de chez xiph. Il est pas au point, mais
bon. Mon asso compte les soutenir (en developpeurs et/ou en argent).

Mes promenades me mènent souvent vers des exemples qui emploient le "V4L".

J'ai vu cette option dans les options de compilation du Noyau. En quoi ça
consiste? ça crée un device vidéo spécial? ça fait fait quoi? à quel
usage c'est destiné?...
--
L'ASPO a pour but de démocratiser l'acces a l'informatique. Une de ses
activité est l'infogerance (http://aspo.rktmb.org/activites/infogerance)
Tél: + 33 2 38 04 26 04 ou + 33 6 33 26 13 14 (France)

10 réponses

1 2 3
Avatar
Nicolas George
R12y wrote in message :
Je m'interesse de pres à theora de chez xiph. Il est pas au point, mais
bon.


Ça marche plutôt bien. J'ai compressé quelques en Theora (+ Vorbis), et le
résultat est tout à fait satisfaisant, tout à fait comparable aux autres
codecs, et peut-être même meilleur (c'est dur à dire).

Mon asso compte les soutenir (en developpeurs et/ou en argent).


Ce serait bien. Si c'est en développeurs, le plus utile à mon avis serait
d'améliorer le support dans mplayer : corriger les bugs de détection du
temps et de seek (ça doit être facile, j'ai l'impression que c'est un bug
débile), et ajouter le support à mencoder. Ça en augmenterait
considérablement la visibilité.

Mes promenades me mènent souvent vers des exemples qui emploient le "V4L".

J'ai vu cette option dans les options de compilation du Noyau. En quoi ça
consiste? ça crée un device vidéo spécial? ça fait fait quoi? à quel
usage c'est destiné?...


C'est essentiellement destiné à gérer les cartes télé, peut-être aussi les
webcam. Ça n'a pas vraiment de lien structurel avec les codecs.

Avatar
l'indien
On Sat, 05 Mar 2005 20:21:54 +0100, Rakotomandimby (R12y) Mihamina wrote:

Bonjour,

Je m'interesse de pres à theora de chez xiph. Il est pas au point, mais
bon. Mon asso compte les soutenir (en developpeurs et/ou en argent).

Mes promenades me mènent souvent vers des exemples qui emploient le "V4L".

J'ai vu cette option dans les options de compilation du Noyau. En quoi ça
consiste? ça crée un device vidéo spécial? ça fait fait quoi? à quel
usage c'est destiné?...


Video for linux (2, maintenant...).
Comme son nom l'indique, ça rassemble tout ce qui concerne les devices
vidéo ou plus largement multimédia:
- cartes d'entrées vidéo (acquisition, carte TV, décodeurs sat cable ou
TNT...)
- webcams
etc...

Avatar
Rakotomandimby (R12y) Mihamina
( Sat, 05 Mar 2005 22:11:27 +0100 ) l'indien :
Comme son nom l'indique, ça rassemble tout ce qui concerne les devices
vidéo ou plus largement multimédia:
- cartes d'entrées vidéo (acquisition, carte TV, décodeurs sat cable ou
TNT...)
- webcams
etc...


Ok, donc concrètement ça se passe comment (je n'aipas de machine de test
disponible avant dans trois mois, et encore moins de webcam ni de carte
d'aquisition)

On selectionne V4L dans la configuration du noyau, et les sous-options qui
conviennent à ce qu'on a comme matériel, puis on plug, puisil se crée
un /dev/machin et on agit dessus ?

Aussi simple?
--
L'ASPO a pour but de démocratiser l'acces a l'informatique. Une de ses
activité est l'infogerance (http://aspo.rktmb.org/activites/infogerance)
Tél: + 33 2 38 04 26 04 ou + 33 6 33 26 13 14 (France)

Avatar
l'indien
On Sat, 05 Mar 2005 22:23:03 +0100, Rakotomandimby (R12y) Mihamina wrote:

( Sat, 05 Mar 2005 22:11:27 +0100 ) l'indien :
Comme son nom l'indique, ça rassemble tout ce qui concerne les devices
vidéo ou plus largement multimédia:
- cartes d'entrées vidéo (acquisition, carte TV, décodeurs sat cable ou
TNT...)
- webcams
etc...


Ok, donc concrètement ça se passe comment (je n'aipas de machine de test
disponible avant dans trois mois, et encore moins de webcam ni de carte
d'aquisition)

On selectionne V4L dans la configuration du noyau, et les sous-options qui
conviennent à ce qu'on a comme matériel, puis on plug, puisil se crée
un /dev/machin et on agit dessus ?

Aussi simple?


En gros oui.
Et les actions à faire sont également très simples:
pour une webam, on peut se contenter de lire sur le device et on a la
vidéo qui arrive.
Ensuite, il y a des API pour connaitre et changer le format de ce qui
arrive, pour mapper directement le buffer vidéo (c'est plus efficace: il
n'y a pas de recopie de donnée), selectionner la source (par exemple une
entrée tuner ou S-video, cas classique d'une carte TV), etc...


Avatar
Rakotomandimby (R12y) Mihamina
( Sat, 05 Mar 2005 19:42:25 +0000 ) Nicolas George :

C'est essentiellement destiné à gérer les cartes télé, peut-être aussi les
webcam. Ça n'a pas vraiment de lien structurel avec les codecs.


Justement... faire de l'encodage d'emission TV directement en theora.
c'est le projet de l'association. En gros, les chaines (gratuites) de mon
pays ont besoin d'être vue par les ressortissants qui sont hors du pays.

Il y a 7 ou 8 chaines, faire l'aquisition + encodage + envoi vers un
serveur du style Icecast etc etc ...

J'en ai déjà parlé dans un lointain fil.... Bref, si c'est aussi simple
que ce que décrit l'indien, il me reste à trouver des bonnes cartes TV.

On m'avais dit à base de chipset bt8x8.

Le 'x' fait bien office de caractere Joker là hein ? c'est ça?
Mon problème c'est que j'ai demandé sur fr.comp.sys.pc comment on fait
pour rechercher une carte sur les catalogues avec bt8x8, il me semble bien
qu'il faille demander une par une...

Il faudra que j'active le V4L donc. Ok. Merci en tout cas.
--
L'ASPO a pour but de démocratiser l'acces a l'informatique. Une de ses
activité est l'infogerance (http://aspo.rktmb.org/activites/infogerance)
Tél: + 33 2 38 04 26 04 ou + 33 6 33 26 13 14 (France)

Avatar
Jerome Lambert
(...)
Justement... faire de l'encodage d'emission TV directement en theora.
c'est le projet de l'association. En gros, les chaines (gratuites) de mon
pays ont besoin d'être vue par les ressortissants qui sont hors du pays.


Petit conseil: renseigne-toi sur les droits de diffusion qui sont
relatifs aux chaines proposées.

Par exemple, la version on-line complète du journal télévisé belge est
limité aux abonnés des FAI du pays, et une version dépourvue des images
achetées à l'étranger (à Reuter p.ex.) est diponible pour le reste du
monde, vu que la RTBF ne dispose que d'un droit de diffusion limité au
pays pour ces image-là.
C'est par la même raison que les cablo belges cryptent les chaines
espagnoles et italiennes lors d'événements dont on doit négocier les
droits de retransmission (typiquement les évènements sportifs ou
musicaux tels que des concerts).

(...)

Avatar
Nicolas George
R12y wrote in message :
Justement... faire de l'encodage d'emission TV directement en theora.
c'est le projet de l'association. En gros, les chaines (gratuites) de mon
pays ont besoin d'être vue par les ressortissants qui sont hors du pays.


Ce que je voulais dire, c'est qu'il n'y avait pas plus de rapport entre
Theora et V4L que, disons, entre Vorbis et ALSA : l'un fournit les données,
l'autre les traites, mais chacun peut être changé indépendemment de l'autre.

Pour ce qui est de l'encodage des émissions, « directement », je n'y crois
pas. Même avec une toute petite résolution, il faut un temps considérable
pour l'encodage. Si tu peux investir cinq ou six PC récents par chaîne, tu
peux peut-être arriver à encoder toutes les émissions avec un délai borné,
mais pas mieux.

Avatar
l'indien
On Sat, 05 Mar 2005 23:59:37 +0100, Rakotomandimby (R12y) Mihamina wrote:

( Sat, 05 Mar 2005 19:42:25 +0000 ) Nicolas George :

C'est essentiellement destiné à gérer les cartes télé, peut-être aussi les
webcam. Ça n'a pas vraiment de lien structurel avec les codecs.


Justement... faire de l'encodage d'emission TV directement en theora.
c'est le projet de l'association. En gros, les chaines (gratuites) de mon
pays ont besoin d'être vue par les ressortissants qui sont hors du pays.

Il y a 7 ou 8 chaines, faire l'aquisition + encodage + envoi vers un
serveur du style Icecast etc etc ...


En partant de mencoder, reste plus qu'à faire le streaming ;-)
Mais, faire l'acquisition est vraiment très simple, surtout en mappant
les buffers en mmap: il n'y a rien à faire ;-)

J'en ai déjà parlé dans un lointain fil.... Bref, si c'est aussi simple
que ce que décrit l'indien, il me reste à trouver des bonnes cartes TV.

On m'avais dit à base de chipset bt8x8.

Le 'x' fait bien office de caractere Joker là hein ? c'est ça?


C'est bien celà...
Généralement, ce sont des BT878, les 848 ont pratiquement complètement
disparues.
Attention, pour en avoir fait l'expérience il y a quelques
jours, les cartes avec les chipset Cx88xx, qui remplacent les BT
(Brooktree a été racheté par Connexant) marchent assez mal sous Linux:
il y a divers problèmes de non-respect des couleurs, apparement aussi
des pb d'étalonnage des quartz => synchro étranges. Le résultat est donc
de très mauvaise qualité comparé à celui obtenu avec une BT878 de base.

Mon problème c'est que j'ai demandé sur fr.comp.sys.pc comment on fait
pour rechercher une carte sur les catalogues avec bt8x8, il me semble bien
qu'il faille demander une par une...


Oui. Le plus simple est d'aller en magasin et de demander à voir les
cartes: on a acheté une BT par correspondance au boulot, on a reçu une
cx<xxx> ce qui m'a permis de constater les problèmes que je cite
ci-dessus.

[...]


Avatar
Rakotomandimby (R12y) Mihamina
( Sun, 06 Mar 2005 00:40:28 +0000 ) Nicolas George :

Pour ce qui est de l'encodage des émissions, « directement », je n'y crois
pas. Même avec une toute petite résolution, il faut un temps considérable
pour l'encodage.


Ah ben voila! c'est une estimation qui m'économise du temps ça! :-)
Au moins je sais à quoi m'en tenir... Merci Nicolas.
--
L'ASPO a pour but de démocratiser l'acces a l'informatique. Une de ses
activité est l'infogerance (http://aspo.rktmb.org/activites/infogerance)
Tél: + 33 2 38 04 26 04 ou + 33 6 33 26 13 14 (France)

Avatar
l'indien
On Sun, 06 Mar 2005 11:03:52 +0100, Rakotomandimby (R12y) Mihamina wrote:

( Sun, 06 Mar 2005 00:40:28 +0000 ) Nicolas George :

Pour ce qui est de l'encodage des émissions, « directement », je n'y crois
pas. Même avec une toute petite résolution, il faut un temps considérable
pour l'encodage.


Ah ben voila! c'est une estimation qui m'économise du temps ça! :-)
Au moins je sais à quoi m'en tenir... Merci Nicolas.


Hum, ça dépend de ce que tu fais...
En général, on stream la télé en format QCIF. L'encodage en MPEG1 ou 2
n'est pas très gourmant, d'autant plus que les cartes TV te fournissent
déjà l'image en YUV. Il ne faut pas oublier que ce qui généralement
coute beaucoup de temps, ce sont les recopies mémoires, plus que
l'encodage lui même. Avec un encodeur optimisé (qui mappe les buffers
vidéo, utilise le SSE et prends bien soin de ne jamais recopier les blocs
mémoires sauf en cas de nécessité absolue), tu peux encoder de 2 à 6
chaines par PC, suivant la qualité requise et la bande passante
disponible en sortie. Bien entendu, il faut que tout soit fait dans le
même process (c.a.d également pas de threads !) et l'idéal est que tu
puisse directement mapper les buffers de socket en sortie pour le
streaming (comme ça, ils sont directement envoyés sur le réseau en DMA
sans recopie !), mais c'est plus dur à faire.

Un gros facteur limitant est la bande passante du PCI: ainsi, il
parait difficile d'encoder plus de 2 chaines par PC car il faudrait alors
presque gérer les accès PCI (en DMA, bien sur) à la main ou alors
synchroniser les quartz des cartes TV pour qu'elles ne demandent jamais le
bus PCI en même temps. C'est difficilement réalisable sans modifier le
hard voire sans réécrire les firmwares internes des cartes TV !
Par contre, il est tout à fait réaliste d'encoder en MPEG1 ou 2 en plein
écran 2 chaines à la fois, si tu ne te soucie pas trop de la bande
passante finale (si tu peux te permettre d'avoir 4 à 6 Mbps par chaine).
Si tu veux du 600 kbits, par contre, il faudra que tu passes en QCIF et
sans doute en MPEG4, donc que ton encodeur travaille beaucoup plus.
En gros, le temps d'encodage est proportionnel à la résolution. Par
contre, il augmente exponentiellement quand on essaye de réduire le
débit final.


1 2 3