How to upload Janus video recordings to AWS S3 with Ubuntu systemd service Anil Wadghule - 08 May 2020 Add following files[Unit] Description=Upload Janus recordings to AWS S3 After=network.target [Service] Type=oneshot User=ubuntu WorkingDirectory=/home/ubuntu/janus_recordings ExecStart=/bin/bash /usr/local/bin/upload_videos [Install] WantedBy=multi-user.target /etc/systemd/system/janus_s3_upload.service[Unit] Description=Janus S3 Upload timer [Timer] OnCalendar=*:0/1 OnBootSec=5min [Install] WantedBy=timers.target/etc/systemd/system/janus_s3_upload.timer#!/bin/bash sh /usr/local/bin/mux_all for f in $(find -name \*.webm | sed "s|^\./||"); do /usr/local/bin/s3_move "$f" echo "Upload webm: $f done" done for f in $(find -name \*.opus | sed "s|^\./||"); do /usr/local/bin/s3_move "$f" echo "Upload opus: $f done" done/usr/local/bin/upload_videos#!/bin/bash for f in $(find -name \*-video.mjr | sed "s|^\./||"); do /usr/local/bin/mux "${f%-video.*}" done/usr/local/bin/mux_all#!/bin/bash if [ -z "$1" ] || [ ! -z "$2" ]; then echo Usage: ./mux \<basename\> exit fi ffmpegParams="-preset veryfast" PP=/opt/janus/bin/janus-pp-rec FFMPEG=/usr/bin/ffmpeg RM=/bin/rm AUDIOSIZE=$(wc -c <${1}-audio.mjr) VIDEOSIZE=$(wc -c <${1}-video.mjr) if [ ! -f "${1}-video.mjr" ]; then echo "No mjr file found with passed <basename>, exiting" exit 0 fi mv ${1}-video.mjr ${1}-video-processing.mjr mv ${1}-audio.mjr ${1}-audio-processing.mjr $PP ${1}-audio-processing.mjr ${1}-audio.opus if [ -f "${1}-audio.opus" ] || [ $AUDIOSIZE -lt 100 ]; then $RM ${1}-audio-processing.mjr fi $PP ${1}-video-processing.mjr ${1}-video.webm if [ -f "${1}-video.webm" ] || [ $VIDEOSIZE -lt 100 ]; then $RM ${1}-video-processing.mjr fi $FFMPEG -i ${1}-video.webm -i ${1}-audio.opus $ffmpegParams ${1}.mp4 if [ "$?" = "0" ] && [ -f "${1}.mp4" ]; then $RM -f ${1}-{audio,video}.{opus,webm} fi/usr/local/bin/mux#!/bin/bash S3CMD=/usr/local/bin/s3cmd OPTIONS="-P --rr" BUCKET=aplomb-input-bucket PREFIX= if [ -z "$1" ]; then echo Usage: ./upload_video \<filename\> exit fi if $S3CMD $OPTIONS put "$1" s3://$BUCKET/$PREFIX; then rm -f "$1" else echo Upload failed fi echo "Upload successfully"/usr/local/bin/s3_moveRun following command in terminalsudo apt-get install python-pip sudo pip install s3cmd #configure s3cmd --configureTo start the servicesudo systemctl start janus_s3_upload.timer Check logs at tail -f /var/log/syslog