gst-plugins-rs/net/aws
Sanchayan Maity 6006a0ba36 aws/s3hlssink: Fix deadlock on EOS
In state change to NULL, we take state lock and call stop. When stop
is called, we will try to upload queued segments in S3 request thread.
That tries to take the state lock again and deadlocks.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1076>
2023-02-03 19:09:18 +05:30
..
src aws/s3hlssink: Fix deadlock on EOS 2023-02-03 19:09:18 +05:30
tests Fix various new clippy warnings 2023-01-25 10:31:19 +02:00
build.rs Rename rusoto to aws 2022-06-14 08:03:49 +00:00
Cargo.toml aws: Update to AWS SDK 0.54/0.24 2023-01-27 22:10:23 +02:00
LICENSE-MPL-2.0 Rename rusoto to aws 2022-06-14 08:03:49 +00:00
README.md aws: fix title in README 2022-10-26 11:13:47 +02:00

gst-plugin-aws

This is a GStreamer plugin to interact with Amazon Web Services. We currently have elements to interact with S3 and Transcribe.

AWS Credentials

AWS credentials are picked up using the mechanism described by AWS SDK. At the moment, that is:

  1. Environment variables: AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
  2. AWS credentials file. Usually located at ~/.aws/credentials.
  3. IAM instance profile. Will only work if running on an EC2 instance with an instance profile/role.

An example credentials file might look like:

[default]
aws_access_key_id = ...
aws_secret_access_key = ...

s3src

Reads from a given S3 (region, bucket, object, version?) tuple. The version may be omitted, in which case the default behaviour of fetching the latest version applies.

$ gst-launch-1.0 \
    s3src uri=s3://ap-south-1/my-bucket/my-object-key/which-can-have-slashes?version=my-optional-version !
    filesink name=my-object.out

s3sink

Writes data to a specified S3 (region, bucket, object, version?) tuple. The version may be omitted.

$ gst-launch-1.0 \
    videotestsrc ! \
    theoraenc ! \
    oggmux ! \
    s3sink uri=s3://us-west-1/example-bucket/my/file.ogv?version=my-optional-version

s3hlssink

Writes a single variant HLS stream directly to a specified S3 (region, bucket, path prefix) tuple. Takes the encoded audio and video stream as input, and uses hlssink3 if available, else hlssink2. HLS stream parameters such as playlist length, segment duration, etc. can be tweaked by accesing the underlying sink using the hlssink property.

awstranscriber

Transcribes audio to text.