when use fix ticket 2nd problem. command line test step: rm -rf output*;./ffmpeg -i ~/Movies/objectC/facebook.mp4 -an -c:v copy -f hls -hls_time 4 -hls_list_size 5 -hls_flags +delete_segments -hls_flags +append_list -hls_flags +omit_endlist -hls_flags +discont_start -t 50 output.m3u8 ./ffmpeg -i ~/Movies/objectC/facebook.mp4 -an -c:v libx264 -g 4 -f hls -hls_time 4 -hls_list_size 5 -hls_flags +delete_segments -hls_flags +append_list -hls_flags +omit_endlist -hls_flags +discont_start -t 5 output.m3u8 ./ffmpeg -i ~/Movies/objectC/facebook.mp4 -an -c:v libx264 -g 4 -f hls -hls_time 4 -hls_list_size 5 -hls_flags +delete_segments -hls_flags +append_list -hls_flags +omit_endlist -hls_flags +discont_start -t 5 output.m3u8 result: #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:5 #EXT-X-MEDIA-SEQUENCE:6 #EXTINF:4.120000, output6.ts #EXT-X-DISCONTINUITY #EXTINF:4.000000, output7.ts #EXTINF:0.960000, output8.ts #EXT-X-DISCONTINUITY #EXTINF:4.000000, output9.ts #EXTINF:0.960000, output10.ts
Unified · Split
| @@ -459,6 +459,9 @@ static int parse_playlist(AVFormatContext *s, const char *url) · 458 unmodified lines | |||
| 459 | read_chomp_line(in, line, sizeof(line)); | 459 | read_chomp_line(in, line, sizeof(line)); |
| 460 | if (av_strstart(line, "#EXT-X-MEDIA-SEQUENCE:", &ptr)) { | 460 | if (av_strstart(line, "#EXT-X-MEDIA-SEQUENCE:", &ptr)) { |
| 461 | hls->sequence = atoi(ptr); | 461 | hls->sequence = atoi(ptr); |
| 462 | } else if (av_strstart(line, "#EXT-X-DISCONTINUITY", &ptr)) { | ||
| 463 | is_segment = 1; | ||
| 464 | hls->discontinuity = 1; | ||
| 462 | } else if (av_strstart(line, "#EXTINF:", &ptr)) { | 465 | } else if (av_strstart(line, "#EXTINF:", &ptr)) { |
| 463 | is_segment = 1; | 466 | is_segment = 1; |
| 464 | hls->duration = atof(ptr); | 467 | hls->duration = atof(ptr); |