[FFmpeg-trac] #6066(avformat:new): Handling HTTP 500 errors for input files

FFmpeg trac at avcodec.org
Sat Jan 7 03:32:43 EET 2017


#6066: Handling HTTP 500 errors for input files
-------------------------------------+-------------------------------------
             Reporter:  dprestegard  |                     Type:
               Status:  new          |  enhancement
            Component:  avformat     |                 Priority:  normal
             Keywords:               |                  Version:
             Blocking:               |  unspecified
Analyzed by developer:  0            |               Blocked By:
                                     |  Reproduced by developer:  0
-------------------------------------+-------------------------------------
 Summary of the bug:
 Sometimes when working with cloud object storage systems like AWS S3 it's
 normal to experience some 500 errors as S3 only guarantees 99.9%
 availability. As it currently operates, ffmpeg appears to interpret a 500
 error as the end of the input file. When working with large source files
 (100+ GB) this can lead to ffmpeg transcodes truncating.

 It would be ideal if ffmpeg could handle a 500 error gracefully by
 retrying the request up to a certain number of tries.

 I have tried setting the -reconnect 1 flag, but this had no effect.

 Simply re-trying the transcode always succeeds, but this is wasteful.

 When the error occurs, the following will show up in the transcode report:
 {{{
 [https @ 0x55e3cde7e140] request: GET
 /foo.mov?AWSAccessKeyId=bar&Expires=baz&Signature=qux HTTP/1.1
 User-Agent: Lavf/57.56.100
 Accept: */*
 Range: bytes=44435210752-
 Connection: close
 Host: foo.s3.amazonaws.com
 Icy-MetaData: 1

 [https @ 0x5636385ed140] HTTP error 500 Internal Server Error
 [mov,mp4,m4a,3gp,3g2,mj2 @ 0x5636385ec7c0] stream 0, offset 0xe65761200:
 partial file
 https://foo.s3.amazonaws.com/foo.mov?AWSAccessKeyId=bar&Expires=baz&Signature=qux:
 Invalid data found when processing input
 }}}

 I experienced this with multiple versions, including the latest master
 from a few weeks ago.

 How to reproduce:
 This is difficult to reproduce, since S3 usually works fine but only
 occasionally returns 500 errors for a request. In my testing encoding
 feature length content this occurs approximately 10-15% of the time. In
 other words, if I encode 10 movies in series, 1 or 2 of them will be
 truncated

 {{{
 ffmpeg -y -report -reconnect 1 -i
 "https://foo.s3.amazonaws.com/foo.mov?AWSAccessKeyId=bar&Expires=baz&Signature=qux"
 -an -pix_fmt yuv420p -c:v libx264 -b:v 8M -preset superfast -tune film
 -fastfirstpass 0 -pass 1 -force_key_frames "expr:gte(t,n_forced*4)"
 -x264opts vbv-maxrate=8800:vbv-bufsize=16000 10test.mp4
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/6066>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list