rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

[c++] concaténation fichier vidéo

Posté par kain31, le jeudi 22 mars 2007 à 11:41:35
Bonjour tout le monde

Voila mon probleme j'arrive a copier un fichier dans un autre mais quand je veux concatener un fichier avec un aute, c'est à dire rajouter en fin de fichier un autre fichier il y a un probleme.

il ne me rajoute pas en fin de fichier il fait simplement une copie pourtant je lui dis de rajouter a la fin.

Je travail avec des fichier vidéo.

Voici le code pour la copie et la concaténation

//copie du fichier source
std::ifstream source( "C:\\..\\video0.avi",std::ios_base::binary );
std::ofstream destination( "C:\\..\\video.avi",std::ios_base::binary );
char buff[4096];
while ( !source.eof() )
{
source.read ( buff, sizeof( buff ) );
destination.write ( buff, source.gcount() );
}

//on rajoute le fichier file a file1
std::ifstream file( "C:\\...\\video1.avi",std::ios_base::binary );
//ouverture avec ajout en fin de fichier 
std::ofstream file1( "C:\\..\\video.avi", std::ios_base::binary,std::ios_base::app); 


while ( !file.eof() )
{
file.read ( buff, sizeof( buff ) );
file1.write ( buff, file.gcount() );
}


Merci tout le monde
Configuration: Windows XP
Internet Explorer 6.0
Répondre à kain31  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Char Snipeur, le jeudi 22 mars 2007 à 14:46:13
sans être méchant, tu est tordu.
Pourquoi rouvrir le fichier video1.avi dans file1 alors qu'il l'es déjà dans destination, et en plus pointant à la fin du fichier.
Est tu sur que le ::...::app place le "curseur" d'écriture à la fin du fichier?
Je ne sais pas ce que tu cherche à faire, mais il me semble que les fichiers video ont des entêtes, du coup, ça m'étonnerai beaucoup que ça fonctionne ! Salutation !
Char Snipeur
Répondre à Char Snipeur

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kain31, le jeudi 22 mars 2007 à 15:53:40
Ce que je cherche a faire, je te l'explique.

Je possède deux vidéo et je souhaiterais copier c'est deux video dans un autre fichier video.

Donc dans un premier temps je doit copier un fichier dans le fichier destination puis rajouter a ce fichier le deuxième fichier.

Mais je c'est pas comment faire pour concatener.
Répondre à kain31

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Char Snipeur, le vendredi 23 mars 2007 à 08:39:13
essai ça :
//copie du fichier source
std::ifstream source( "C:\\..\\video0.avi",std::ios_base::binary );
std::ofstream destination( "C:\\..\\video.avi",std::ios_base::binary );
char buff[4096];
while ( !source.eof() )
{
source.read ( buff, sizeof( buff ) );
destination.write ( buff, source.gcount() );
}

//on rajoute le fichier file a file1
std::ifstream file( "C:\\...\\video1.avi",std::ios_base::binary );


while ( !file.eof() )
{
file.read ( buff, sizeof( buff ) );
destination.write ( buff, file.gcount() );
}

Ensuite, ton fichier video.avi contiendra bien les deux autre concaténer, c'est à dire écri à la suite l'un de l'autre. (regarde la taille final)
Par contre, si tu souhaite coller deux video ensemble l'une derrière l'autre avec comme but de les lire à la suite en une seul fois par le biai d'un lecteur type winamp : à mon avis ça ne marchera pas.
Si c'est ça que tu veu faire, prend un logiciel de montage video, tu t'enmerdera moins, et ça prendra moins de temps. Salutation ! Quand on sait pas, on touche pas !JBT
Char Snipeur
Répondre à Char Snipeur

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
kain31, le vendredi 23 mars 2007 à 09:23:56
merci beaucoup du code.

Mais en effet sa concatene mais impossible a lire apres et moi j'aimerais pouvoir faire un code qui me permet de concatener deux video.

Donc si quelqu'un sait comment faire, sa m'aiderait beaucoup

merci
Répondre à kain31

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Stupeflip, le vendredi 23 mars 2007 à 11:00:39
Salut,

Tu te rends compte que tu devras décoder les deux vidéos avant ? Ne serait-ce que pour virer les en-têtes. Puis les mettre à la suite et ré-encoder. Bref beaucoup de boulot au final pour garder une solution spécifique plutôt que d'utiliser un logiciel.
Répondre à Stupeflip

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 erikr le rouge, le dimanche 17 février 2008 à 10:18:31
la commande cat sous linux pourra t'aider, en tout cas en mpeg, ça fonctionne.

cat toto.mpeg tata.mpeg > toto.tata.mpeg

et zou, toto.tata.mpeg est la somme des deux fichiers précédants

Je suis hors délai, mais bon.... plus d'infos sur http://lists.ze-linux.org/2006-08/msg00149.html
Répondre à erikr le rouge
Logiciels pertinents trouvés dans les téléchargements
Télécharger PS3 Video 9 1.94PS3 Video 9 - PS3 Video 9 est un outil de conversion gratuit permettant de convertir des fichiers vidéo (avi, divx, mpeg, etc.) au formats...Catégorie: Edition vidéo
Licence: Freeware/gratuit
Télécharger Wii Video 9 1.94Wii Video 9 - Wii Video 9 est un outil de conversion gratuit permettant de convertir des fichiers vidéo (avi, divx, mpeg, etc.) au formats...Catégorie: Edition vidéo
Licence: Freeware/gratuit
Télécharger Ipod converter 3.07Ipod converter - Destiné aux heureux possesseurs d'Ipod vidéo, le logiciel Ipod Converter permet de convertir des fichiers au format Mpeg,...Catégorie: Edition vidéo
Licence: Freeware/gratuit
Télécharger AVS Disc Creator 2.1.5.100AVS Disc Creator - Avec AVS DiscCreator vous pouvez rapidement graver vos données sur CD/DVD et Blu-ray disc. <h2>Fonctionnalités</h2> ...Catégorie: Gravure
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « [c++] concaténation fichier vidéo »