Comments (13)
@barbashov care to share more? I'm not too worried about the crypto (if I understand what data needs to be decoded) but I'm not sure how to rebuild the stream without a muxer.
I've written a muxer :) It's under review currently, but already useful #16
from go-astits.
I don't think anybody is working on this, go for it! ❤️
Try to reuse as much code as possible in this lib, create the least amount of new .go
files and export the simplest and smallest API would be my points of emphasis.
from go-astits.
you're definitely right, it would mean adding a muxer.
if you feel like contributing, I'm welcoming PRs
from go-astits.
you could use https://github.com/nareix/joy4/tree/master/format/ts, since it is not maintained, it would be nice to have some up-to-date library..even if it is only for ts.
from go-astits.
I'm currently doing some preliminary research to make a TS muxer to mux small TS files into 1 big TS file. Anyone else working on this or might I be the one to issue a PR?
from go-astits.
I'm playing with sample-aes encrypted hls streams that I'd like to demux, decode and remux. If this package were to offer a muxer, it would really make it close to complete. I understand nobody's really working on it at this moment and I'm afraid my TS knowledge is too limited but contribute but if maybe if a few of us work together we can get something working decently rapidely.
from go-astits.
Sorry I completely forgot about this. I'm probably not going to be working this until I get settled into my new job.
from go-astits.
I'm playing with sample-aes encrypted hls streams that I'd like to demux, decode and remux. If this package were to offer a muxer, it would really make it close to complete.
Well you can do this now. You got to handle decoding yourself though. But it's not hard since go std lib offers good crypto API. Just be aware of PKCS7 padding, that one costed me a bunch of grey hairs :)
from go-astits.
@barbashov care to share more? I'm not too worried about the crypto (if I understand what data needs to be decoded) but I'm not sure how to rebuild the stream without a muxer.
from go-astits.
@asticode you may want to close that one as well
from go-astits.
Thanks to @barbashov 's great work, this lib now has a muxer ❤️
Closing this issue
from go-astits.
I'm playing with sample-aes encrypted hls streams that I'd like to demux, decode and remux. If this package were to offer a muxer, it would really make it close to complete.
Well you can do this now. You got to handle decoding yourself though. But it's not hard since go std lib offers good crypto API. Just be aware of PKCS7 padding, that one costed me a bunch of grey hairs :)
Thanks @barbashov , I wrote the aes-128 crypto (CBC/PKCS7) code needed to decode the entire files but sample-aes is a bit more tricky since it requires also understanding the transport protocol (only only part of the data is encrypted).
My understanding is that I need to do something similar to your what you have here:
https://github.com/asticode/go-astits/blob/master/cmd/astits-es-split/main.go#L107
That would give me access to the partially encrypted data, then decrypt the data and remux the file by adding the decrypted PES to the new stream. Does that seem right or do I need to copy/add more data to my decrypted stream?
from go-astits.
I'm playing with sample-aes encrypted hls streams that I'd like to demux, decode and remux. If this package were to offer a muxer, it would really make it close to complete.
Well you can do this now. You got to handle decoding yourself though. But it's not hard since go std lib offers good crypto API. Just be aware of PKCS7 padding, that one costed me a bunch of grey hairs :)
Thanks @barbashov , I wrote the aes-128 crypto (CBC/PKCS7) code needed to decode the entire files but sample-aes is a bit more tricky since it requires also understanding the transport protocol (only only part of the data is encrypted).
My understanding is that I need to do something similar to your what you have here:
https://github.com/asticode/go-astits/blob/master/cmd/astits-es-split/main.go#L107That would give me access to the partially encrypted data, then decrypt the data and remux the file by adding the decrypted PES to the new stream. Does that seem right or do I need to copy/add more data to my decrypted stream?
I don't really know how to help you since I haven't implemented SAMPLE-AES at this point in my software.
Though as far as i know, SAMPLE-AES doesn't encrypt the whole packet, it encrypts just the payload. If that's right, what you need to do is to decrypt only the payload. Anyway, I would follow HLS RFC here.
from go-astits.
Related Issues (20)
- Question about astikit HOT 1
- Incorrect PTS calculation on 32 bit platforms HOT 2
- Q: aac and h264 codecs HOT 5
- Logging HOT 4
- update the README to indicate the new exciting muxer feature HOT 1
- demuxer.NextData not returning PAT/PMT when seen HOT 9
- demuxer fails to parse complex PMT with multiple tables
- demuxer.NextData returns (nil, nil) on unknown data types HOT 1
- demuxer fails when corrupted PES packet advertises incorrect length HOT 2
- how to use the demuxer to extract audio/aac stream into a aac file ? HOT 1
- Implement ATSC standard as well HOT 8
- split into files
- muxer fail then panic "writePacket: can't write 185 bytes of payload: only 184 is available... " on muxer.WriteData(&astits.MuxerData{ ... HOT 1
- Latest version (v1.11.0) is vulnerable to multiple DoS attacks HOT 1
- [Question] Realtime muxer HOT 1
- How to get started with go-astits...
- Getting started with go-astits
- Mux 7-packets alignment HOT 2
- Decode packet encoded in ts from socket HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from go-astits.