Check folder /home/*username*/public_html/media/flv for media files of defined extensions: flv, avi, mpg, mov, mp4 and get all filenames
Check folder /home/*username*/public_html/media/mp4 for filenames that do not exist
e.g.: /home/*username*/public_html/media/flv/1.flv is filename 1
/home/*username*/public_html/media/mp4/1.mp4 is filename 1
therefore 1 already exists, ignore
- the scanning of the directory should not be resource intensive. There will be 60,000 videos in the /home/*username*/public_html/media/flv folder
If the filename does not exist in /home/*username*/public_html/media/mp4 create an mp4 version
I need to be able to control:
- height of the video
- start point of the video in seconds
- duration of the video (xx seconds or full)
- frames per second
- bitrate of the video
- bitrate of the audio and mono / stereo
- the script should convert 1 video at a time and only start converting the next video once the previous video is completed. There needs to be a timeout after which the conversion is assumed to have failed and this needs to be able to be easily modified.
- The script should try and convert using a two pass first. If that conversion fails, the script should retry using one pass. If that too fails, the script should email a failure report to a defined email address.
- The script should exit once completed
- The script should not allow a second session of the script to run. If the script is run and it detects that it is already running, it must abort the second instance
- Once the video is transcoded, it MUST be hinted/touched/prepared for streaming. The buffer settings and keyframe need to be changeable easily.
These are system paths:
phppath = '/usr/local/bin/php'
mplayer = '/usr/local/bin/mplayer'
mencoder = '/usr/local/bin/mencoder'
ffmpeg = '/usr/local/bin/ffmpeg'
metainject = '/usr/bin/flvtool2'
yamdi = '/usr/local/bin/yamdi'
neroaacenc = '/usr/local/bin/neroAacEnc'
mp4box = '/usr/local/bin/MP4Box'
mediainfo = '/usr/bin/mediainfo'