shaka-project / shaka-player-embedded

Shaka Player in a C++ Framework
Apache License 2.0
238 stars 63 forks source link

Will Apple give you issues if you implement? FairPlay support? #149

Closed krzemienski closed 4 years ago

krzemienski commented 4 years ago

I recently was shared this by people in the video-dev world and I am really excited l to see it exists! And so first off my hat once again goes off to the open-source efforts you googlers seem to keep up!

Something like this project very much so could enable an engineering org like us fuboTV to now not be limited by the vast majority of hardware manufacturers player SDKs, if they will allow us to do so since we are not “YouTube”

Can you anyone speak to if Apple now might have changed and or softened their restrictions around using a player that is NOT AVPlayer at scale on iOS & tvOS? I know that certain organizations have received expectations of those restrictions- Google being one of them.

I also would need to ensure that we are using FairPlay on Apple devices due to specific legal jargon in content deals we have in place I believe, I’ll have to double-check internally. So that noted can I use Fairplay in the same manner that Apple does with AVFoundation.

And so I apologize if the answers to my two questions might have been in the docs and or by means of reading the source code. I skimmed the docs and can’t see to find any “use at your own risk” lingo that I have seen in other iOS based non-avplayer open source libraries and just really want to make sure my efforts into maybe doing some R&D around this won’t be in vain. At the end of the day, I use shaka-packager for packaging of all dash and take a guess which player doesn’t play dash.

TheModMaker commented 4 years ago

First, we haven't released an app yet, so we aren't sure about it. But the Apple docs don't say anything about requiring AVPlayer. There are some requirements about playing HLS, but on Wifi, this doesn't apply. I also know you can use key systems other than FairPlay since Widevine has provided an iOS library for a while now.

Since we do use AVPlayer for HLS content, we may be able to add FairPlay support for that. I've filed #150 for to track.

krzemienski commented 4 years ago

Appreciate the candid response, when you say we are you referring to YouTube, I see in #150 you used the word now I'm trying to remember where I had come across that you were not. The whole discussion that eventually leads me to find this project was surrounding how it seems YouTube will be using vp9 within the Apple ecosystem in tvOS 14. I don't see any updates to the tvOS AVPlayer capabilities and had figured it would seem that YouTube has its player and are not using AVPlayer. Anyways any context or information you can share regarding vp9 and apple devices would be much appreciated as well. If you can not, though, I understand. I could have sworn maybe 2-3 years ago they had a note in the app store guidelines about it, and so after just reading through them briefly again the only thing I can find is this 2.5.7 Video streaming content over a cellular network longer than 10 minutes must use HTTP Live Streaming and include a baseline 192 kbps HTTP Live stream. in regards to media, so that is a pleasant surprise!

Regarding DRM, and so yes, I'm aware and have messed around with Widevine and HLS. My question was more so in case for whatever reason you have the requirements (ours at fubo being content deal languaging), you must use FairPlay explicitly on iOS & tvOS. I appreciate you adding it to the backlog; it wouldn't necessarily be a blocker though we probably could just reach out to the content owner and ask them if it's ok to use Widevine in this case and I don't see why they might have an issue with it.

I look forward to doing some research around what it would take to remove our current manufacturer-specific dependencies on the players they offer. If I come across anything similar to requirements I thought apple had with AVPlayer ill be sure to open another issue marked as a question.

TheModMaker commented 4 years ago

I use we to refer to this project, and partially to the Shaka team, even though I'm really the only one who works on this. This project is not associated with YouTube in any way. I don't think Apple devices have hardware support for VP9. I don't see any of the enum values for VP9 in the decoder handling; but AVPlayer does have the advantage of being able to use internal APIs and maybe supporting more than we can support handling it ourselves.

This project does support the FFmpeg software decoders. You can use the following configure flags to add the FFmpeg software decoders and be able to play VP9 and WebM content. This project only supports MP4 (mov) and WebM (matroska), but we should be able to support any codecs.

./configure --ios --no-force-hardware-decode --ffmpeg-deocders --containers matroska,mov --codecs h264,aac,vp9,opus
TheModMaker commented 4 years ago

Closing due to inactivity. If you still have questions or are having troubles with Apple approval, feel free to reply or open a new issue.