Wiki [Non terminé] Cahier des charges de Zino et de son extension Zind

Licence CC by-sa
Tags : aucun
4
16
août
2012

Sommaire

Cahier des charges : Zino et son extension Zind

Cahier des charges de Zino

Contexte

Un utilisateur moyen est très peu enclin à s'intéresser à une information (entrée de blog, vidéo, etc) si elle ne respecte pas au moins une des conditions suivantes :

  • l'utilisateur connaît le sujet et s'intéresse à l'information

  • le média est court

  • le média fait appel à l'écoute ou à la vision plutôt qu'à la lecture

Du fait des origines et du développement de l'Internet et du Web, les informations sur le web se présentent assez communément sous les formes suivantes :

  • texte : les médias les plus populaires sont les réseaux sociaux Facebook et Twitter, ainsi que les communautés telles 4chan ou dans la francophonie les forums de jeuxvideo.com, qui par leur conception encouragent à écrire peu, et permettant d'ajouter des informations sous d'autres formats. Rédiger un texte est relativement aisé et dépend du niveau d'orthographe et de grammaire de la personne (ou de son utilisation des correcteurs automatiques).

  • image : les médias les plus populaires sont les plate-formes telles 9gag, Picasa, ou Tumblr qui bien que similaire à Twitter dans la conception a été détourné de son usage par ses utilisatrices (rappellons que Tumblr est majoritairement utilisé par des utilisatrices). Réaliser une image prend plus (retravailler une photo, faire un montage) ou moins (poster une photo, un dessin basique) de temps.

  • vidéo : les médias les plus populaires sont les plate-formes telles YouTube, Dailymotion ou RedTube. Réaliser une vidéo demande un investissement dans du matériel de qualitay et/ou dans un logiciel de montage, aussi un important investissement en temps si ce n'est en argent. Ces services sont souvent centralisés, créant des contraintes physique (stockage par l'hébergeur), juridiques (responsabilité par l'hébergeur) et sociales (contrôle des données par l'utilisateur.

On remarque donc que le moyen le plus efficace pour attirer l'attention d'une personne quelconque sur un sujet, c'est d'utiliser une vidéo. C'est malheureusement le moyen le plus difficile.

Zino in a nutshell

Comme Youtube :

  • upload de vidéo

  • partage de vidéo

  • organisation de vidéos en "flux" (Youtube utilise des playlists)

Améliorations par rapport à Youtube :

  • libre

  • décentralisé

Description de Zino

Zino est un service d'hébergement décentralisé de vidéos.

Une personne peut créer un compte en choisissant un serveur de référence. Pour faciliter ce choix, un algorithme peut être mis en place pour déterminer le meilleur équilibre entre le serveur le plus proche de la position actuelle de la personne (si l'adresse IP ou l'user-agent utilisé ne donne aucun indice à ce propos, ce paramètre est ignoré) et le serveur avec le plus de place restante disponible.

Une personne peut installer un serveur de Zino.

Une personne dotée d'un compte peut héberger une vidéo. Un moyen à implémenter est que l'utilisateur sélectionne une vidéo disponible en local sur son terminal. Une fois la vidéo disponible en ligne, l'utilisateur peut indiquer des détails sur la vidéo telle que et non limité à : le titre (ou laisser un titre tiré du nom du fichier), des tags, la licence, si la vidéo peut être indexée pour les recherches ou non, si la vidéo peut être commentée ou non.

Un autre moyen à implémenter est de pouvoir utiliser une source fournissant de la vidéo. Le client doit donc pouvoir interagit avec par exemple mais n'est pas limité à : une webcam, une caméra relié à un ordinateur [détails techniques à apporter, si un connaisseur en vidéo lit ceci qu'il contribue au cahier des charges, merci]. Ceci permettant au choix de réaliser une vidéo immédiatement uploadée sur un serveur Zino ensuite, ou pour un flux, voir ci-dessous.

Une personne dotée d'un compte peut gérer des flux de vidéo. Trois types de flux sont possibles :

  • à la demande : le possesseur du flux sélectionne des vidéos hébergées sur un serveur Zino et les arrange dans un ordre précis. L'utilisateur spectateur démarre le flux de vidéos quand il le souhaite. On peut le comparer aux playlists sur le système YouTube.

  • en direct : le possesseur du flux indique un temps de démarrage (dans un intervalle de un mois, il indique un jour et une heure, paramétrable à la seconde), et les utilisateurs spectateurs rejoignent la diffusion du flux sans possibilité de choisir le début de la diffusion. Les vidéos peuvent être prédéfinies, ou être définies en direct, par exemple dans le cas d'une caméra qui filme tandis que le flux est en marche. Le possesseur du flux peut ajouter des vidéos paramétrées ou d'autres sources de vidéo tandis qu'une autre vidéo est en cours de diffusion. Un écran de diffusion doit être défini, composé de au choix une image OU une vidéo, avec un accompagnement audio en option. Un flux en direct peut devenir un flux à la demande.

