mirror of
https://github.com/langhuihui/monibuca.git
synced 2025-09-27 03:25:56 +08:00
64 lines
1.5 KiB
Go
64 lines
1.5 KiB
Go
package plugin_test
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
task "github.com/langhuihui/gotask"
|
|
"m7s.live/v5"
|
|
"m7s.live/v5/pkg/config"
|
|
flv "m7s.live/v5/plugin/flv/pkg"
|
|
hls "m7s.live/v5/plugin/hls/pkg"
|
|
mp4 "m7s.live/v5/plugin/mp4/pkg"
|
|
rtmp "m7s.live/v5/plugin/rtmp/pkg"
|
|
rtsp "m7s.live/v5/plugin/rtsp/pkg"
|
|
srt "m7s.live/v5/plugin/srt/pkg"
|
|
webrtc "m7s.live/v5/plugin/webrtc/pkg"
|
|
)
|
|
|
|
func init() {
|
|
testTaskFactory.Register("read", func(s *TestCase, conf TestTaskConfig) task.ITask {
|
|
return &ReadRemoteTask{TestBaseTask: TestBaseTask{testCase: s, TestTaskConfig: conf}}
|
|
})
|
|
}
|
|
|
|
type ReadRemoteTask struct {
|
|
TestBaseTask
|
|
}
|
|
|
|
func (mt *ReadRemoteTask) Start() error {
|
|
var conf config.Pull
|
|
conf.URL = mt.Input
|
|
streamPath := mt.StreamPath
|
|
var puller m7s.IPuller
|
|
switch mt.Format {
|
|
case "mp4":
|
|
if conf.URL == "" {
|
|
conf.URL = "test.mp4"
|
|
}
|
|
puller = mp4.NewPuller(conf)
|
|
case "flv":
|
|
if conf.URL == "" {
|
|
conf.URL = "test.flv"
|
|
}
|
|
puller = flv.NewPuller(conf)
|
|
case "annexb":
|
|
conf.URL = fmt.Sprintf("http://%s:8080/annexb/%s", mt.ServerAddr, mt.Input)
|
|
puller = m7s.NewAnnexBPuller(conf)
|
|
case "rtmp":
|
|
puller = rtmp.NewPuller(conf)
|
|
case "rtsp":
|
|
puller = rtsp.NewPuller(conf)
|
|
case "srt":
|
|
puller = srt.NewPuller(conf)
|
|
case "hls":
|
|
puller = hls.NewPuller(conf)
|
|
case "webrtc":
|
|
conf.URL = fmt.Sprintf("http://%s:8080/webrtc/play/%s", mt.ServerAddr, mt.Input)
|
|
puller = webrtc.NewPuller(conf)
|
|
}
|
|
pulljob := puller.GetPullJob().Init(puller, &mt.testCase.Plugin.Plugin, streamPath, conf, nil)
|
|
mt.Using(pulljob)
|
|
pulljob.Using(mt)
|
|
return nil
|
|
}
|