2012-05-14 3 views
0

Je voudrais capturer la vidéo, le comprimer et le mux comme un mpeg2 ts. Tout cela est assez simple avec les bibliothèques ffmpeg, mais ce que je voudrais faire, au lieu de l'écrire dans un fichier, c'est capturer les paquets ts dans un tampon et utiliser ce flux d'autres façons. Y a-t-il un moyen simple de le faire?Obtenir les paquets TS dans la mémoire tampon de libavformat

Pour écrire les images codées dans un fichier maintenant, j'utilise av_interleaved_write_frame (oc, & pkt). OC est un contexte de sortie avec un nom de fichier et un format définis. pkt est un AVPacket contenant le cadre compressé. L'av_interlaced_write_frame fait le multiplexage et écrit le fichier. Ce que je voudrais finalement réaliser est d'écrire le même flux ts dans plusieurs fichiers, et de démarrer et d'arrêter l'écriture des différents fichiers indépendamment les uns des autres. Démarrage d'un nouveau multiplexeur pour chaque flux semble inefficace, comme un flux TS ne devrait pas avoir besoin d'en-tête ou de fin correcte pour être lu correctement (Si ce que j'ai lu est correct)

Je suis un peu perdu en essayant de trouver de bons exemples dans le code ffmpeg, et les bibliothèques ne sont pas très bien documentées. Toute contribution sur ce sujet est appréciée. Je vous remercie!

Répondre

Questions connexes