livepeer / livepeer/lpms

Inspect HLS Video Segment

Open
#83 8 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature request
Dominant language
Go
Stars
283
Forks
72
Avg merge
27m
Merged PRs (30d)
1

Description

**Is your feature request related to a problem? Please describe.**
We don't know the parameters of an video segment.

**Describe the solution you'd like**
To implement a video inspector that returns parameters about a HLSSegment.

What we want to understand:
* Video resolution
* Video aspect ratio
* Video FPS
* Video Codec
* Audio Codec

We want to implement a `vidInspector/inspector.go` with a single `Inspect` method that takes a `HLSSegment` and returns the above parameters. For inspirations, check out `lpms_length`. You should follow the example of `ffmpeg.go`, possibly adding functions to it (by adding to the native libav integration).

**Describe alternatives you've considered**
We can also implement an inspector for the RTMP stream, but doing the check for the HLS segment can be used on the broadcaster and the transcoder.

**Additional context**
We are planning to use this inspector to inspect incoming videos, and automatically make choices about the ABR list.

We assume the video parameters will remain the same throughout the entire video. In practice, we'll probably examine the first segment of the video after the RTMP video is segmented into HLS, or if the input is in HLS, simply inspect the first segment.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the proposed vidInspector/inspector.go and the existing lpms_length and ffmpeg.go implementations. Trace how HLSSegment values reach the native libav integration, then define the Inspect result around resolution, aspect ratio, FPS, video codec, and audio codec. Done means an HLS segment can be inspected through one Inspect method and returns all requested parameters.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
audio-video-rtc
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.