Les vidéos et les flux doivent pouvoir être accédées par une URI de forme URL.

Contraintes client

Que ce soit par une application lourde, une page web, un client riche (RIA), un programme accessible à la ligne de commande (CLI) ou autre, l'utilisateur doit à travers un client pouvoir réaliser les actions suivantes :

  • Création de compte. La création de compte doit impliquer mais n'est pas limité à : le choix d'un pseudonyme par l'utilisateur, le renseignement d'une adresse mail, et d'un mot de passe. Pour être en accord avec les progrès récents en terme de sécurité, le mot de passe ne devra pas être rentré en clair, il devra être renseigné deux fois dont un champ de confirmation qui devra être insensible au copier/coller si cela est raisonnablement réalisable.

  • Hébergement d'une vidéo. L'utilisateur doit pouvoir héberger une vidéo présente sur son terminal.

  • [OPTIONNEL] Hébergement d'une vidéo enregistrée en direct. Si la technologie le permet, une source de vidéo doit pouvoir être utilisée pour créer une vidéo ou réaliser une diffusion en direct.

  • Configuration d'une vidéo. L'utilisateur doit pouvoir à tout moment changer les informations relatives à sa vidéo, se référer à la description de Zino les informations possibles.

  • Visualisation d'une vidéo ou d'un flux. C'est assez clair.

  • Configuration du compte. L'utilisateur doit pouvoir changer les informations relatives au compte, incluant mais n'est pas limité à : son adresse mail, son mot de passe, l'emplacement où sont hébergées les vidéos de l'utilisateur (se référer aux contraintes serveur). Selon l'information, des sécurités peuvent être mises en place afin d'éviter la modification d'informations critiques, la notion de "critique" étant à définir par les chiens enragés de la sécurité.

  • [OPTIONNEL] Recherche de vidéos. L'utilisateur doit pouvoir effectuer des recherches sur des vidéos.

  • Création de flux. L'utilisateur doit pouvoir créer un flux, se référer à la description de Zino.

  • Modification de flux. L'utilisateur doit pouvoir ajouter des vidéos à un flux, ou des sources vidéo si cela est implémenté, que le flux soit en direct ou non. Si le flux est à la demande, l'ordre des vidéos doit pouvoir être changé ou des vidéos retirées du flux. Si le flux est en direct, l'ordre des vidéos situées après la diffusion en cours doit pouvoir être changé, ou des vidéos situées après la diffusion en cours doivent pouvoir être retirées du flux.

Contraintes côté serveur

