FFmpeg Comment écrire une vidéo dans un fichier

Ce que je veux, c'est

 1. Get video packet from stream source
 2. Decode it
 3. And write  that decoded data as video file(avi, mpeg etc)

Je peux en mesure d'obtenir des Paquets vidéo à partir d'un fichier (comme AVPacket) et également capable de décoder et de les enregistrer comme une image.(brut)( FFmpeg tutoriels montrer comment le faire).
Mais je ne peux pas ( ne sait pas ) écrire des données vidéo dans un fichier(d'autres) qui peut être joué par des acteurs des médias(comme VLC).

Meilleurs Voeux

Ps: de Vrais exemples de code sera grand si possible...

Maintenant, je fais un test avec de l' av_interleaved_writemais j'ai eu d'erreur étrange "non monotone horodateurs" ( je n'ai pas de contrôle sur le pts valeurs de la source de support )

Quelques Informations Supplémentaires

Dans FFmpeg-je

  1. Lire des paquets de médias de source médiatique ( il est peut-être vrai fichier(.avi,mov) ou même serveur rtsp).
  2. Puis écrire ces médias paquets de données à un fichier réel (physique .avi, .mov etc fichier)

J'ai besoin de lecteur et d'écrivain. Je peux lire le fichier de média source ( même encoder les paquets selon le format donné). Mais je ne peux pas écrire dans un fichier...(n'importe quel joueur peut jouer)

Et certains pseudo-code

File myFile("MyTestFile.avi");

while ( source ->hasVideoPackets)
{
     packet = source->GetNextVideoPacket();
     Frame decodedFrame = Decode(packet);
     VideoPacket encodedPacket = Encode( decodedFrame);
     myFile.WriteFile(encodedPacket);
 }

Ou tout Simplement écrire le fichier d'origine sans coder décoder

     File myFile("MyTestFile.avi");

     while ( source ->hasVideoPackets)
     {
         packet = source->GetNextVideoPacket();
         myFile.WriteFile(packet);
     }

Puis

I can able to open MyTest.avi file with a player.

source d'informationauteur NoviceAndNovice