wsasend: An existing connection was forcibly closed by the remote host.
bodrich opened this issue · 1 comments
bodrich commented
import (
"fmt"
"github.com/nareix/joy4/av"
"github.com/nareix/joy4/av/avutil"
"github.com/nareix/joy4/av/pktque"
"github.com/nareix/joy4/format"
"github.com/nareix/joy4/format/rtmp"
"io"
)
func init() {
format.RegisterAll()
}
func CopyPackets(dst av.PacketWriter, src av.PacketReader) (err error) {
for {
var pkt av.Packet
if pkt, err = src.ReadPacket(); err != nil {
if err == io.EOF {
break
}
return
}
if err = dst.WritePacket(pkt); err != nil {
return
}
}
return
}
func CopyFile(dst av.Muxer, src av.Demuxer) (err error) {
var streams []av.CodecData
if streams, err = src.Streams(); err != nil {
return
}
if err = dst.WriteHeader(streams); err != nil {
return
}
if err = CopyPackets(dst, src); err != nil {
if err != io.EOF {
return
}
}
if err = dst.WriteTrailer(); err != nil {
return
}
return
}
func main() {
file, err := avutil.Open("csgo.mp4")
if err != nil {
fmt.Println(err)
}
demuxer := &pktque.FilterDemuxer{Demuxer: file, Filter: &pktque.Walltime{}}
var streams []av.CodecData
if streams, err = demuxer.Streams(); err != nil {
return
}
rtmp.Debug = true
for {
conn, err := rtmp.Dial("rtmp://a.rtmp.youtube.com/live2/key")
if err != nil {
fmt.Println(err)
continue
}
// conn, _ := avutil.Create("rtmp://localhost:1936/app/publish")
fmt.Println(conn.NetConn())
if err = conn.WriteHeader(streams); err != nil {
panic(err)
}
for {
var pkt av.Packet
if pkt, err = demuxer.ReadPacket(); err != nil {
if err == io.EOF {
break
}
break
}
if err = conn.WritePacket(pkt); err != nil {
panic(err)
break
}
}
if err != nil {
fmt.Println(err)
continue
}
file.Close()
conn.Close()
}
}```
bodrich commented
I get the error on line 'if err = conn.WritePacket(pkt); err != nil {'