fix raw
This commit is contained in:
parent
f877cce125
commit
06d985e42f
@ -2,7 +2,7 @@ package raw
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"io"
|
"os"
|
||||||
|
|
||||||
"github.com/deepch/vdk/codec/h265parser"
|
"github.com/deepch/vdk/codec/h265parser"
|
||||||
|
|
||||||
@ -15,13 +15,28 @@ var startCode = []byte{0, 0, 0, 1}
|
|||||||
|
|
||||||
type Muxer struct {
|
type Muxer struct {
|
||||||
idx int8
|
idx int8
|
||||||
w io.WriteSeeker
|
w *os.File
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewMuxer(v io.WriteSeeker) *Muxer {
|
func NewMuxer(filePatch, fileName string) (*Muxer, error) {
|
||||||
return &Muxer{w: v}
|
|
||||||
|
if _, err := os.Stat(filePatch); os.IsNotExist(err) {
|
||||||
|
err := os.MkdirAll(filePatch, os.ModePerm)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
f2, err := os.Create(filePatch + fileName)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
return &Muxer{w: f2}, nil
|
||||||
|
}
|
||||||
|
|
||||||
func (element *Muxer) WriteHeader(streams []av.CodecData) (err error) {
|
func (element *Muxer) WriteHeader(streams []av.CodecData) (err error) {
|
||||||
|
|
||||||
for i, stream := range streams {
|
for i, stream := range streams {
|
||||||
switch stream.Type() {
|
switch stream.Type() {
|
||||||
case av.H264:
|
case av.H264:
|
||||||
@ -32,9 +47,13 @@ func (element *Muxer) WriteHeader(streams []av.CodecData) (err error) {
|
|||||||
element.idx = int8(i)
|
element.idx = int8(i)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
}
|
}
|
||||||
func (element *Muxer) WritePacket(pkt *av.Packet) (err error) {
|
|
||||||
|
func (element *Muxer) WriteAvPacket(pkt *av.Packet) (err error) {
|
||||||
|
|
||||||
if pkt.Idx == element.idx {
|
if pkt.Idx == element.idx {
|
||||||
_, err = element.w.Write(startCode)
|
_, err = element.w.Write(startCode)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -42,5 +61,19 @@ func (element *Muxer) WritePacket(pkt *av.Packet) (err error) {
|
|||||||
}
|
}
|
||||||
_, err = element.w.Write(pkt.Data[4:])
|
_, err = element.w.Write(pkt.Data[4:])
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (element *Muxer) WriteRTPPacket(pkt *[]byte) (err error) {
|
||||||
|
|
||||||
|
return
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func (element *Muxer) Close() error {
|
||||||
|
|
||||||
|
return element.w.Close()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user