mirror of https://bitbucket.org/ausocean/av.git
revid: changes made to stream/flv regarding last commit for removal of flv header bytes
This commit is contained in:
parent
9d010ed76c
commit
cce05db3f2
|
@ -57,11 +57,10 @@ var (
|
||||||
type Encoder struct {
|
type Encoder struct {
|
||||||
dst io.Writer
|
dst io.Writer
|
||||||
|
|
||||||
fps int
|
fps int
|
||||||
audio bool
|
audio bool
|
||||||
video bool
|
video bool
|
||||||
header Header
|
start time.Time
|
||||||
start time.Time
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewEncoder retuns a new FLV encoder.
|
// NewEncoder retuns a new FLV encoder.
|
||||||
|
@ -72,20 +71,7 @@ func NewEncoder(dst io.Writer, audio, video bool, fps int) (*Encoder, error) {
|
||||||
audio: audio,
|
audio: audio,
|
||||||
video: video,
|
video: video,
|
||||||
}
|
}
|
||||||
_, err := dst.Write(e.HeaderBytes())
|
return &e, nil
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
return &e, err
|
|
||||||
}
|
|
||||||
|
|
||||||
// HeaderBytes returns the a
|
|
||||||
func (e *Encoder) HeaderBytes() []byte {
|
|
||||||
header := Header{
|
|
||||||
HasAudio: e.audio,
|
|
||||||
HasVideo: e.video,
|
|
||||||
}
|
|
||||||
return header.Bytes()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// getNextTimestamp generates and returns the next timestamp based on current time
|
// getNextTimestamp generates and returns the next timestamp based on current time
|
||||||
|
|
|
@ -71,25 +71,6 @@ func orderPutUint24(b []byte, v uint32) {
|
||||||
b[2] = byte(v)
|
b[2] = byte(v)
|
||||||
}
|
}
|
||||||
|
|
||||||
var flvHeaderCode = []byte{'F', 'L', 'V', version}
|
|
||||||
|
|
||||||
type Header struct {
|
|
||||||
HasAudio bool
|
|
||||||
HasVideo bool
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *Header) Bytes() []byte {
|
|
||||||
// See https://download.macromedia.com/f4v/video_file_format_spec_v10_1.pdf
|
|
||||||
// section E.2.
|
|
||||||
const headerLength = 9
|
|
||||||
b := [headerLength]byte{
|
|
||||||
0: 'F', 1: 'L', 2: 'V', 3: version,
|
|
||||||
4: btb(h.HasAudio)<<2 | btb(h.HasVideo),
|
|
||||||
8: headerLength, // order.PutUint32(b[5:9], headerLength)
|
|
||||||
}
|
|
||||||
return b[:]
|
|
||||||
}
|
|
||||||
|
|
||||||
type VideoTag struct {
|
type VideoTag struct {
|
||||||
TagType uint8
|
TagType uint8
|
||||||
DataSize uint32
|
DataSize uint32
|
||||||
|
|
Loading…
Reference in New Issue