ziutek / dvb Goto Github PK
View Code? Open in Web Editor NEWDVB/MPEG-TS library (pure Go)
License: BSD 3-Clause "New" or "Revised" License
DVB/MPEG-TS library (pure Go)
License: BSD 3-Clause "New" or "Revised" License
Is it possible to get an example for decoding tables ?
I have some ts streams that I am trying to the the PAT , PMT out.
ts.NewPacketReader -> get PID 0 -> PktQueue -> SectionDecoder -> tables.
Prompt your library can take h264 unit or stream or file and mux it ts file or ts http stream?
I can not find such examples
Hi all!
I have linuxdvb working fine on my armhf Board with an USB DVB-S Card.
Could you please give me a hint how to add Disceq control to "examples/internal/tune.go" ?
As far as I found out is that the Diseqc Command is defined:
dtvDiseqcMaster cmd = 7
but I dont know how to use it.
I tried to add and call a function to api5.go:
func (d Device) SetDiseqcMaster() error {
e := d.set(dtvDiseqcMaster, 1)
if e != 0 {
return Error{"set", "Diseqc", e}
}
return nil
}
But this results in the error:
set Diseqc: invalid argument
I have 4 LNB attached to a diseqc switch and need to switch between those.
Cheers, Thomas
Hi @ziutek ,
I'm using dvblast currently for streaming 4 HD channels filter a service from each MPTS each on different frequencies. I have quad dvb adaptor. Each TS stream is RTP with dvblastctl checking fe_stats and get_PMT every couple of seconds. I was wondering is your library is able to replicate filtering out one service and streaming over RTP? I'd like to keep all my code in go and not using a wrapper around dvblast for each service?
It would be nice if licence issue is resolved as go is moving from godoc to go.dev. See https://pkg.go.dev/mod/github.com/ziutek/dvb
Could we have another example for use of PAT and PMT Please?
I have a USB stick DVB-T tuner working and streaming to UDP using the example dvbdd/main.go
I've managed to list all programs using PMT.go (example attached) which lists the serviceID and PMT PID for that service.
Now I need to use the PMT PID to list all the PID's associated with that service?
I boing a similar thing to pat.Update(d, true) using pmt.Update(d) however the for loop crashes and I get panic with
panic: section length should be >= 8
I'm clueless how to return all the PID's for the service? (PCR_PID, VIDEO_PID and AUDIO_PID's)
Any working code would be great help from the dvb gurus..
In addition, when passing more than 2 Pids to setfilter() r, filter := setFilter(demuxPath, "", []int16{123, 124, 135})
anything after the second PID is ignored?
Is this a bug?
Below is what I have so far and returns the first service in the MPTS.
r, patFilter := setFilter(demuxPath, "", []int16{0x00})
defer patFilter.Close()
rp := ts.PktReaderAsReplacer{R: r}
// Read and parse the PAT
var pat psi.PAT
d := psi.NewSectionDecoder(rp, true)
fmt.Println("Reading PAT...")
for {
if err := pat.Update(d, true); err != nil {
fmt.Printf("Error reading PAT: %v\n", err)
os.Exit(1)
}
if pat.Version() != -1 {
break
}
}
// Print the PAT and select the first valid service
fmt.Println("Program Association Table (PAT):")
pl := pat.ProgramList()
var firstServiceID uint16
var firstPMTPID int16
for !pl.IsEmpty() {
progID, pmtPID, remaining := pl.Pop()
if progID != 0 {
firstServiceID = progID
firstPMTPID = pmtPID
break
}
pl = remaining
}
if firstPMTPID == ts.NullPid {
fmt.Printf("No valid PMT found in PAT.\n")
os.Exit(1)
}
fmt.Printf("Selected Service ID: %d, PMT PID: %d\n", firstServiceID, firstPMTPID)
Hi. I'm newly to mpeg-ts and need your help. I have udp multicast of mpeg-ts streams (SS and MS). How can I analyze this streams? For example how to parse that MS stream and get useful information about channels, errors and etc ?
addr, _ := net.ResolveUDPAddr("udp","233.76.175.7:1234")
conn, _ := net.ListenMulticastUDP("udp", nil, addr)
tsReader := ts.NewPktStreamReader(ServerConn)
pkt := new(ts.ArrayPkt)
for {
if err := tsReader.ReadPkt(pkt); err != nil {
log.Error(err)
}
if pkt.ContainsError() {
log.Error("contains error")
}
}
Michal, you were so kind to respond so quickly to my PR. Thank you, but OMG, I'm so sorry! I just reread my comments on the PR
Typical Headers look as follows.
[000001bd002c81800525339fe61f305f31385f323134323837373434315f32355f313631363930323031393339393131380a] [000001bd002c81800525339ffd95305f31395f323134323838343136335f32355f313631363930323031393431383338360a] [000001bd002c8180052533a1150b305f32305f323134323839323533315f32355f313631363930323031393435393937350a]
stream_id is 0xbd, Flags are present, PTS is present
"Flags are present" !!!!
I honestly don't know what I was seeing, HasFlags() is clearly returning a false value when any of the listed stream IDs is present. Stream ID 0xbd, has flags, at least in the streams we are receiving!
I sent two emails, but either both were to bogus addresses, or you've been too busy to see. So not as quietly as it might have been if you had noticed my emails, would you please, roll back PR #12.
Thank you!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.