Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare for Supporting Additional Video Codecs #5634

Merged
merged 2 commits into from Jul 8, 2023

Conversation

softworkz
Copy link
Contributor

This PR is making preparations for the support of additional video codecs in the future.

The individual changes are:

Rename types and variables for generic video codec handling

  • Rename interface DemuxedVideoTrack to DemuxedVideoTrackBase
  • Rename DemuxedAvcTrack to DemuxedVideoTrack
  • Add manifestCodec property to DemuxedVideoTrackBase
  • Rename AvcSample to VideoSample
  • Rename AvcSampleUnit to VideoSampleUnit
  • Rename ParsedAvcSample to ParsedVideoSample
  • Rename avcData to videoData
  • Rename avcId to videoPid
  • Rename audioId to audioPid and id3Id to id3Pid (for clarity)
  • Rename segmentCodec to segmentAudioCodec and add segmentVideoCodec

Re-Organization

  • Add BaseVideoParser and AvcVideoParser classes and move parseAVCPES and related methods into those classes
  • Create subfolders demux/audio and demux/video and move the corresponding modules there

src/demux/audio/aacdemuxer.ts Outdated Show resolved Hide resolved
src/demux/video/avc-video-parser.ts Outdated Show resolved Hide resolved
src/demux/video/avc-video-parser.ts Outdated Show resolved Hide resolved
src/demux/video/avc-video-parser.ts Outdated Show resolved Hide resolved
src/demux/video/base-video-parser.ts Outdated Show resolved Hide resolved
@softworkz
Copy link
Contributor Author

All comments addressed, thanks again, Rob!

@robwalch robwalch merged commit 18da84b into video-dev:master Jul 8, 2023
12 checks passed
@robwalch
Copy link
Collaborator

robwalch commented Jul 8, 2023

There are no plans to support additional codecs in MPEG-TS. Other players depend on adavanced codecs being delivered via fmp4. It would be best to maintain cross-compatibility and drive adoption of fmp4 (#4943).

@softworkz
Copy link
Contributor Author

There are no plans to support additional codecs in MPEG-TS. Other players depend on adavanced codecs being delivered via fmp4. It would be best to maintain cross-compatibility and drive adoption of fmp4 (#4943).

Then, thanks for merging, though. This provides at least room for working on HEVC support without running into rebase trouble on each upstream update.

From our side, adoption of HEVC over fmp4 is a non-option. The primary interest is in re-streaming TV signals where the original mux is just filtered and segmented without remuxing or re-packaging.
Besides that, MPEGTS allows for lower latency than fmp4 (afaik).

Also, beyond those TV streams, we have no intentions for fmp4 adoption either.
This is purely an Apple idea (I don't know why), but not even reflected in the HLS spec (albeit mostly driven by Apple).

Actually, there are two codecs of interest: HEVC and MPEG2 Video. The latter is not supported in Chrome yet and they said they have no plans for supporting it. But they said the same about HEVC even until shortly before it was delivered.. 😆

@softworkz
Copy link
Contributor Author

adoption of fmp4 (#4943).

The referenced issue shows that there's not much agreement regarding HEVC-over-fmp4 only.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants