Bonjour,

J’espère poster sur le bon forum, car je ne suis pas certain qu’il s’agit d’un problème Flash, mais peut-être d’un problème plus général au streaming vidéo.

Alors voila je constate une fuite mémoire sur le processus firefox qui héberge une application en Flash 8 lisant un flux Vidéo au format FLV. Il semble que le navigateur met en cache le flux vidéo, or celui-ci est un flux Live. Il s’agit, en réalité, d’un transcodage a la volé d’une camera de surveillance sur IP, transcodage réalisé grâce a la librairie FFmpeg qui semble générer des vidéos FLV parfaitement compatible avec flash.

Coté flash, j’utilise le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var m_nc:NetConnection;
var m_ns:NetStream;
var m_video:Video;
 
public function StartVideo()
{
	m_nc = new NetConnection();
	m_nc.connect(null);
 
	m_ns = new NetStream(m_nc);
	m_ns.setBufferTime(0);
	m_video.attachVideo(m_ns);
	m_ns.play(_root.VideoStream+"&dc="+ new Date().getTime());
}
J’ai du rajouter un paramètre contenant la date a l’url de mon flux vidéo pour prévenir la mise en cache du flux vidéo, car il semble que flash ne prend pas en compte les headers HTTP de contrôle de cache.

Réponse HTTP :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Cache-Control : no-store, no-cache, must-revalidate
Pragma : no-cache
Transfer-Encoding: chunked
Content-Type : video/x-flv
Expires : 0
Server : OrcaServer V4.5.39.652 Microsoft-HTTPAPI/1.0
Date : Tue, 05 Oct 2010 13:38:38 GMT
A noter que le flux vidéo est envoyé par morceau ( Transfer-Encoding: chunked ) , peut-être que cela a un rapport avec mon problème, car les sites de broadcast video tel que youtube n’utilise pas ce type de transfert.

Mon application serveur utilise la Microsoft-HTTPAPI/1.0, en réalité il s’agit de l’objet HttpListenerResponse du Framework .NET 2.X. avec cet objet il semble impossible de renvoyé partiellement une réponse HTTP sans ce type de transfert.

Quelqu’un aurait-il une idée ?

Merci d’avance !