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
Allow distinct Pricing for VOD and Live Streams per Broadcaster in pricePerBroadcaster
#2945
Comments
@rickstaa Thanks for raising this issue. This feature would be very helpful. Some things to consider:
|
What about if we spun up a separate Broadcaster address for Livepeer Studio's VOD broadcaster? That would allow setting different prices with the current app capabilities |
Interesting to consider Live needs to be transcoded under real-time. VoD doesn't have that requirement, and can be parallelized across multiple GPUs at once. As the software & service matures, these optimizations will need to be made. |
Thank you, @leszko, @thomshutt and @ericxtang, for your patience and valuable input. You've raised a crucial point regarding the differentiation between Live and VOD content for pricing purposes. I haven't fully explored this feature request to consider these specifics yet, but recognizing the broadcaster's ingest type is an essential factor to address 👍🏻. On the topic of making our system extensible to support types beyond just VOD and Live, I agree that this flexibility could be beneficial. Envisioning scenarios like premium charges for low-latency transcoding or different charges for CPU-based transcoding opens up a broader range of services we could offer. This discussion aligns with the wider concept of capabilities and job abstraction within the Livepeer network, allowing for a diverse array of jobs and variable charging models, as outlined in the forum discussion on job abstraction. The idea of starting with VOD and Live as foundational categories are indeed intended as a proof of concept to enhance our Job Abstraction pipeline. The development of the AI SPE by @yondonfu's team exemplifies another scenario where distinguishing between job types becomes crucial. Furthermore, incorporating additional information to identify specific clients or broadcaster deals with orchestrators, as mentioned in my Discord comment, could significantly optimize our network's functionality and service delivery. |
@thomshutt I concur that this represents a commendable intermediate solution with minimal resource requirements 👍🏻. It is similar to @titannode's suggestion in the forum post. Nonetheless, I firmly believe that embedding this capability within the protocol itself is imperative for the advancement of the ecosystem, offering benefits on a broader scale. |
FWIW I think a pricing framework [1][2] that can continuously adjust the price for a job based speed of completion and use of certain features for transcoding makes more sense in the long run than having distinct flat prices for VOD vs. Live - a B may be using the output for VOD or Live, but ultimately what it would be paying O for is a certain speed and configuration of transcoding that is appropriate for that setting. [1] Defining this is the exercise that remains. |
Problem Statement:
There's a growing need, as highlighted by sundara.eth on Discord, for broadcasters to have the flexibility to set different pricing structures for Video On Demand (VOD) and Live streaming services. Currently, the
pricePerBroadcaster
CLI argument does not support this level of granularity.Proposed Solution:
I propose enhancing the
go-livepeer
binary to support distinct pricing for Video on Demand (VOD) and Live streaming (LIVE). Specifically, it would be beneficial if the binary could interpret the following JSON structure, allowing orchestrators to set separate prices for VOD and Live streaming jobs:This JSON structure is intuitive and aligns well with the existing framework, offering a straightforward way for orchestrators to specify their pricing across jobs. Naturally, this feature must be implemented to maintain backward compatibility with the current syntax (e.g.,
"priceperunit": 0
).Alternative Solutions Considered:
(Describe any alternative solutions or features you have considered, if any)
Additional Context:
(Include any additional context or screenshots about the feature request here, if applicable)
The text was updated successfully, but these errors were encountered: