Closed Amplifiyer closed 1 year ago
+1 on the captions support :)
+1
Building a flutter app using Amplify and I need VOD capability to stream videos. Most desired (simplest) solution would be the Amplify video plugin but it is not available for flutter as far as I know. I'd like to see that some time soon if possible.
EDIT: It IS available for flutter, but still being developed. A more straightforward way to protect content would be great.
Would love to see Amazon Polly integration in the Flutter Amplify. Right now I am using it from Android Amplify as per my use case right only includes Android (but may also get to iOS in the future) and it would be great to have to have a Neural TTS option, as the native TTS Android offers may be not so user-friendly.
4.1 is the most interesting to me. Building an application like StreamYard that allows multiple users to connect using Kinesis with WebRTC then combining these into a suitable single stream that is then broadcast using Kinesis media streams.
This is an extremely exciting area that you can find more on in the labs https://github.com/awslabs/amplify-video
For 1.2, video on demand, having a way for the front end to automatically select the right format, and know what formats are available would be very helpful. Also, a lambda method to convert data formats from one type to another, with a bunch of pre-provided methods already available would be helpful. The particular requirement for the viewer I'm working on is that types that the viewer can handle are provided in an accept header, and then the response format needs to be chosen from the actually available types. For example: Accept: video/mp4 Accept: video/H265 Accept: video/jxl where only H265 was available would stream the video/H265.
It would also be nice to be able to encapsulate the response automatically as multipart/related in order to provide additional information - for example: Accept: multipart/related; contentType=video/H265 would return a multipart/related header with the metadata about the study, followed by the actual video content.
Response type determination should be generic based on the overall type, so for example: Accept: image/jpeg Accept: image/jxl should automatically choose between the two types based on what is available.
+1 for VOD, especially the ability to control the lifecycle. Our team has a production setup using the amplify-category-video plugin and that's very helpful. Sadly, it isn't maintained anymore by the original maintainer. @Amplifiyer We're interested in contributing to the amplify-category-video repo to keep it maintained at least until this RFC progresses. Already got some pending ideas for changes. Is that possible somehow? Maybe there is someone to contact in AWS? This simple PR for example is left with no review for weeks 😞
Thank you all for the feedback! We are closing this RFC now.
This is a Request For Comments (RFC). RFCs are intended to elicit feedback regarding a proposed change to the Amplify Framework. Please feel free to post comments or questions here.
This RFC is to gather customer feedback for a new proposed functionality in Amplify related to media use cases. In the next section, we have listed some use cases and we would like to hear from Amplify customers which one of these you would want to see in Amplify and if there are any use cases that are not covered below.
Please comment with your feedback such as
Motivation
Developers require deep audio/video streaming expertise to compose streaming services on AWS. The deceptively simple task of hosting a audio/video for viewers introduces immediate friction for developers as they need to understand media players, processing, and content management. To make video experiences intelligent and engaging, developers also require a deep understanding of analytics engines, machine learning, and interactive APIs.
Similarly developing applications for real time communication require low level understanding of webRTC, signaling and media relay and forwarding services.
1. Media Use Cases
1.1 Live Video Streaming
“1 to many” audio/video streaming (Conferences/Broadcast). It need not be real time (> 2-3 seconds) but high throughput (in thousands or millions of viewers) Few examples for this use case are
Question: Do you want capabilities to create new live streams with in the app, or as an output of a playback/resource creation workflow that can then be hard-coded in your apps for playback? Think of it as S3 bucket. Some developers would like a programmatic way to create buckets while others would create one and use it for their entire app (which is what Amplify supports as of now)
1.2 Video On Demand
A VOD streaming link that is available after uploading a video (e.g. to an S3 bucket) and supports codecs or formats: A, B and C (e.g. HLS) that can be viewed on variety of devices and network connections. Highly requested use case by developers who are or support content creators. Content creators would prefer to host and serve their content (Live video included) by themselves to avoid paying fees to other big platforms and monetize their content themselves. e.g.
1.3 Multi party audio/video calls
“1 to 1” or “Many to many” audio/video calls (Group conferences, group chats) where at least N participants can share videos simultaneously and communicate with each other in real time. Some examples for this use case are
1.4 Chat
Peer to peer or group chat including text and media (Images/video).
1.5 Security
2. Complementary Use Cases
2.1 CMS for media assets (videos, streams and meetings)
2.2 Attach metadata to media assets
2.3 Record live video streams
Recording the live streams or meetings and storing in S3 such that they are accessible as VOD later on or for archival purposes.
2.4 Record Analytics
Record analytics information such as
2.5 AI/Predictions
2.6 Share videos/audio/playlists (even images and documents)
Securely sharing media across users. User A uploads a media object which they share with User B and only User B should be able to access the media object. Further User B may or may not have access to share it to User C.
3. UI Framework SDKs
3.1 Media Player SDKs (Media display)
Configurable native player that can play the live streams and VODs in native frameworks.
3.2 Streamer SDKs (Ingestion)
3.3 Multi-participant video call SDKs
A kind of combination of the above two where customers stream as well as receive from other participants in real time.
4. Current solutions to AWS customers
4.1 Kinesis Video Streams
Kinesis Video Streams(KVS) offers two media solutions, one using a low level media streams and another with webRTC signaling and peer to peer connections.
4.2 AWS Chime SDK
What is Amazon Chime? - Amazon Chime Amazon Chime is a communications service that transforms online meetings with an application that is secure and comprehensive. Amazon Chime works across your devices so that you can stay connected. You can use Amazon Chime for online meetings, video conferencing, calls, and chat. You can also share content inside and outside of your organization. Amazon Chime helps you to work productively from anywhere.
4.3 Amazon Interactive Video Service (IVS)
IVS provides a managed and hosted end to end live streaming functionality over rtmps protocol. The service provides a video player SDK in all platforms (Web/android/iOS and video.js and JWPlayer integration as well). Streaming is done via RTMPS url and any popular streaming software. No SDKs are provided for streaming OOTB.
4.4 AWS Elemental Services
A set of Media services to create very specialized and highly configurable media workflows for live streaming and VOD.
4.5 Amplify Video Plugin
A plugin for amplify CLI currently maintained by AWS Solutions Architects and enables automated resource creation for VOD and live streaming backed by IVS and AWS Elemental Services.