/pyup-transcoder

a Python-based software to transcode videos and upload files to a remote server or S3-bucket

Primary LanguagePython

#pyup-transcoder

a Python-based software to transcode videos and upload files to a remote server or S3-bucket

##Usage ~$ python transcoder.py -h usage: transcoder.py [-h] -in INPUT [-out OUTPUT] [-r] [-t] [-up] [-via {ftp,s3}] [-ftphost HOST] [-ftpport PORT] [-ftpusername USERNAME] [-ftppassword PASSWORD] [-ftpbasedir BASEDIR] [-ftppath PATH] [-s3keyid S3KEYID] [-s3secretkey S3SECRETKEY] [-s3bucket BUCKET]

A simple transcoder and uploader software

optional arguments:
  -h, --help            show this help message and exit
  -in INPUT, --input INPUT
                    input folder
  -out OUTPUT, --output OUTPUT
                    optional output folder
-r, --removelocal     remove created files after execution
-t, --transcode       whether to transcode or not
-up, --upload         whether to upload or not
-via {ftp,s3}         upload with [ftp] or [s3]
-ftphost HOST         FTP host
-ftpport PORT         FTP port
-ftpusername USERNAME
                      FTP username
-ftppassword PASSWORD
                      FTP password
-ftpbasedir BASEDIR   FTP base directory to connect to
-ftppath PATH         FTP destination path to be created
-s3keyid S3KEYID      Your AWS Access Key ID
-s3secretkey S3SECRETKEY
                      Your AWS Secret Access Key
-s3bucket BUCKET      S3 bucket name
-f, --externalfile    whether parameters should be taken from an external
                    file
-extpath EXTPATH, --externalfilepath EXTPATH
                    path of external file contining parameters

Note configuration parameters from command line take precedence over file ones.

Trasconde

Trascoding is performed using GStreamer framework. Videos are encoded using a pipeline with the following features:

  • H.264/AVC as video codec
  • AAC as audio codec
  • MP4 as container

A custom GStreamer pipeline can be provided via file (A basic knowledge of GStreamer is required)

Upload

Upload is allowed via:

  • FTP (authenticated/anonymous)
  • Amazon Web Services S3 (exinsting/new Bucket)

Credentials and several options can be provided via file

TODO

  • OO version
  • GStreamer via gst-python lib
  • GUI
  • FTP TLS