对拉流的头进行判断是否包含音视频

This commit is contained in:
langhuihui
2023-04-24 13:17:46 +08:00
parent a18e083e7e
commit 0976830607
3 changed files with 50 additions and 0 deletions

44
README.en.md Normal file
View File

@@ -0,0 +1,44 @@
_[简体中文](https://github.com/Monibuca/plugin-hdl) | English_
# HDL Plugin
The main function of the HDL plugin is to provide access to the HTTP-FLV protocol.
## Plugin Address
https://github.com/Monibuca/plugin-hdl
## Plugin Introduction
```go
import (
_ "m7s.live/plugin/hdl/v4"
)
```
## Default Plugin Configuration
```yaml
hdl:
http: # Refer to global configuration for format
publish: # Refer to global configuration for format
subscribe: # Refer to global configuration for format
pull: # Format: https://m7s.live/guide/config.html#%E6%8F%92%E4%BB%B6%E9%85%8D%E7%BD%AE
```
## Plugin Features
### Pulling HTTP-FLV Streams from M7S
If the live/test stream already exists in M7S, then HTTP-FLV protocol can be used for playback. If the listening port is not configured, then the global HTTP port is used (default 8080).
```bash
ffplay http://localhost:8080/hdl/live/test.flv
```
### M7S Pull HTTP-FLV Streams from Remote
The available API is:
`/hdl/api/pull?target=[HTTP-FLV address]&streamPath=[stream identifier]&save=[whether to save configuration (leave blank if not)]`
### Get a List of All HDL Streams
`/hdl/api/list`

View File

@@ -1,3 +1,4 @@
_[English](https://github.com/Monibuca/plugin-hdl/blob/v4/README.en.md) | 简体中文_
# HDL插件 # HDL插件
HDL插件主要功能是提供HTTP-FLV协议的访问 HDL插件主要功能是提供HTTP-FLV协议的访问

View File

@@ -58,6 +58,11 @@ func (puller *HDLPuller) Connect() (err error) {
if _, err = io.ReadFull(puller, head); err == nil { if _, err = io.ReadFull(puller, head); err == nil {
if head[0] != 'F' || head[1] != 'L' || head[2] != 'V' { if head[0] != 'F' || head[1] != 'L' || head[2] != 'V' {
err = codec.ErrInvalidFLV err = codec.ErrInvalidFLV
} else {
configCopy := hdlConfig.GetPublishConfig()
configCopy.PubAudio = head[4]&0x04 != 0
configCopy.PubVideo = head[4]&0x01 != 0
puller.Config = &configCopy
} }
} }
} }