Você está na página 1de 4

Are you streaming?

Devoir 2 OIM - Gstreamer


Master Informatique
2015

Le travail est faire de manire individuelle. Les rsultats sont dposer sous moodle au plus tard le
lundi 2 novembre 2015 12h00.
Veuillez tlcharger larchive OIMDM2.tar.gz qui contient les fichiers video.ogv et fourni.wav.
Modalits de remise du projet : vous devez dposer sous moodle une archive au format tar.gz (et
uniquement ce format) intitule : prenom.nom-OIM2.tar.gz (remplacez prnom et nom par VOTRE
prnom et VOTRE nom). Merci de ne pas mettre despaces ou daccents dans le nom de votre archive.
Cette archive devra contenir UNIQUEMENT :
- Un fichier pdf intitul prenom.nom-OIM-DM2.pdf comprenant les rponses commentes
- Un ou plusieurs fichiers source en langage C rpondant aux questions de la partie III
- Un fichier Makefile
Modalits de correction :
Le barme est indiqu chaque question : Partie I sur 4,5 points, Partie II sur 5,5 points, Partie III sur 7 et
3 points au total jugeront :
la qualit de votre rapport (prsentation, rdaction, documentation) : 2 points,
le respect des consignes de dpt : 1 point
Le ou les programmes en C de la partie III devront pouvoir tre excutables en salle de TP sur des
machines LINUX. Un programme ne compilant pas en salle de TP donnera la note 0 toute la partie III
moins la dernire question. Un programme ne sexcutant pas en salle de TP donnera une note maximale
de 3 toute la partie III moins la dernire question. Nous vous invitons donc tester vos programmes
dans ces salles.

Partie I : manipulation dun flux audio (4,5 points)


On s'intresse tout d'abord au greffon audiotestsrc, l'quivalent pour l'audio de videotestsrc.
Question 1 (0,5 point)
Quelle est la ligne de commande la plus basique, i.e. sans utiliser d'options, pour jouer un son avec ce
greffon, avec sortie sur haut-parleurs (ou casque audio) ? Comment s'appelle le son que vous obtenez ?
Question 2 (0,5 points)
En inspectant le greffon audiotestsrc, donner la liste des sons qu'il peut produire. Traduire en
franais cette liste.
Question 3 (0,5 point)
Donner la ligne de commande qui cre un fichier audio de format WAV partir de la commande de base
de la question 1, en prcisant une frquence de 350Hz au greffon.
Question 4 (1 point)
a. Donner la ligne de commande gstreamer qui lit le fichier et ajoute par dessus un bruit blanc.
b. Mme chose en ajoutant une troisime signal audio de votre choix dans ceux proposs par le greffon.
Question 5 (2 points)
Pour cette question, nous allons travailler avec le fichier fourni.wav
a. A laide de Matlab (ou Octave), dterminer :
- la frquence d'chantillonnage,
- la dure en nombres d'chantillons et en secondes,
- le nombre de bits d'encodage,
- la frquence des deux sons principaux prsents dans le fichier.
Pour rpondre cette question, copier le code Matlab dans votre rapport avec une figure qui vous a
permis didentifier les frquences demandes.
b. Donner la ligne de commande gstreamer qui permet de supprimer la composante la plus grave.

Partie II : manipulation de flux vido (5,5 points)


Dans cette partie, il sagit de manipuler des streams vido en ligne de commande.
Question 1 (0,5 point)
Dans la ligne de commande suivante, l'un des lments n'est pas un greffon, lequel ? C'est ce que l'on
appelle des caps en jargon gstreamer.
gst-launch filesrc location=video.ogg ! oggdemux
videoscale ! video/x-raw-yuv,height=240 ! xvimagesink

theoradec

quoi correspondent les caps en gnral ? l'aide de quel outil peut-on lister les caps d'un greffon
donn ? Donnez les caps du greffon audiotestsrc.
Question 2 (0,5 point)
Dfinissez brivement la notion de streaming, et donnez deux noms de plateformes de streaming
populaires ainsi que deux noms de protocoles courants.
Question 3 (1 point)
Voici un exemple de ligne de commande du ct serveur de flux :
gst-launch -v videotestsrc ! vp8enc ! rtpvp8pay ! udpsink host=127.0.0.1
port=9001

Dcrire en une phrase ce que fait chaque greffon dans cette commande. Quel est le protocole utilis ici ?
Mme question pour la ligne de commande ct client ou receveur :
gst-launch udpsrc port=9001 caps = "application/x-rtp, media=(string)video,
clock-rate=(int)90000, encoding-name=(string)VP8-DRAFT-IETF-01,
payload=(int)96, ssrc=(uint)784363809, clock-base=(uint)376247688, seqnumbase=(uint)16252" ! rtpvp8depay ! vp8dec ! ffmpegcolorspace ! autovideosink

Question 4 (1 point)
Donner les deux lignes de commande pour faire du streaming de format jpeg partir de videotestsrc.
Indication : utiliser rtpjpegdepay,jpegdec,jpegenc,rtpjpegpay
Question 5 (1 point)
Modifier les deux lignes de commande de la question 3 pour mettre et recevoir le flux vido du fichier
video.ogv.
Attention : ct client, il faut utiliser les caps qui sont affiches par gstreamer lorsque vous lancez le code
ct serveur avec l'option verbose.
Question 6 (1,5 point)
Donner les deux lignes de commande pour faire du streaming audio et vido avec le fichier video.ogv.
Indications : il faut utiliser un port pour la vido et un autre port pour l'audio. Il faut galement rcuprer
les deux caps pour l'audio et pour la vido dans la partie serveur.

Partie III : en programmation C (ou C++) (7 points)


Dans cette partie, il sagit de programmer une application cliente vido qui permet de reproduire un flux
vido uniquement.
Question 1 (4 points)
Votre programme en C doit reproduire la ligne de commande de la question prcdente. Il doit prendre en
argument ladresse IP et le port dcoute.
Exemple dappel : ./vclient127.0.0.13000
Tester avec la vido video.ogv. Vous devez mettre dans votre rapport deux captures dcran : une
montrant la sortie du terminal ct serveur, et une autre ct client.
Question 2 (1 point)
Ajouter la possibilit de mettre en pause la reproduction du flux laide de la touche p du clavier, ainsi
que la possibilit darrter et quitter le programme avec la touche q.
Question 3 (1 point)
Ajouter la possibilit daugmenter ou de diminuer le contraste laide de deux touches de votre choix.
Question 4 (1 point)
Ajouter la possibilit de passer de couleurs noir et blanc et vice-versa laide de la touche c.