From 4a26849658f6c1328f8d3f54a564bc1e45ea3c15 Mon Sep 17 00:00:00 2001 From: Michael Alexander Date: Tue, 11 Oct 2016 22:59:45 +0900 Subject: [PATCH] Update README.md --- README.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/README.md b/README.md index 54a8f8d..e43a334 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,36 @@ General idea: Dedicated Server (with public IP) -> scp to AWS instance -> Encoding starts on AWS -> AWS instance push back the results to your server Configuration is done on your server + +Prerequisite: + - A server with public IP and SSH authentication via key enabled (and you have the key) + - AWS EC2 Instance + +How to use: + - Download the static binary (linux binary) of ffmpeg and put it on 'ffmpeg-bin' folder and name it 'ffmpeg' + - Perform necessary chmod to executables ('ffmpeg', 'StartEncoding.sh', 'EC2EncodeExec.sh', scripts in 'Script' folder) + - Rename 'config_template.sh' to 'config.sh' + - Fill in the server configuration on 'config.sh' + - Configure the encoder options in 'EncoderConfiguration.txt' + - Place the media that will be encoded to 'SourceMedia' folder + - Empty your Result folder (but the folder) else everything inside the 'Result' folder will be copied back to your server + - Put the file names (including extension) to the 'InputFiles.txt' + - Specify the output name of the result in 'OutputFiles.txt' (first line will correspond with first line of input file name and so on) + - Script named 'GenerateIONames.sh' can help generate Input and Output name + - Execute the script 'StartEncoding.sh' to start the whole process + - You can end your ssh session, and wait until the file appears on the Result folder (AWS will shutdown on complete) + +Future plans: + - Email notification on completion (any other notification may work as well) + - Executes some post scripts if desired + +Development hints: + - Script that will be executed on remote machine: 'EC2EncodeExec.sh' + - If you wish to add additional encoding option, recipes are all in the Scripts folder + - Execute flow: + - Server ('StartEncoding.sh') -> AWS ('EC2EncodeExec.sh') + - on AWS: + - Main encoder script ('MainEncodeScript.sh') will read the 'InputFiles.txt', 'EncoderConfiguration.txt', and will pass the execution to the specific encoding script based on video codec (H264/H265/etc.) + - Specific encoder script will execute the ffmpeg and start encoding + - on Finish: + - ('EC2EncodeExec.sh') will push all the 'Result' folder to your server with scp