[FFmpeg-devel] [FFmpeg-cvslog] avformat/hls: add http_persistent option

wm4 nfxjfg at googlemail.com
Tue Dec 26 04:29:11 EET 2017


On Tue, 26 Dec 2017 02:14:11 +0000
Aman Gupta <ffmpeg at tmm1.net> wrote:

> On Mon, Dec 25, 2017 at 1:03 PM Michael Niedermayer <michael at niedermayer.cc>
> wrote:
> 
> > On Mon, Dec 25, 2017 at 06:08:11PM +0000, Aman Gupta wrote:  
> > > On Mon, Dec 25, 2017 at 9:58 AM Michael Niedermayer  
> > <michael at niedermayer.cc>  
> > > wrote:
> > >  
> > > > On Fri, Dec 22, 2017 at 11:00:34PM +0000, Aman Gupta wrote:  
> > > > > ffmpeg | branch: master | Aman Gupta <aman at tmm1.net> | Wed Oct  4  
> > > > 14:52:52 2017 -0700| [b7d6c0cd48dac7869b9e6803e2d47d05a4fa373b] |
> > > > committer: Aman Gupta  
> > > > >
> > > > > avformat/hls: add http_persistent option
> > > > >
> > > > > This teaches the HLS demuxer to use the HTTP protocols
> > > > > multiple_requests=1 option, to take advantage of "Connection:
> > > > > Keep-Alive" when downloading playlists and segments from the HLS  
> > server.  
> > > > >
> > > > > With the new option, you can avoid TCP connection and TLS negotiation
> > > > > overhead, which is particularly beneficial when streaming via a
> > > > > high-latency internet connection.
> > > > >
> > > > > Similar to the http_persistent option recently implemented in  
> > hlsenc.c  
> > > > >
> > > > > Signed-off-by: Aman Gupta <aman at tmm1.net>
> > > > > Signed-off-by: Anssi Hannula <anssi.hannula at iki.fi>
> > > > >  
> > > > > >  
> > > >  
> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b7d6c0cd48dac7869b9e6803e2d47d05a4fa373b  
> > > > > ---
> > > > >
> > > > >  doc/demuxers.texi |  4 ++++
> > > > >  libavformat/hls.c | 72  
> > > > +++++++++++++++++++++++++++++++++++++++++++++++++++----  
> > > > >  2 files changed, 72 insertions(+), 4 deletions(-)  
> > > >
> > > > This causes ffmpeg to infinite loop with simplehttpd.py  
> > >
> > >
> > > Is that the same as SimpleHTTPServer.py?
> > >
> > > Sounds like it doesn't support persistent connections, but also isn't
> > > returning "Connection: close" in the response.
> > >
> > > I can investigate if you tell me where to find that httpd server.  
> >
> > Iam not sure where i got it from or its original source but it matches the
> > source here:
> >
> >
> > https://www.linuxjournal.com/content/tech-tip-really-simple-http-server-python  
> 
> 
> Thanks.
> 
> I was able to reproduce the issue. It appears to be because the simple http
> server is quite too simple, and can only handle one request at a time. The
> http_multiple option tries to make a second request before the first is
> completed, causing a deadlock.
> 
> I guess we could disable http_multiple by default...
> 
> Aman
> 
> <https://www.linuxjournal.com/content/tech-tip-really-simple-http-server-python>

So I hear this causes some infinite loop. Could this be made adaptive?

What does the HTTP spec say about this, and what do other HTTP
implementations do here?


More information about the ffmpeg-devel mailing list