4 votes

FFMPEG comment muxer les données codées MJPEG dans un conteneur mp4 ou avi c++

Je cherche un moyen de muxer des données vidéo mjpeg (compressées) dans un conteneur vidéo comme mp4 ou avi. (J'aurai aussi besoin d'ajouter de l'audio dans le futur). Comme j'utilise FFMPEG dans d'autres parties de mon projet, j'aimerais le faire en utilisant ces bibliothèques si possible. Je ne cherche pas à utiliser FFMPEG en ligne de commande ! J'ai essayé d'utiliser l'exemple de muxing dans ffmpeg avec lequel je peux seulement créer un (très grand) fichier .mjpeg avec des informations vidéo. Ce n'est pas ce que je recherche.

Des exemples seraient les bienvenus, mais une indication dans la bonne direction fait également l'affaire !

edit : J'ai sorti le flux yuvj422p en images jpeg et je veux mettre cela dans un conteneur mp4. En utilisant la ligne de commande ffmpeg, cela fonctionne :

ffmpeg -i yuvy%01d.jpg -vcodec mjpeg out.mp4

Je voudrais faire cela directement dans mon code (sans créer d'images jpeg au préalable bien sûr).

3voto

p.streef Points 1912

Je l'ai réparé en faisant ce qui suit :

J'ai utilisé l'exemple de muxing et au lieu d'utiliser les fonctions d'encodage, j'ai juste sauté et chargé directement les données JPEG dans le paquet. Pour configurer le OutputContext, j'ai utilisé les fonctions guess format et j'ai réglé le codec sur MJPEG. J'ai changé les données PTS en un compteur d'images, puisque toutes les images sont chronologiques de toute façon.

-2voto

arash kordi Points 1802

Trois grandes étapes

  1. décoder ( en utilisant avcodec_decode_video() )
  2. convertir l'image brute au format yuv420p ( en utilisant swscale() )
  3. encode ( en utilisant avcodec_encode_video() )

Je peux vous fournir un exemple de code si vous le souhaitez

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X