-
Notifications
You must be signed in to change notification settings - Fork 424
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
HEVC support in codecs logic #293
Comments
👋 Thanks for opening your first issue here! 👋 If you're reporting a 🐞 bug, please make sure you include steps to reproduce it. We get a lot of issues on this repo, so please be patient and we will get back to you as soon as we can. |
I've run into this as well and would like it to work. Here are some more sample streams (https works as well) Did you try changing the function you identified to also look for hev1? export const isVideoCodec = function(codec) { Also it probably is a bit late for your purposes, but videojs with the dash contrib can play hevc fine in supported browsers. I want to use hls + fmp4. |
If I recall correctly, I forced that function to return true hoping that would be an easy fix (and it didn't help). |
I'm zoning in a solution. createClass$1(SourceUpdater, [{ |
Well a bit more testing.
The only actual code change I needed to make was one line of regex from: Assuming you can use a master playlist so you can provide a codec string, the single change above got hevc working for me. |
We have some work to fix this in videojs/vhs-utils#10 and #762. Though, we're unlikely going to make this change in the current 1.x branch but hopefully, we'll be confident in the changes in master soon. |
VHS 2.1 supports HEVC in fmp4 and will play it back if the browser supports it. |
This is coming to Video.js 7 soon. |
@gkatsev I just noticed your reply here, having posted a generic HEVC question at videojs/video.js#6889 Will VHS 2.2.1 play HEVC and does it work with vidoejs 7.8.4? Is there a reason 7.8.4 is bundled with 1.x of VHS? Sorry for all the questions, but I could not find any roadmaps, blogs or other resources explaining the relationship between 2.x VHS and the current videojs. I will be soon releasing a new update to our site and as we are re-encoding all videos it would be great to support HEVC with this update—we don’t get to make a major change like that often. Thank you. |
VHS 2.2.3 has shipped in Video.js 7.10 which supports HEVC if the browser supports it and if it is packaged in an mp4. |
While trying to use HEVC in Edge i found that using videojs to play HEVC in an mp4 container works.
|
It appears there's a hard coded value in ffmpeg that makes it so Chrome doesn't want to play the video when it may be able to do so: |
Please do not delete the template, by filling out the required information we can investigate your issue more quickly.
Before opening an issue see if your problem can be resolved with the troubleshooting guide.
Description
The implementation of codecs.js assumes videos are always AVC so HEVC playlists are incorrectly represented as not containing video.
This is probably more of an "enhancement" than an issue.
Sources
Try http://dash.akamaized.net/dash264/TestCasesHEVC/1b/1/TOS_Live_HEVC_MultiRate.mpd
Steps to reproduce
Explain in detail the exact steps necessary to reproduce the issue.
In util/codecs.js, it is assumed that all video codecs begin with avc1 and that all audio codecs begin mp4a (AAC).
This can affect playlist selection (although not always).
i.e. a DASH manifest specifying an HEVC video track and an AAC audio track will incorrectly be parsed as an audio only playlist.
With default settings, this still allows the video to play (assuming the browser reports H.265 support) however it won't if enableLowInitialPlaylist is set to true.
In playlist-selector.js (lowestBitrateCompatibleVariantSelector)
// Parse and assume that playlists with no video codec have no video
// (this is not necessarily true, although it is generally true).
//
// If an entire manifest has no valid videos everything will get filtered
// out.
This results in nothing playing back, even though the browser and OS support HEVC playback.
Results
Expected
Expect that if a format is supported by the browser, it is playable through Video.js http streaming.
Error output
If there are any errors in the console, from the player, or anywhere else please include them here:
Additional Information
Please include any additional information necessary here. Including the following:
videojs-http-streaming version
what version of videojs-http-streaming does this occur with?
videojs-http-streaming 1.2.6
videojs version
what version of videojs does this occur with?
video.js v7.2.4
Browsers
what browsers are affected? please include browser and version for each
Platforms
what platforms are affected? please include operating system and version or device and version for each
Other Plugins
are any other videojs plugins being used on the page? If so, please list them with version below.
*
Other JavaScript
are you using any other javascript libraries or frameworks on the page? if so please list them below.
*
The text was updated successfully, but these errors were encountered: