[FFmpeg-devel] [PATCH 2/2] hlsenc: write playlist into a temp file and replace the original atomically

Lukasz Marek lukasz.m.luki2 at gmail.com
Sat Feb 21 00:10:09 CET 2015

On 20.02.2015 14:30, Michael Niedermayer wrote:
> On Fri, Feb 20, 2015 at 02:15:30PM +0100, Hendrik Leppkes wrote:
>> On Fri, Feb 20, 2015 at 1:38 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
>>> On Fri, Feb 20, 2015 at 12:55:14PM +0100, Hendrik Leppkes wrote:
>> What else could it be?
> http, ftp, who knows
> also ff_rename() would interpret a "http://" differently from
> avio_open2(), so something more is needed to not end up with odd
> rename() calls
>> It writes to separate segment files as well,
>> not sure that would work on anything but local files.
> i dont know either
> but if someone passes "ftp://..." it should either work or fail
> with a error message or mostly work while printing a warning

Some ftp servers claim thay allow to upload atomically. Who knows whats 
the true. I wouldn't do that probably. But real regression is in case 
someone doesn't really care to have live stream, but just want to 
generate manifest and chunks on remote server directly for later use.

For me you patch is OK, but maybe it is worth to add rename as part of 
protocol implementation to support these cases too. Assuming tempfile 
could have hardcoded name like ".filename" instead of "filename" and 
rename it when is ready.

>> For the record, this is the same method used in dashenc for writing
>> its manifest file, and it can avoid a sort-of race condition when
>> serving the files through a web server directly (ie. web server
>> reading while in the middle of re-writing it).

And the same in smoothstreaming encoder.

More information about the ffmpeg-devel mailing list