2010-03-04 4 views
6

Je travaille sur ffmpeg et essaie d'ajouter un flux audio à la volée. J'utilise AudioQueues et j'obtiens un tampon audio brut. Je suis en train d'encoder de l'audio avec du PCM linéaire et donc l'audio que je recevrai sera de format brut, et je sais que ffmpeg l'accepte. Mais je ne peux pas comprendre comment. J'ai regardé dans AVStream, où dans nous devons créer un nouveau flux pour ce canal audio mais comment l'encoder à une vidéo qui est déjà initialisée dans une autre structure AVStream. Dans l'ensemble, je voudrais avoir une idée de l'architecture de ffmpeg. J'ai trouvé difficile de travailler car c'est le moins documenté. Tous les pointeurs ou les détails sont appréciés.Ajouter un canal audio en utilisant ffmpeg

Merci et salutations, Raj Pawan G

+0

Salut, avez-vous un échantillon lié à OSX, m essayant de travailler sur le même – Swati

+0

Je n'ai malheureusement pas accès au code source! –

Répondre

2

Si vous voulez utiliser java, vous trouverez un wrapper API beaucoup mieux documentée pour FFmpeg avec Xuggler. Ceci dit, FFmpeg peut supporter Raw PCM car tous les conteneurs peuvent le contenir. utilisez les codecs PCM (voir avcodec.h) et trouvez celui qui a la bonne taille et les bons attributs. Pour ajouter l'audio au même conteneur, recherchez un objet AVFormatContext que vous utilisez pour votre flux vidéo existant et utilisez av_new_stream (...) pour ajouter un nouveau flux. Puis attachez votre encodeur PCM et «encoder» à cela et écrire les paquets qui en résultent. Voir output_example.c dans FFmpeg pour des exemples de cette API en action.

+1

Merci, j'ai déjà commencé à suivre dans cette direction. Je suis fondamentalement output_example.c et je reviendrai à vous si je suis frappé n'importe où. J'utilise Cocoa, pas java. Mais de toute façon, le langage d'implémentation est une abstraction pour les appels FFMpeg! –