encs3hlsbin: Encode multivariant hls to s3.

This bin generates multivariant HLS and upload directly to S3. number of variants and properties of each variants are specified via property.

This bin wraps -

video_scale -> videorate -> video_encode -> hls -> upload_to_s3

audio_resample -> audio_encode -> hls -> upload_to_s3

bin supports all combination of audio only hls, video only hls, audio+video hls

example pipeline -

gst-launch-1.0 -vvv videotestsrc is-live=1 num-buffers=1000 ! videoconvert ! videoscale ! videorate   !  video/x-raw,format=I420,framerate=30/1,width=1920,height=1080 ! queue  !  sink.hls_video  audiotestsrc num-buffers=1000 ! audioconvert ! audioresample ! queue !  sink.hls_audio  encs3hlsbin name=sink   variants="<\"p1,width=(int)1280,height=(int)720,fps=(int)20,bitrate=(int)3000\",\"p2,width=(int)640,height=(int)360,fps=(int)20,bitrate=(int)2000\" >"     s3bucket=<my s3 bucket>     s3region=ap-south-1   s3key-prefix=hls-test     playlist-type=vod
Edited by rajneeshksoni

Merge request reports