Quel que soit le client, le serveur Zino doit répondre à des contraintes.

  • Compatibilité système. Deux systèmes d'exploitation de type Gnu/Linux doivent être supportés au minimum. On peut en toute hypocrisie choisir une distribution Debian et une distribution Ubuntu en prétendant que les rpm sont de la merde, cela n'engage que les auteurs du serveur. Les auteurs d'un serveur Zino sont libres de se faire payer, mais n'ont pas le droit de manger de la graisse de bébé phoque pendant qu'ils programment.

  • Reconnaissance vidéo. les outils de conversion d'un format vidéo à un autre doivent être fournis de façon modulaire, de façon à ne pas avoir à changer l'application serveur complète pour ajouter ou retirer des compatibilités vidéo.

  • Détection vidéo. Toute tentative de détection vidéo doit être réalisée en s'appuyant sur la librairie MediaInfoLib ou un front-end de MediaInfo.

  • Gestion des comptes. Le serveur doit gérer le top-moumoute de la sécurité tel que défini par les chiens enragés de la sécurité, notamment pour un stockage sûr des mots de passe. Le serveur doit aussi permettre la modification des informations relatives au compte, à condition que cela soit fait de façon suffisamment sûr, à définir par les chiens enragés de la sécurité.

  • Hébergement de vidéo. Le serveur doit reconnaître la vidéo et la convertir dans un des formats de diffusion vidéo parmi mais non limité à : OGG Theora, VP8 et x264. La conversion doit se faire sous plusieurs quaités si la vidéo est d'une des qualités suivants ou supérieurs : 240p, 360p, 480p, 720p, 1080p, Original (si la vidéo est de qualité bien supérieure). Si des qualités sont supérieures à ce que la vidéo peut proposer, la vidéo ne doit pas être convertie vers cette qualité-là. Le serveur doit proposer une URI de type URL permettant d'accéder à la vidéo. Le serveur doit aussi retenir des informations relatives à une vidéo, se référer à la description de Zino pour plus d'informations.

  • Hébergement de flux. Le serveur doit retenir les informations relatives à un flux. Il doit aussi supporter la modification des informations d'un flux, que celui-ci soit en cours de diffusion ou non. IL doit également supporter la réception de vidéo en direct par un client et pouvoir ajouter la réception à la diffusion en cours.

  • Modification de flux. Le serveur doit retenir l'ajout de vidéo à un flux, la modification de l'ordre de ou la suppression des vidéos pour un flux à la demande ou pour un flux en direct dans le cas des vidéos situées après celle en cours de diffusion.

  • Changement de serveur : Si l'utilisateur le désire, le serveur doit supporter l'export de vidéos vers un autre serveur, ou l'import de vidéos à partir d'une autre instance de serveur Zino. Des contrôles de sécurité doivent être faits pour surveiller les transferts de chacune des vidéos. Le serveur de réception vérifie qu'il supporte le format de la vidéo initiale, et à partir de là va générer les versions sous différentes qualités telles que définies plus haut. Si une vidéo ne peut pas être reconnue, le transfert s'arrête et l'utilisateur doit via un client décider (de façon asynchrone) s'il veut annuler le changement de serveur, auquel cas les vidéos transférées sont supprimées, ou bien réessayer. Une fois toutes les vidéos originales transférées, les informations de compte relatives à l'utilisateur ainsi que ses flux sont aussi transférées sur le nouveau serveur. L'ancien serveur supprime les vidéos originales et dérivées, mais garde les liens vers les vidéos et flux, réalisant une redirection vers le contenu présent sur le nouveau serveur.

  • [OPTIONNEL] Moteur de recherche décentralisé. Pouvoir proposer à un client une recherche réalisée de façon décentralisée. Un serveur doit pouvoir donc initier une recherche en local, réaliser une recherche en local à la demande d'un serveur, ou demander à un autre serveur Zino d'effectuer une recherche. [Définir un critère de recherche : jusqu'au questionnement total de tous les serveurs de Zino ? Jusqu'à l'obtention d'un certain nombre de résultats ?] [Définir une communication entre serveurs : utilisation de serveurs Zino centralisateurs servant à retenir les serveurs Zino existants ?]

  • [OPTIONNEL] Connexion décentralisée. Pouvoir proposer à un client de se connecter via ce serveur même si les informations relatives au compte n'y figurent pas. Le serveur va alors questionner d'autres serveurs Zino jusqu'à validation des informations de connexion, échec de connexion, ou échec à trouver de serveur possédant les données. [Les mêmes questions se posent que précédemment quand à la durée de réalisation de la recherche, et comment les serveurs rentrent "en contact"

Extension de Zino : Zind

Prérequis

  • Une implémentation fonctionnelle de client Zino et de serveur Zino

  • implémentation de la recherche décentralisée.

Contexte

Pour prendre exemple sur l'émission de télé-réalité culinaire étasunienne Man v. Food, en faisant une recherche sur les différentes représentations de cette émission, on obtient des vidéos dans un ordre sauvage. On sait qu'il y a eu quatre saisons de cette émission avec une bonne vingtaine d'émission, comment obtenir les saisons dans l'ordre de diffusion ? Aucun des critères de tri de résultats de Youtube ne le permet. L'utilisateur doit donc chercher les vidéos une à une… ce qui n'est pas très pratique.

Définition

Zind est une extension Zino permettant d'analyser les résultats, et en se basant sur des mots-clés situés dans le nom de la vidéo, ses tags, la date de parution ou toute autre information relative à une vidéo hébergée sur Zino, permet de générer un flux de vidéos ordonnées de façon intelligente.

Pour l'exemple donné dans le contexte, cela générerait un flux commençant par la partie 1 de l'épisode 1 de la saison 1, puis saison 1 épisode 1 partie 2 (en abrégé s1ep1p2), puis s1ep2p1, et ainsi de suite. Le flux peut être regardé, ou bien retenu sous forme de flux à la demande par l'utilisateur, qui peut alors le modifier à son envie.

Contraintes

[SamWang<, le daicidor pressé ayant eu l'idée de Zind, était trop pressé pour définir les contraintes.]

  • # Y a du boulot

    Posté par . Évalué à -5 (+0/-0). Dernière modification le 18/03/13 à 16:54.

    J'ai donné ici mon point de vue sur la présente proposition de CDCF de Zino/Zind par Zarmakuizz.

    Pour référence, Zarmakuizz a introduit la présente page ici.

    Je conseille un petit tour par ici pour découvrir The Node en profondeur. On peut rentrer encore plus directement au coeur du sujet par la définition de Zin[o|d].

  • # Reviens parmi les tiens

    Posté par . Évalué à -1 (+0/-0).

    Tu me manques SamWang, je t'apprécie et ai toujours envie de travailler avec toi.
    J'espère que tu ne t'es pas perdu car moi aussi j'ai préparé mon katana…
    Allons faire la peau des FM ensemble !

    Tu peux me contacter ici : reviens.samwang@keemail.me
    J'espère sincèrement que tu me répondras <3 pas comme ED qui continue de bouder dans son coin…
    Sephy, metamumble

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.