Added Frames and GOP Timecode Side Data Support - #60
Conversation
|
So I had a little look, and codewise, everything seems in order. However, I am seeing a potential problem in the amount of data this extra option is going to generate:
The amount of frames in some longer videos is going to be immense, and I would like this to remain a fast utility to grab information about media files. If we enable this by default, things will end badly on that end. (For reference, the included test file So I am fine with including the frame support JSON structs and all, but I don't think we should enable this option by default. |
|
Fair enough! Appreciate you checking this out - will update this so the option is removed from the default list of options |
| MinBitrate int `json:"min_bitrate"` | ||
| AvgBitrate int `json:"avg_bitrate"` | ||
| BufferSize int `json:"buffer_size"` | ||
| VbvDelay FlexInt `json:"vbv_delay"` |
There was a problem hiding this comment.
Can you explain why/how this can be a string?
FFMpeg vbv_delay
And since this is the only place we use FlexInt, maybe we dont need it then?
There was a problem hiding this comment.
VbvDelay can be an integer or a string. I've encountered cases where it's either 0, -1 or "N/A" so parsing it just as an int doesn't work and needs to be handled accordingly. Maybe the better solution is just parsing the integers to a string as well?
|
Sorry for the mess of commits - I fixed the capitalization issue and added some tests but for the life of me I can't figure out why the linter isn't working. It says there's a version mismatch so I tried updating the go.mod but then then that resulted in another error so i'm going to leave this for now. |
Closed my previous PR as I hadn't removed the restricted frame output, as well as not fully building out the Frame struct.
Noticed that there wasn't any support to detect I-Frames with this library so quickly added arguments to the command that'll add it to the JSON output as well as building up the matching structs