Je dois enregistrer un fichier vidéo généré par deux flux vidéo provenant de deux sources différentes. J'utilise rtsp sur tcp/ip, et les vidéos sont encodées avec h264. Je dois d'abord enregistrer la vidéo de la première source et ensuite continuer avec la deuxième source. Alors que j'ai essayé était de déclarer deux instances AVFormatContext, initialiser à la fois avec avformat_open_input(&context, "rtsp://......",NULL,&options)
puis lire des trames avec av_read_frame(context,&packet)
et les écrire dans le fichier vidéo av_write_frame(oc,&packet);
Il fonctionne sauver bien la vidéo de la première source, mais si par exemple, je sauvé y cadres du premier contexte, lorsque je tente de lire et enregistrer les images du second contexte dans le même fichier, pour la première y cadres Je suis Tring pour sauver, av_write_frame(oc,&packet2);
se retun -22, et que n'ajoute pas le cadre au fichier.Android ffmpeg enregistrer et ajouter h264 vidéos en streaming
Je pense que le problème est que la variable de contexte se souvient combien d'images ont été lues, et donne à chaque paquet lu un numéro d'identification, pour s'assurer qu'il n'est pas écrit deux fois. Mais lorsque j'utilise un nouveau contexte, ces numéros d'identification sont réinitialisés, l'AVOutputFormat ou l'AVFormatContext conservent également l'identifiant du paquet qu'ils attendent de recevoir, et n'écriraient rien tant qu'ils n'auraient pas reçu un paquet avec cet identifiant. Maintenant, je me demande comment j'ai pu résoudre ce problème. Je ne trouve aucun setter pour cet identifiant, ni aucun moyen de réutiliser le même contexte. J'ai pensé modifier les sources ffmpeg mais elles sont assez complexes et je n'ai pas trouvé ce que je cherchais. Une alternative serait d'enregistrer les deux vidéos dans deux fichiers différents, mais, je ne sais pas comment les ajouter après, car ffmpeg ne peut ajouter que des vidéos encodées avec mpeg et rencoding la vidéo n'est pas vraiment une option, comme il le fera prendre beaucoup de temps. Aussi, je n'ai pas trouvé d'autre moyen fonctionnel d'ajouter deux vidéos mp4 encodées avec h264.
Je serai heureux d'entendre toute idée utilisable à ce problème.
Avez-vous trouvé une solution pour enregistrer le flux RTSP dans android ?? –