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鈥檒l occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use PyAV fork and set hvc1 codec tag for H.265 #58309
Conversation
Hey there @hunterjm, @allenporter, mind taking a look at this pull request as it has been labeled with an integration ( |
Changelog of old pyav to new vesion: |
Given the importance of The discussion around maintenance status was here: PyAV-Org/PyAV#819 It sounds like they would be interested in having someone else maintain the project, but my impression is that you aren't necessarily looking to do that. However, given you were willing to do a fork and get a release out, maybe they'd let you do the same for PyAV without taking over full ownership? :) The My intuition is to commit one way or the other: to either maintain |
I actually asked on gitter about the possibility of a new release, but I didn't get a response after about a month so I just deleted the message and created this fork. The maintainers are busy and don't have a need to update things over there, and that is their prerogative.
Yes. I can update those if necessary but want to avoid too many commits. Right now it's clear the only deviation from the original repo is the pypi name change and the changes to get CI working.
I see your point but I would like to get this commit merged sooner rather than later. It's been in the works since February when I made the corresponding PR on the PyAV repo. Can we consider this PR without committing to a longer term decision on the library? The next HA beta is cut on Wednesday, and if we miss that we won't get this feature until the Dec release at the earliest. |
OK, so sounds like we have an answer about a pyav release. Going with a fork makes sense. The part i'm having trouble reconciling though is that you don't intend to maintain the fork, however by using this fork we're effectively committing to this approach IMO. I don't think we need to figure out a long term plan, just that we need to confirm we're OK with this decision being the long term plan. I think its safer to assume this will be the status quo for a long time. |
To clarify: I will keep the fork open, but I'm not interested in diverging from the PyAV repo too much. What I want to avoid is adding more features and also getting non HA devs using our fork instead of the original repo. The point is not to replace or compete with the original repo. |
Thanks for the detailed explanation, that seems like a fine state to me. I'm supportive, and would love to hear from others. |
I agree that we shouldn't diverge from pyAV too much. It would be nice if they made you a maintainer :) Otherwise I'm ok with this as well. |
Are we ok to approve/merge this? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, thanks for driving forward progress here 馃憤馃徏
It sounds like what would be required to become a maintainer is to effectively start reviewing all the PRs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Considering the upstream maintainer discussion, I think it is fine to fork for now. The fork will also show the capabilities the maintainers are looking for (make sure to contribute them back in PRs to the original repo to make it visible).
Proposed change
Using the hvc1 codec tag to mux H.265 video gets it working on Edge and browsers which support H.265.
I merged a PR which adds the codec tag functionality to the PyAV repo back in February, but there has not been a new release of the library since then.
The owner of the repo has indicated that the two maintainers are both very busy and the project is primarily for their own use, so it's not clear when a new release will be published.
I have forked the repo and published it under
ha-av
. The version that I used was created directly from this CI run https://github.com/uvjustin/PyAV/runs/3976952679 with minimal changes from the original fork. As of now I do not intend to maintain a fork and we can switch back to the official PyAV library if and when they release a new version.This PR switches the stream dependency from
av
toha-av
and uses the hvc1 codec tag when H.265 video is detected. This should get H.265 video playing in Edge on devices with hardware support.Type of change
Additional information
Checklist
black --fast homeassistant tests
)If user exposed functionality or configuration variables are added/changed:
If the code communicates with devices, web services, or third-party tools:
Updated and included derived files by running:
python3 -m script.hassfest
.requirements_all.txt
.Updated by running
python3 -m script.gen_requirements_all
..coveragerc
.The integration reached or maintains the following Integration Quality Scale:
To help with the load of incoming pull requests: