Changes between Initial Version and Version 1 of Ticket #1642, comment 6
- Timestamp:
- Aug 19, 2012, 1:28:45 AM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #1642, comment 6
initial v1 2 2 3 3 Now, the real issue resides in the #EXT-X-TARGETDURATION being written at the end of the file. 4 Because it is only written when ffmpeg exepects to have reached the end of the file, itwill really, definitely, break HLS.4 Because it is only written when ffmpeg exepects to have reached the end of the file, this behavior from your patch will really, definitely, break HLS. 5 5 6 Keep in mind I am talking about fetchinga live (RTMP in my case) feed, for which you have no clue of when the feed ends - so no clue of when you will invoke segment_list_close)6 Keep in mind I am talking about transcoding to -f segment a live (RTMP in my case) feed, for which you have no clue of when the feed ends - so no clue of when you will invoke segment_list_close) 7 7 8 8 All I can do is encourage you to check by yourself, using any source file and -f segment, outputing mpegts files to a dir, and use an iOS device to read said files. 9 9 10 The playlist will be read by the client each time the client will reach the last file specified in the playlist, and keep doing it until it eventually reaches a #EXT-X-ENDLIST) in said playlist. 11 10 12 If the iOS device has no clue of the segment length it should expect, it will miserably fail to read said stream (at least on iOS 5.x) 11 13 12 14 So, once again, your patch will work for known duration files, i.e.: I'm transcoding a file, because the client will find in the playlist, at the end, both the EXT-X-TARGETDURATION and mostly EXT-X-ENDFILE tags, so the iOS device and mobile safari will be happy and know where your steam starts, when it ends and in how many segments it should expect it. 13 But this logic breaks HTTPLiveStream ! 15 14 16 I won't argue on the pseuso scarse (I agree) RFC on m3u8. 15 17 But real-life tests show that if that tag is not present at the top of the file, it will simply not work. 18 16 19 iOS devices need to know that tag to accept reading the mpeg2ts segments. If it doesn't find that tag it simply throws an error. When you are doing live transcoding of a current video stream, you have no idea when the stream will end, so your only chance is to put that tag in segment_list_open and really not in segment_list_close 17 20


