IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[audiovisuel] Question convertion format vidéo


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 23
    Points
    23
    Par défaut [audiovisuel] Question convertion format vidéo


    J'aimerais votre avis sur une petite question ...

    Je dispose d'un programme que j'ai écrit en C++ permettant d'enregistrer puis de lire depuis une source vidéo numérique (SDI) une vidéo. Cette vidéo est volontairement non compressée, c'est à dire, c'est du "raw".Ce format a été baptisé "ntv2' (de par la carte d'acquisition).

    Le problème de ce format vidéo, c'est quil n'est pas lisible par la plus part des lecteurs multimédias (mplayer par ex. sous Linux).
    Je souhaiterais donc créer un programme permettant de convertir ce type de format "raw" en un format plus classique, permettant de rendre lisible sous un lecteur multimédia les vidéos enregistrées.
    Je ne souhaiterais pas compresser la vidéo si possible.

    Avez-vous donc une idée de format à privilégier ? Ou bien si quelqu'un s'est déjà lancer dans un projet similaire, je serais ravi d'en discuter avec lui !

    Merci bien !

    Raph.

  2. #2
    Membre averti Avatar de yetimothee
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Ben perso xvid est pas mal, libre, gratuit et efficace...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par yetimothee Voir le message
    Ben perso xvid est pas mal, libre, gratuit et efficace...
    Merci de ta réponse, mais le format Xvid est une version open source du format divX ... et comme tout le monde le sait, un fichier à ce format dispose d'une forte compression.

    Sinon, un collègue m'a annoncé que le format avi est non compressé. Je sais qu'il s'agit souvent d'un conteneur pour plein d'autres format, mais peut être qu'avec le "vrai" avi je pourrais rendre ces vidéos lisibles.
    Je n'ai pas trouvé sur internet d'informations sur ce format vidéo, permettant de comprendre comment les octets étaient arrangés dans le fichiers, s'il y a un entête etc ...

    Y-aurait-il un pro de l'avi parmis vous ?

    Raph.

  4. #4
    Membre averti Avatar de yetimothee
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Ben, le avi "de base", pour moi (je ne suis pas très callé), est ce qu'on nomme l'avi raw.
    Je ne sais pas comment on l'obtiens, je l'ai eu avec Blender et Fraps, mais il prends énormément de place !
    Par exemple, une video de 10 secondes avec 25 images par secondes, prendra à peu près 100 mo...
    Mais faudrait voir avec des pros

  5. #5
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Sinon il existe aussi des formats de compression "lossless".
    Boost ftw

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par yetimothee Voir le message
    Ben, le avi "de base", pour moi (je ne suis pas très callé), est ce qu'on nomme l'avi raw.
    Je ne sais pas comment on l'obtiens, je l'ai eu avec Blender et Fraps, mais il prends énormément de place !
    Par exemple, une video de 10 secondes avec 25 images par secondes, prendra à peu près 100 mo...
    Mais faudrait voir avec des pros
    En effet, tout ce qui est raw en vidéo prend pas mal de place. Mais cela ne dérange pas du tout. Pour info, une vidéo de 1 min avec le format raw ntv2 prend 1,6 Go sur le disque dur.

    Ne vous inquiétez pas, je ne vais pas enregistrer un film dans ce format c'est plus pour avoir une trace sur disque de vidéos non compressées.

  7. #7
    Membre confirmé Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Points : 496
    Points
    496
    Par défaut
    Oui le format AVI est bien un conteneur, et il accepte les videos non compressé.
    J'ai un peut d'exeperience dans ce domaine mais plutot sur windows (APIWin32 & DirectShow ).
    Le format xvid est par contre très intéressant, je ne sais pas qu'elle raison te pousse à utiliser du non compressé mais certain traitement d'image sont peut modifié sur des vidéos compressé xvid. De plus celui si permet un encodage "temps réel".
    N'hésite pas à poser d'autres questions.
    ________________________________________________
    http://bliquid.fr : Blog sur Android et l'Acer Liquid

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 23
    Points
    23
    Par défaut
    Et bien ce que je souhaite c'est seulement rendre les vidéos que j'enregistre au format .ntv2 lisibles par un player standard.

    Etant donné que c'est du raw, et que je souhaite implémenter un petit programme en C++ pour permettre leur lecture, je me suis dit que le plus simple serait de garder cette non compression. J'imaginais que, par exemple pour passer les vidéos au format .avi non compressé, il aurait fallu réordonner les octets des images, peut être changer d'espace colorimétrique, ou encore créer un entête de fichier ...

    Si vous pensez qu'il est simple de mettre en place un encodeur / décodeur ntv2 -- xvid, je suis preneur. C'est vrai que l'encodage temp réel est intéressant (ceux n'est pas le cas de tout les encodeur !), mais ce n'est pas une priorité pour moi .

    Sinon, pour plus d'info sur le format ntv2, il s'agit simplement des frames récupérées sur un signal SDI. Les images sont au format YCbCr 4:2:2, celui de la chaine télé source.

  9. #9
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Bah... l'AVI n'est pas vraiment un format à part entière... c'est un chunk particulier de format IFF (Interchange File Format) en mode little-endian si je me souviens bien... Un chunk genre "MOVI" je crois bien.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  10. #10
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    Je me réponds à moi même pour ajouter que l'encodage avec DirectShow est un "piece of cake"... Mais comme je ne sais pas si tu es sous windows...
    Il faut par contre avoir l'encodeur installé.

    A noter que DirectShow ne fait plus partie de DirectX depuis la version 8, mais fait partie intégrante du système.
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

  11. #11
    Membre confirmé Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Points : 496
    Points
    496
    Par défaut
    si tu es sous windows tu peut utiliser VFW voir exemple http://msdn2.microsoft.com/en-us/library/ms713216.aspx
    Sinon l'avi et WMP gere le format YCbCr 4:2:2 (UYVY) test fait avec virtualdub et WMP11. Il te suffit normalement de recopier trame par trame ( voir par block de n trames ) parcontre il te faudra peutetre inverser haut/bas ton image a voir.
    ________________________________________________
    http://bliquid.fr : Blog sur Android et l'Acer Liquid

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 23
    Points
    23
    Par défaut
    Merci pour vos réponses.

    Et, désolé de ne pas l'avoir précisé, mais je travaille sous Linux (Slackware 11.0).
    Je ne peux pas utiliser les librairies windows donc.

    Aucun player que j'ai essayé n'est parvenu à lire les vidéos au format .ntv2. Le meilleur, mplayer a reussi à ouvrir le fichier mais les pixels affichés ne correspondaient en rien avec l'image enregistrée (sorte de neigne multicolore).

  13. #13
    Membre confirmé Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Points : 496
    Points
    496
    Par défaut
    Sous Linux tu peux aller voir du coté de FFMPEG.
    You can input from a raw YUV420P file:
    ffmpeg -i /tmp/test.yuv /tmp/out.avi
    test.yuv is a file containing raw YUV planar data. Each frame is composed of the Y plane followed by the U and V planes at half vertical and horizontal resolution.
    Tiens nous au courant.
    ________________________________________________
    http://bliquid.fr : Blog sur Android et l'Acer Liquid

  14. #14
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    Citation Envoyé par themadmax Voir le message
    Sous Linux tu peux aller voir du coté de FFMPEG.
    Sous Windows aussi !

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 23
    Points
    23
    Par défaut
    Hello again !

    Merci themadmax pour ton conseil, en effet FFMPEG permet de faire une telle conversion. Par contre, étant sur plusieurs problèmes en même temps, j'ai à peine regarder ce programme. Et il m'a converti un fichier .ntv2 (renommé en .yuv pour être accepter par le programme ffmpeg), en .avi.
    Par contre, la vidéo est toujours illisible, d'une part il ne prend pas en charge le son, d'autre part il me detecte la vidéo au format 160 x 128 ce qui est inexact, puisque, provenant d'une source SDI de télévision elle est de taille 576 x 720.

    Voici ce que me retourne le programme lors de son execution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    ffmpeg -i test_PAL1min.yuv test_PAL1min.avi
    ffmpeg version 0.4.9-pre1, build 4718, Copyright (c) 2000-2004 Fabrice Bellard
    built on Sep  8 2005 11:58:12, gcc: 3.3.6
    Input #0, rawvideo, from 'test_PAL1min.yuv':
    Duration: N/A, bitrate: N/A
    Stream #0.0: Video: rawvideo, yuv420p, 160x128, 25.00 fps
    File 'test_PAL1min.avi' already exists. Overwrite ? [y/N] y
    Output #0, avi, to 'test_PAL1min.avi':
    Stream #0.0: Video: mpeg4, 160x128, 25.00 fps, q=2-31, 200 kb/s
    Stream mapping:
    Stream #0.0 -> #0.0
    Press [q] to stop encoding
    frame=36610 q=31.0 Lsize=  306163kB time=1464.4 bitrate=1712.7kbits/s
    video:305283kB audio:0kB global headers:0kB muxing overhead 0.288397%
    j'ai appuyé sur [q] pour quitter prématurement car il avait l'air d'en avoir pour longtemps (remarque le fichier source .ntv2 fait 1,6 Go, c'est peut être pour ça !).

    Je vais regarder s'il existe des options à passer à ce programme pour lui spécifier la taille des frames vidéo en plus du format (pour cela, c'est dommage que je n'ai pas de man ffmpeg ...).

    En tout cas, merci beaucoup de votre aide !

  16. #16
    Membre confirmé Avatar de themadmax
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 446
    Points : 496
    Points
    496
    Par défaut
    En effet, vue le format RAW de tes vidéos, et bien que FFMPEG est un logiciel ultra puissant il ne peut etre capable de découvrir la taille de ton format vidéo.
    Donc fait donc un tour dans le liens que j'ai deja poster. Par contre je n'ai pas fait essailler mais il me semble que ton format vidéo n'est pas le même que le YUV de FFMPEG. il te faudrai peut-être faire une première conversion pour que FFMPEG puisse convertir tes vidéos.
    ________________________________________________
    http://bliquid.fr : Blog sur Android et l'Acer Liquid

Discussions similaires

  1. Question de format !
    Par ArKam dans le forum Moteurs 3D
    Réponses: 14
    Dernier message: 29/03/2007, 12h04
  2. question sur format scientifique
    Par jayjay.f dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 09/02/2007, 20h59
  3. Du SWF à un format vidéo
    Par smh_master dans le forum Flash
    Réponses: 11
    Dernier message: 11/12/2006, 11h10
  4. Réponses: 8
    Dernier message: 02/08/2006, 23h18
  5. Convertion Format Date
    Par Portekoi dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 30/03/2006, 19h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo