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

Add support for HEVC video codec #74

Merged
merged 3 commits into from
Jun 8, 2021
Merged

Add support for HEVC video codec #74

merged 3 commits into from
Jun 8, 2021

Conversation

KarlGallagher
Copy link
Contributor

Using same FFmpeg parameters as h264 for the most part but letting the encoder choose profile and level automatically.
Bitrate settings mirror vp9

tested on macOS 10.15.7 and Ubuntu 20.04 LTS (FFmpeg 4.4)

Copy link
Member

@joeyparrish joeyparrish left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These framerate changes seem unrelated to HEVC, and are a thing I'd prefer to discuss separately so we can merge the HEVC support more quickly. Can you please remove them from the PR?

@KarlGallagher
Copy link
Contributor Author

Heh sorry about that :)

Extra changes reverted

Copy link
Member

@joeyparrish joeyparrish left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Thanks!

Could you add a test case for HEVC, please? See the "supports AV1" test case inside codecTests() in tests/tests.js for an example you can use to build a new test case.

Then, please use run_end_to_end_tests.py to run the tests yourself.

@KarlGallagher
Copy link
Contributor Author

@joeyparrish I think with the way the tests are constructed right now (using shaka player to stream the output in a browser instance), any test I add will more than likely fail due to general lack of browser support for this codec

https://caniuse.com/hevc

@joeyparrish
Copy link
Member

You're right about that. But I believe I have a way to structure the test so that we can at least prove that encoding succeeded and that the correct codec string appears in the manifest.

@joeyparrish
Copy link
Member

I'll go ahead and merge this, then follow-up with a change to add the missing test. I'll link to it here FYI. Thanks!

@joeyparrish joeyparrish merged commit d154fc7 into shaka-project:master Jun 8, 2021
shaka-bot pushed a commit that referenced this pull request Jun 10, 2021
We no longer have to rely on browser support for a codec to check
Streamer support for a codec.  We can check the manifest right after
parsing, and ignore any playback errors.

This also adds a test case for PR #74 (HEVC support) which was too
difficult to add before this refactor.

Change-Id: I37edb8ff7c94134e74e7a86f85c5b44bf4b38e24
@joeyparrish
Copy link
Member

I've added a test for HEVC and a structure for future codec tests, without depending on browser support for any given codec: 89254b4

Thanks again for contributing!

@github-actions github-actions bot added the status: archived Archived and locked; will not be updated label Jul 25, 2023
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 25, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
status: archived Archived and locked; will not be updated
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants