
Our transcoding pipeline using Lambda and Elastic Transcoder - sbarski
https://read.acloud.guru/easy-video-transcoding-in-aws-7a0abaaab7b8
======
spdustin
This is a great post; we do almost this exact thing for our training videos.

Each online course we teach has its technical lecture/demo portions recorded
using the Mac's built-in QuickTime feature for making a screen recording. The
Mac is able to record the audio from the same mic in use by GoToWebinar.

During various breaks throughout the day, local watchers upload the files to
an S3 bucket. Lambda receives an event notice for the new file, runs an
elastic Transcoder job to encode for streaming (along with a watermark and
thumbnails), and dumps the result into a different bucket. Then it hits an API
endpoint for an LTI add-on I wrote for Canvas LMS that we use to manage access
to and streaming of the recorded sessions (via CloudFront signed URLs),
granting the currently in-session course section access to the video. I have
an update I need to finish writing for our LTI tool that will use the
thumbnails on the time scrubber bar to help with seeking in each video.

It also drops entries in SNS, which pings our chatbot (a Hubot we call Walken)
to keep us notified of its progress.

Elastic Transcoder is quite fast compared to encoding locally, and this new
workflow means I can have hours of videos from each day's session posted and
available for streaming within about 20 minutes of the session's end (I upload
files during an AM break, at lunch, at the PM break, and at end of day).

For our students, it seems like magic. They can spend lunch breaks (2 hours)
reviewing video of that morning's sessions to help with anything that they
didn't quite "get" during class. We love it, too.

------
cloudman101
Such an informative post, I will be recommending reading it to colleagues.
Great work!

