Ce n'est pas une question spécifique d'ubuntu/linux mais j'espère que quelqu'un pourra m'aider.
Je fais quelques serveur de flux vidéo qui sur PC lent (CPU 1GHz, mauvais GPU (via)). Est-ce que quelqu'un sait quel codec dois-je utiliser?
La source est YUV (PAL) 720x576, qui est trop volumineuse pour pouvoir être diffusée directement (bande passante LAN de 100 Mbits utilisée). Je veux obtenir flux caa 200kB/s donc il conviendrait aussi sur internet.
J'ai trouvé une solution qui fonctionne assez bien.
Cette solution utilise VLC pour tous les travaux. La vidéo est capturée à partir de la webcam USB, compressée et transmise au Web. Stream est compatible HTML 5, il peut donc être utilisé pour le streaming.
Cette solution utilise VLC pour l'ensemble du processus:
vlc -v v4l2:///dev/video0:width=320:height=240 --v4l2-chroma=UYVY --v4l2-fps=5 --sout "#transcode{vcodec=theo,vb=256,scale=1,acodec=none,fps=25}:standard{access=http,mux=ogg,dst=:8081/stream.ogg}"
J'ai fait des tests avec Intel Atom D525. L'utilisation du processeur est d'environ 20% et le transfert réseau est de 60 Ko/s
Pour lire une vidéo, il vous suffit d'ouvrir un navigateur prenant en charge html5 ogg (Firefox) à l'adresse suivante:
http://localhost:8081/stream.ogg
ou un autre VLC
vlc http://localhost:8081/stream.ogg ----network-caching=100
Si vous souhaitez obtenir une meilleure image, vous pouvez changer
vb=1024
Faites juste quelques tests. (bit (pas octet) par seconde)width=640:height=480
. Vérifier les résolutions disponibles de la webcamIl y a beaucoup de choses que vous devez vérifier si votre CPU est trop élevé. Votre caméra doit prendre en charge de manière native la résolution et l’espace colorimétrique choisis. Toute conversion sur le processeur est lente! Essayez de choisir un autre --v4l2-chroma=UYVY
(UYVY, YUY2, RV24, RV32, MJPEG, ...).
Pour vérifier quelles sont les capacités des appareils photo, vous pouvez utiliser le programme guvcview
. Il peut être installé via Software Center.