Comments (2)
Hi! What would you like to be able to achieve - what would the tool output?
For example, I know that 608/708 caption data is stored in these headers, but we don't have a parser (and I recall the format is fairly complex).
from h264-reader.
I would like to be able to dig down into the SEI data and, in a perfect world, be able to see the caption payload for a video frame (not necessarily a decode, just headers to see what is in there).
By my interpretation of the DTVCC spec, the first stage would be to decode the T.35 header, which is really a standard for country codes, but is used by ATSC A/53 to declare that the payload is ATSC A/53 DTVCC caption data. The A/53 data is a more complex format, and the digital captions are usually EIA-708 with CEA-608 compatibility bits, or just CEA-608 compatibility mode. As you say, the 608/708 is a bit of a complex format - and there are other tools such as ccextractor (partly already ported to rust) that can decode 608/708.
Where ccextractor is a fine caption decoder, it is not a header parser and tends to abstract the headers from the user.
So my assumption was that in the same way that h264-parser is not H.264 decoder, neither should it be a 608/708 caption decoder, but there is a middle ground where decoding the headers would be useful for a parser/analyser tool. Decoding of the T.35 header would be the next level down from the current functionality.
The tools that are out there for parsing or decoding SEI or 608/708 captions are:
- h264-parser (header decoder)
- https://github.com/wader/fq (again, an excellent header decoder, but does not fully parse the SEI as well as h264-parser)
- https://github.com/CCExtractor/ccextractor (a rust based caption decoder, but not a header analyser)
- mediainfo (analyser, but not a header parser)
- ffprobe (analyser, but not a header parser)
It feels like header parsing falls into the domain of h264-parser, but that is a hypothetical statement because I'm a little bit too stupid to be able to work out how to use h264-parser without learning rust.
My questions are really one of:
a) how could I install/use the library without first learning how to program in rust. As you can see from the above, I have tried the obvious.
b) would you consider adding T.35 header decode, so users could dig one level deeper than current?
The tool looks really cool, BTW - Thanks! If only I was not so stupid that I have not understood how to get going with it.
from h264-reader.
Related Issues (20)
- Work out how to support h265 syntax without duplicating lots of code HOT 1
- NalSwitch crash when forbidden zero bit set HOT 2
- Fuzzing: OOM in HrdParameters::read_cpb_specs() HOT 1
- release HOT 4
- has_more_rbsp_data is broken / fix trailing bits handling HOT 1
- release? HOT 1
- Make SliceHeader fields pub? HOT 5
- Create simpler facades for decoding steps HOT 10
- Maybe wrong constants in PicScalingMatrix HOT 3
- It looks like VuiParameter parsing is slightly off HOT 7
- Parse SeqParameterSet fail with RbspReaderError(RemainingData) HOT 1
- Missing bounds-checks for VUI Bitstream Restriction Syntax Elements HOT 3
- Wrong Bounds Check for pic_parameter_set_id HOT 4
- Incorrect Parsing of Explicit Assignment Slice Groups
- Panic from 'attempt to add with overflow' in qs_y calculation HOT 1
- MVP example parsing NALs HOT 3
- Fields of `h264_reader::nal::slice::SliceHeader` are not `pub` HOT 1
- Reader example HOT 1
- convenience methods? HOT 10
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 h264-reader.