jordicenzano / go-ts-segmenter Goto Github PK
View Code? Open in Web Editor NEWLive TS segmenter and HLS manifest creation in Go
License: GNU General Public License v3.0
Live TS segmenter and HLS manifest creation in Go
License: GNU General Public License v3.0
Dir sir,
This is not an issue .... rather a question.
this app seems promising for my work.
We have got continuous TS Packets streams from satellite for different programs.
A user will request us........" I want to see program 'abcd' "
We will request that from our upstream source and will start getting stream of TS packets.
Now my question is how do I go about putting the segmenter, ( ... some other pieces in between and ...) ultimately browser running hls.js (or any other utility in the browser)
I have understood what segmenter and uploader will do.......however I do not get the idea how will it work for an 'endless' stream.
How will it generate the manifest file for an unending queue of TS segment (chunk) files.
Can you give me some idea, or point me to any such existing solution.?
Thanks in advance
Whether to support converting MP4 video into HLS manifest
I can build the program and run it, but I don't get any output. Running in verbose mode:
cat /home/alarm/local-channels/pipe.ts | ./bin/manifest-generator -f "chunk_" -t 1 -v
I get the following output. Please let me know what more information you need.
{"level":"info","msg":"1.1.00x20a2630","time":"2020-04-19T08:43:45-05:00"}
{"level":"info","msg":"Started tssegmenter0x20a2630","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"Sent to process: 128 bytes","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"Sent to process: 128 bytes","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"OTHER: {valid:true SyncByte:71 TransportErrorIndicator:false PayloadUnitStartIndicator:false TransportPriority:false PID:49 TransportScramblingControl:0 AdaptationField
Control:1 ContinuityCounter:11 AdaptationField:{AdaptationFieldLength:0 DiscontinuityIndicator:false RandomAccessIndicator:false ElementaryStreamPriorityIndicator:false PCRFlag:false OPCRFlag:
false SplicingPointFlag:false TransportPrivateDataFlag:false AdaptationFieldExtensionFlag:false PCRData:{ProgramClockReferenceBase:0 reserved:0 ProgramClockReferenceExtension:0 PCRs:0 valid:fa
lse}} Pat:{valid:false PmtPID:0} Pmt:{valid:false Videoh264:[] AudioADTS:[] Other:[]}}","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"Sent to process: 128 bytes","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"OTHER: {valid:true SyncByte:71 TransportErrorIndicator:false PayloadUnitStartIndicator:false TransportPriority:false PID:49 TransportScramblingControl:0 AdaptationField
Control:1 ContinuityCounter:12 AdaptationField:{AdaptationFieldLength:0 DiscontinuityIndicator:false RandomAccessIndicator:false ElementaryStreamPriorityIndicator:false PCRFlag:false OPCRFlag:
false SplicingPointFlag:false TransportPrivateDataFlag:false AdaptationFieldExtensionFlag:false PCRData:{ProgramClockReferenceBase:0 reserved:0 ProgramClockReferenceExtension:0 PCRs:0 valid:fa
lse}} Pat:{valid:false PmtPID:0} Pmt:{valid:false Videoh264:[] AudioADTS:[] Other:[]}}","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"Sent to process: 128 bytes","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"Sent to process: 128 bytes","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"OTHER: {valid:true SyncByte:71 TransportErrorIndicator:false PayloadUnitStartIndicator:true TransportPriority:false PID:52 TransportScramblingControl:0 AdaptationFieldC
ontrol:1 ContinuityCounter:14 AdaptationField:{AdaptationFieldLength:0 DiscontinuityIndicator:false RandomAccessIndicator:false ElementaryStreamPriorityIndicator:false PCRFlag:false OPCRFlag:f
alse SplicingPointFlag:false TransportPrivateDataFlag:false AdaptationFieldExtensionFlag:false PCRData:{ProgramClockReferenceBase:0 reserved:0 ProgramClockReferenceExtension:0 PCRs:0 valid:fal
se}} Pat:{valid:false PmtPID:0} Pmt:{valid:false Videoh264:[] AudioADTS:[] Other:[]}}","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"Sent to process: 128 bytes","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"OTHER: {valid:true SyncByte:71 TransportErrorIndicator:false PayloadUnitStartIndicator:false TransportPriority:false PID:49 TransportScramblingControl:0 AdaptationField
Control:1 ContinuityCounter:13 AdaptationField:{AdaptationFieldLength:0 DiscontinuityIndicator:false RandomAccessIndicator:false ElementaryStreamPriorityIndicator:false PCRFlag:false OPCRFlag:
false SplicingPointFlag:false TransportPrivateDataFlag:false AdaptationFieldExtensionFlag:false PCRData:{ProgramClockReferenceBase:0 reserved:0 ProgramClockReferenceExtension:0 PCRs:0 valid:fa
lse}} Pat:{valid:false PmtPID:0} Pmt:{valid:false Videoh264:[] AudioADTS:[] Other:[]}}","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"Sent to process: 128 bytes","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"Sent to process: 128 bytes","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"OTHER: {valid:true SyncByte:71 TransportErrorIndicator:false PayloadUnitStartIndicator:false TransportPriority:false PID:49 TransportScramblingControl:0 AdaptationField
Control:1 ContinuityCounter:14 AdaptationField:{AdaptationFieldLength:0 DiscontinuityIndicator:false RandomAccessIndicator:false ElementaryStreamPriorityIndicator:false PCRFlag:false OPCRFlag:
false SplicingPointFlag:false TransportPrivateDataFlag:false AdaptationFieldExtensionFlag:false PCRData:{ProgramClockReferenceBase:0 reserved:0 ProgramClockReferenceExtension:0 PCRs:0 valid:fa
lse}} Pat:{valid:false PmtPID:0} Pmt:{valid:false Videoh264:[] AudioADTS:[] Other:[]}}","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"Sent to process: 128 bytes","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"OTHER: {valid:true SyncByte:71 TransportErrorIndicator:false PayloadUnitStartIndicator:false TransportPriority:false PID:49 TransportScramblingControl:0 AdaptationField
Control:1 ContinuityCounter:15 AdaptationField:{AdaptationFieldLength:0 DiscontinuityIndicator:false RandomAccessIndicator:false ElementaryStreamPriorityIndicator:false PCRFlag:false OPCRFlag:
false SplicingPointFlag:false TransportPrivateDataFlag:false AdaptationFieldExtensionFlag:false PCRData:{ProgramClockReferenceBase:0 reserved:0 ProgramClockReferenceExtension:0 PCRs:0 valid:fa
lse}} Pat:{valid:false PmtPID:0} Pmt:{valid:false Videoh264:[] AudioADTS:[] Other:[]}}","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"Sent to process: 128 bytes","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"Sent to process: 128 bytes","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"OTHER: {valid:true SyncByte:71 TransportErrorIndicator:false PayloadUnitStartIndicator:false TransportPriority:false PID:49 TransportScramblingControl:0 AdaptationField
Control:1 ContinuityCounter:0 AdaptationField:{AdaptationFieldLength:0 DiscontinuityIndicator:false RandomAccessIndicator:false ElementaryStreamPriorityIndicator:false PCRFlag:false OPCRFlag:f
alse SplicingPointFlag:false TransportPrivateDataFlag:false AdaptationFieldExtensionFlag:false PCRData:{ProgramClockReferenceBase:0 reserved:0 ProgramClockReferenceExtension:0 PCRs:0 valid:fal
se}} Pat:{valid:false PmtPID:0} Pmt:{valid:false Videoh264:[] AudioADTS:[] Other:[]}}","time":"2020-04-19T08:43:45-05:00"}
{"level":"debug","msg":"Sent to process: 128 bytes","time":"2020-04-19T08:43:45-05:00"}
...
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.