logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 07-06-2016 17:41:35

Thuban
aka prx
Distrib. : OpenBSD
Noyau : current
(G)UI : cwm
Inscription : 09-01-2009
Site Web

Streaming avec ffmpeg

Coucou smile
Je crois qu'il y a des gourous de ffmpeg par ici. Voilà mon problème, je souhaites convertir des fichiers .avi au fur et à mesure qu'ils sont téléchargés, afin de pouvoir les visionner dans une balise <video>.
Plusieurs questions se posent :
1. Est-ce possible de convertir un fichier partiel avec ffmpeg pour le "streamer"?
2. Quel codec utiliser pour convertir un fichier .avi en un format lisible en html5? Je pensais à du ogg (car de toutes façon, le avi, ce n'est jamais une grande qualité), mais si vous avez d'autres conseils je prends smile
3. Si les 2 autres questions ont une réponse, quelle commande utiliser avec ffmpeg?

Merci smile

Hors ligne

#2 07-06-2016 19:02:37

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : Streaming avec ffmpeg

Salut Thuban, c'est une très bonne question....avec une réponse difficile

Deux trucs à séparer, le codec et le format d'encapsulation. avi est un format, h264 un codec.

Pour faire du streaming de fichier en cours d'écriture, il faut un format compatible et aussi un codec compatible smile
Généralement le codec peut découper en petit segment (chunck) de 5/10 secondes la vidéo lors de l'enregistrement. Du coup, si le premier segment est arrivé on peut le lire, le temps que les suivants arrivent. Si on a un bon débit, on peut avoir un différé très court.

En tout cas si les fichiers vidéos sources existent déjà dans un format et un codec qui ne supporte pas les chunks cela me parait difficile de le streamer avant qu'il soit complet.
Il faut faire un test de lecture avec vlc ou ffplay :

ffplay mon-morceau-de-fichier.avi


Il peut éventuellement lire le début mais ne pas mettre à jour la durée qui augmente au fur et à mesure.


Pour la partie diffusion en direct dans une balise video <html5>, cela doit être possible. Je ne partirai pas sur format ogg mais plutôt webm avec un codec VP9 (ou VP8).
Regarde ici :
https://trac.ffmpeg.org/wiki/StreamingGuide
https://trac.ffmpeg.org/wiki/EncodingForStreamingSites

Pour les balises http://www.html5rocks.com/en/tutorials/ … _locale=fr et http://diveintohtml5.info/video.html

Tu peux aussi regarder du côte de https://obsproject.com/
Je ne l'ai pas testé mais j'ai un collègue qui diffuse son écran PC et une webcam sur twitch en direct, utilise ce logiciel.

VLC doit est aussi capable de faire ce genre de trucs

Hors ligne

#3 07-06-2016 19:54:34

Thuban
aka prx
Distrib. : OpenBSD
Noyau : current
(G)UI : cwm
Inscription : 09-01-2009
Site Web

Re : Streaming avec ffmpeg

Merci, que de bonnes pistes à étudier!

Hors ligne

#4 07-06-2016 20:46:07

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : Streaming avec ffmpeg

Oui, j'ai pas de solution clé en main, il faut fouiller un peu dans tout ça. La solution est dans la combinaison de toutes ses pistes smile

Sur les sites des codecs il y a pas mal d'info aussi :
http://wiki.webmproject.org/adaptive-st … g-via-dash

https://www.virag.si/2012/11/streaming- … th-ffmpeg/

Hors ligne

#5 07-06-2016 20:55:24

Thuban
aka prx
Distrib. : OpenBSD
Noyau : current
(G)UI : cwm
Inscription : 09-01-2009
Site Web

Re : Streaming avec ffmpeg

Non mais c'est super hein smile
Je ne m'attendais pas à un truc tout prêt pour une idée pareille tongue
C'est juste que avec dontpanic, j'aimerais pouvoir faire en sorte de voir les .avi dans le navigateur, car il y a encore trop de .avi qui circulent...

Hors ligne

#6 08-06-2016 21:31:32

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : Streaming avec ffmpeg

Changer de format c'est facile, il y a une ligne de commande pour ça smile

ffmpeg -i video.avi -c copy video.mkv


https://wiki.debian.org/fr/ffmpeg#Changer_de_Format

Même si l'on ne peut pas faire tout et n'importe quoi, tous les formats n'acceptent pas tous les codecs.
Videolan fournit une matrice des possibilités : https://www.videolan.org/streaming-features.html
Je pense qu'elle est à jour...

Hors ligne

#7 09-06-2016 08:00:47

Thuban
aka prx
Distrib. : OpenBSD
Noyau : current
(G)UI : cwm
Inscription : 09-01-2009
Site Web

Re : Streaming avec ffmpeg

Alors oui, changer de format ça va encore. La difficulté, c'est de changer le format d'un fichier vidéo au fur et à mesure qu'il est téléchargé. Je crois que je rêve un peu trop smile

Hors ligne

#8 09-06-2016 09:39:10

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : Streaming avec ffmpeg

Lire c'est transcoder, en quelque sorte... Si tu arrives à lire le fichier tu pourras le transcoder. Mais il faut penser aux vitesses. Il ne faut pas que le transcodage ou la lecture aille plus vite que le téléchargement sinon la tâche risque de s'arrêter en cours par manque de donnée.

On compte en temps réél le plus souvent. Si le fichier dure 1 heure, il faut que le téléchargement dure moins d'une heure... A moins de différer la lecture suffisamment, on attends que les 5 premières minutes soient là puis on démarre la lecture...
Ce calcul dépends de la machine, de la vitesse des disques, du codec, etc.... Seule l'expérience peut parler....

Hors ligne

#9 09-06-2016 10:22:29

Thuban
aka prx
Distrib. : OpenBSD
Noyau : current
(G)UI : cwm
Inscription : 09-01-2009
Site Web

Re : Streaming avec ffmpeg

Cela confirme ce que je craignais. Autant je peux bricoler un truc pour mon utilisation personnelle, que je ne peux pas faire un truc fonctionnel sur toutes les machines.
Je vais remplacer la balise <video> par <embed> pour les .avi dans un premier temps.

Hors ligne

#10 11-06-2016 07:41:18

kao
Modérateur
Distrib. : Testing
Noyau : Linux 4.quelquechose
(G)UI : Gnome 3
Inscription : 27-09-2012
Site Web

Re : Streaming avec ffmpeg

Oui, dès que l'on parle de performance, il faut un cadre définit : configuration matérielle minimum et presets spécifiques adaptés à l'équipement en question.
Un peu comme pour les jeux vidéos où l'on précise le minimum requis....

Cela peut être un vrai casse tête à mettre en place. Mais tu peux partir de ta configuration matérielle à toi et dire que c'est le minimum, au moins tu l'auras testé smile

Hors ligne

Pied de page des forums