渐进式生成播放:fMP4 前 4 个分片就绪即返回播放列表开始起播,后台边转边补 ENDLIST,消除整集封装等待的黑屏缓冲
This commit is contained in:
@@ -215,7 +215,7 @@ func TestPlaybackGeneratedPreservesLongGOPAndAudioOnlyVideo(t *testing.T) {
|
||||
}
|
||||
ctx, stop := context.WithTimeout(parent, 30*time.Second)
|
||||
defer stop()
|
||||
if err := app.generatePlayback(ctx, media, processing, "/media/", ""); err != nil {
|
||||
if err := app.generatePlayback(ctx, media, processing, "/media/", "", 0); err != nil {
|
||||
media.Close()
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -224,6 +224,13 @@ func TestPlaybackGeneratedPreservesLongGOPAndAudioOnlyVideo(t *testing.T) {
|
||||
if media.generated.ctx.Err() != nil {
|
||||
t.Fatal("completed media inherited its preparation timeout")
|
||||
}
|
||||
completeDeadline := time.Now().Add(20 * time.Second)
|
||||
for !media.generated.complete.Load() {
|
||||
if time.Now().After(completeDeadline) {
|
||||
t.Fatal("background remux did not complete")
|
||||
}
|
||||
time.Sleep(20 * time.Millisecond)
|
||||
}
|
||||
parts := media.generated.segments
|
||||
if len(parts) != 4 || parts[0].Duration < 2.99 || parts[0].Duration > 3.01 || parts[1].Start != parts[0].Duration || !strings.Contains(media.generated.playlist, "#EXT-X-TARGETDURATION:3") {
|
||||
t.Fatalf("invented fixed two-second timeline: %+v", parts)
|
||||
|
||||
Reference in New Issue
Block a user