HLS-15: Append #EXT-X-ENDLIST when a live stream concludes



Issue Information

Issue Type: New Feature
 
Priority: Major
Status: Closed

Reported By:
Ben Tasker
Assigned To:
Ben Tasker
Project: HLS Stream Creator (HLS)
Resolution: Done (2015-12-14 11:37:35)
Target version: 1.0,
Components: Playlists , Linear Support ,

Created: 2015-06-15 16:26:09
Time Spent Working


Description
When building a manifest for a live stream, ffmpeg does not append #EXT-X-ENDLIST when the input file completes.

This causes RaspBMC (essentially XBMC Frodo) to hang as it falls off the end of the playlist. It still occasionally re-requests the manifest, which'd suggest it's waiting for new input.


Issue Links

Toggle State Changes

Activity


The function awaitCompletion has been amended to terminate the playlist once it knows the transcode has completed. I had originally put a loop at the end of the main process, but if a bitrate finished before the others it's playlist would not be terminated until the others completed (meaning any player using that bitrate would hang).

Repo: HLS-Stream-Creator
Commit: 12f80d7feaa0fb8230527830e52e4e3a996de59e
Author: B Tasker <github@<Domain Hidden>>

Date: Wed Jun 17 06:30:28 2015 +0100
Commit Message: Terminated Live playlists with X-Endlist once transcode has completed. See HLS-15



Modified (-)(+)
-------
HLS-Stream-Creator.sh




Webhook User-Agent

GitHub-Hookshot/becf8d8


View Commit

This may require some adjustment though, it seems certain versions of ffmpeg to append EXT-X-ENDLIST upon stream completion. Certainly version 2.6.2 does, though version 2.7 doesn't seem to.

One major difference, which is likely relevant, is that the testing in HLS-14 (which discovered this issue) was using a named pipe - so it may be that 2.7 behaves sanely when transcoding direct from a file. Will need to check.

Repo: HLS-Stream-Creator
Commit: fa4542a2bcc66f9d1ed5473d4941f53409928e6c
Author: B Tasker <github@<Domain Hidden>>

Date: Thu Jun 18 02:14:46 2015 +0100
Commit Message: Made EXT-X-ENDLIST addition conditional. See HLS-15



Modified (-)(+)
-------
HLS-Stream-Creator.sh




Webhook User-Agent

GitHub-Hookshot/becf8d8


View Commit

Have made the appending of X-Endlist conditional - it should now only be appended if it does not already exist.
Seems to be working without issue. Closing
btasker changed status from 'Open' to 'Resolved'
btasker added 'Done' to resolution
btasker changed status from 'Resolved' to 'Closed'