Open bodrich opened 5 years ago
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() } }```
I get the error on line 'if err = conn.WritePacket(pkt); err != nil {'