mirror of
https://github.com/lkmio/lkm.git
synced 2025-11-03 11:31:00 +08:00
修复rtmp音视频不同步问题
This commit is contained in:
@@ -44,14 +44,8 @@ func (t *httpTransStream) Input(packet utils.AVPacket) error {
|
|||||||
var dts int64
|
var dts int64
|
||||||
var pts int64
|
var pts int64
|
||||||
|
|
||||||
if utils.AVCodecIdAAC == packet.CodecId() {
|
dts = packet.ConvertDts(1000)
|
||||||
dts = packet.ConvertDts(1024)
|
pts = packet.ConvertPts(1000)
|
||||||
pts = packet.ConvertPts(1024)
|
|
||||||
} else {
|
|
||||||
dts = packet.ConvertDts(1000)
|
|
||||||
pts = packet.ConvertPts(1000)
|
|
||||||
}
|
|
||||||
|
|
||||||
if utils.AVMediaTypeAudio == packet.MediaType() {
|
if utils.AVMediaTypeAudio == packet.MediaType() {
|
||||||
flvSize = 17 + len(packet.Data())
|
flvSize = 17 + len(packet.Data())
|
||||||
data = packet.Data()
|
data = packet.Data()
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ type Publisher struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewPublisher(sourceId string, stack *librtmp.Stack, conn net.Conn) *Publisher {
|
func NewPublisher(sourceId string, stack *librtmp.Stack, conn net.Conn) *Publisher {
|
||||||
deMuxer := libflv.NewDeMuxer(libflv.TSModeRelative)
|
deMuxer := libflv.NewDeMuxer()
|
||||||
publisher_ := &Publisher{PublishSource: stream.PublishSource{Id_: sourceId, Type_: stream.SourceTypeRtmp, TransDeMuxer: deMuxer, Conn: conn}, stack: stack}
|
publisher_ := &Publisher{PublishSource: stream.PublishSource{Id_: sourceId, Type_: stream.SourceTypeRtmp, TransDeMuxer: deMuxer, Conn: conn}, stack: stack}
|
||||||
//设置回调,从flv解析出来的Stream和AVPacket都将统一回调到stream.PublishSource
|
//设置回调,从flv解析出来的Stream和AVPacket都将统一回调到stream.PublishSource
|
||||||
deMuxer.SetHandler(publisher_)
|
deMuxer.SetHandler(publisher_)
|
||||||
|
|||||||
@@ -36,14 +36,8 @@ func (t *transStream) Input(packet utils.AVPacket) error {
|
|||||||
var pts int64
|
var pts int64
|
||||||
chunkHeaderSize := 12
|
chunkHeaderSize := 12
|
||||||
|
|
||||||
if utils.AVCodecIdAAC == packet.CodecId() {
|
dts = packet.ConvertDts(1000)
|
||||||
dts = packet.ConvertDts(1024)
|
pts = packet.ConvertPts(1000)
|
||||||
pts = packet.ConvertPts(1024)
|
|
||||||
} else {
|
|
||||||
dts = packet.ConvertDts(1000)
|
|
||||||
pts = packet.ConvertPts(1000)
|
|
||||||
}
|
|
||||||
|
|
||||||
if dts >= 0xFFFFFF {
|
if dts >= 0xFFFFFF {
|
||||||
chunkHeaderSize += 4
|
chunkHeaderSize += 4
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user