videos/Makepromo

changeset 0
d26705c3ba8a
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/videos/Makepromo	Sun Jan 19 20:39:54 2014 +0100
     1.3 @@ -0,0 +1,296 @@
     1.4 +#! /bin/sh
     1.5 +
     1.6 +# Set variables
     1.7 +INFILE=$1
     1.8 +INAUDI=$2
     1.9 +INPREV=$3
    1.10 +INPOST=$4
    1.11 +INTITLE=$5
    1.12 +THREAD=4
    1.13 +
    1.14 +# Following is not needed
    1.15 +## Get the number of frames for fading out
    1.16 +#FRAMES=`ffmpeg -i $INFILE -an -codec:v copy -f null /dev/null 2>&1 | grep 'frame=' | cut -f 2 -d ' '`
    1.17 +
    1.18 +# Start log
    1.19 +#script procfilm-`date +%Y%m%d:%H:%M:%S`.log
    1.20 +echo "Redirecting command line out to log file `date +%Y%m%d:..._`.log"
    1.21 +exec > procfilm-`date +%Y%m%d:%H:%M:%S`.log 2>&1
    1.22 +
    1.23 +# Usage
    1.24 +echo 'This program will produce six output files, one of each format:'
    1.25 +echo '    720p and 360p, WEBM (VP8+VORBIS in WEBM)'
    1.26 +echo '    720p and 360p, XIPH (THEORA+VORBIS in OGV)'
    1.27 +echo '    720p and 360p, MPEG (H.264+AAC in MP4)'
    1.28 +echo ''
    1.29 +echo "Usage:   $0 <Srcfile> <Srcaudio> <Prevfile> <Postfile> '<Titel>'"
    1.30 +echo "Example: $0 Myfilm.avi Myaudio.wav Myprev Mypost 'My best film'"
    1.31 +echo 'Note: Myprev and Mypost must be PNG files (without file extension.)'
    1.32 +echo 'Note: Titel can be only one word unless you wrap a phrase in quotes.'
    1.33 +echo ''
    1.34 +echo 'Warning: Check your preset paths like /usr/share/ffmpeg and $HOME/.ffmpeg'
    1.35 +echo ''
    1.36 +echo "Starting with log processing on `date +%Y%m%d\ %H:%M:%S`"
    1.37 +echo ''
    1.38 +
    1.39 +# Create working subdirectories
    1.40 +for format in webm xiph mpeg; do
    1.41 +    for resol in 360 720; do
    1.42 +        mkdir work$format-$resol;
    1.43 +    done;
    1.44 +done
    1.45 +
    1.46 +#
    1.47 +# START OF WEBM ENCODING
    1.48 +#
    1.49 +
    1.50 +# 720p Webm (VP8/Vorbis)
    1.51 +cd ./workwebm-720 || return 1
    1.52 +
    1.53 +# 720p Prepare main film part
    1.54 +time ffmpeg -v warning -threads $THREAD -i ../$INFILE -an -codec:v libvpx -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -vpre 720p -pass 1 -f null /dev/null 2>&1
    1.55 +echo 'Finished first pass main film part encoding...'
    1.56 +echo ''
    1.57 +# For only watermark (no delogo nor fade) do this:
    1.58 +# -vf 'movie=../procomwater.png [watermark]; [in][watermark] overlay=24:608 [out]'
    1.59 +time ffmpeg -v warning -threads $THREAD -i ../$INFILE -an -codec:v libvpx -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -vpre 720p -vf '[in] delogo=x=38:y=616:w=254:h=68:band=4:t=4:show=0 [delogo]; movie=../procomwater.png [watermark]; [delogo][watermark] overlay=24:608, fade=t=in:st=0:d=1:alpha=0, fade=t=out:st=298:d=2:alpha=0 [out]' -f webm -pass 2 $INFILE-vidnur720p.webm
    1.60 +echo 'Finished second pass main film part encoding...'
    1.61 +echo ''
    1.62 +
    1.63 +# 720p Generate front and back matter
    1.64 +# WARNING: -loop, -t, -r, -vf, -f, or something else causing sync problems!
    1.65 +ffmpeg -v warning -loop 1 -i ../$INPREV.png -c:v libvpx -t 12.45 -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -vpre 720p -vf 'fade=t=in:st=0:d=1.5:alpha=0, fade=t=out:st=11.5:d=0.5:alpha=0' -f webm $INPREV-720p.webm
    1.66 +echo 'Finished generation of front matter...'
    1.67 +echo ''
    1.68 +ffmpeg -v warning -loop 1 -i ../$INPOST.png -c:v libvpx -t 15 -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -vpre 720p -vf 'fade=t=in:st=0:d=1:alpha=0' -f webm $INPOST-720p.webm
    1.69 +echo 'Finished generation of back matter...'
    1.70 +echo ''
    1.71 +
    1.72 +# 720p Concatanate film parts
    1.73 +mkvmerge --title "$INTITLE" --default-language en -w -o $INFILE-vidcat720p.webm $INPREV-720p.webm + $INFILE-vidnur720p.webm + $INPOST-720p.webm
    1.74 +echo 'Finished concatanating front, main, and back part files...'
    1.75 +echo ''
    1.76 +
    1.77 +# 720p Join video and audio in film
    1.78 +ffmpeg -v warning -i $INFILE-vidcat720p.webm -i ../$INAUDI -map 0 -map 1 -strict -2 -codec:a vorbis -aq 20 -ac 2 -codec:v copy -pix_fmt yuv420p -f webm output-720p.webm
    1.79 +echo "Finished joining video with audio to produce $INFILE-720p.webm" 
    1.80 +echo ''
    1.81 +echo ''
    1.82 +
    1.83 +# 360p Webm (VP8/Vorbis)
    1.84 +cd ../workwebm-360 || return 1
    1.85 +
    1.86 +# 360p Prepare main film part
    1.87 +time ffmpeg -v warning -threads $THREAD -i ../$INFILE -an -codec:v libvpx -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -vpre 360p -pass 1 -f null /dev/null 2>&1
    1.88 +echo 'Finished first pass main film part encoding...'
    1.89 +echo ''
    1.90 +time ffmpeg -v warning -threads $THREAD -i ../$INFILE -an -codec:v libvpx -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -vpre 360p -vf '[in] delogo=x=38:y=616:w=254:h=68:band=4:t=4:show=0 [delogo]; movie=../procomwater.png [watermark]; [delogo][watermark] overlay=24:608, fade=t=in:st=0:d=1:alpha=0, fade=t=out:st=298:d=2:alpha=0 [out]' -f webm -pass 2 $INFILE-vidnur360p.webm
    1.91 +echo 'Finished second pass main film part encoding...'
    1.92 +echo ''
    1.93 +
    1.94 +# 360p Generate front and back matter
    1.95 +# WARNING: -loop, -t, -r, -vf, -f, or something else causing sync problems!
    1.96 +ffmpeg -v warning -loop 1 -i ../$INPREV.png -c:v libvpx -t 12.45 -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -vpre 360p -vf 'fade=t=in:st=0:d=1.5:alpha=0, fade=t=out:st=11.5:d=0.5:alpha=0' -f webm $INPREV-360p.webm
    1.97 +echo 'Finished generation of front matter...'
    1.98 +echo ''
    1.99 +ffmpeg -v warning -loop 1 -i ../$INPOST.png -c:v libvpx -t 15 -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -vpre 360p -vf 'fade=t=in:st=0:d=1:alpha=0' -f webm $INPOST-360p.webm
   1.100 +echo 'Finished generation of back matter...'
   1.101 +echo ''
   1.102 +
   1.103 +# 360p Concatanate film parts
   1.104 +mkvmerge --title "$INTITLE" --default-language en -w -o $INFILE-vidcat360p.webm $INPREV-360p.webm + $INFILE-vidnur360p.webm + $INPOST-360p.webm
   1.105 +echo 'Finished concatanating front, main, and back part files...'
   1.106 +echo ''
   1.107 +
   1.108 +# 360p Join video and audio in film
   1.109 +ffmpeg -v warning -i $INFILE-vidcat360p.webm -i ../$INAUDI -map 0 -map 1 -strict -2 -codec:a vorbis -aq 20 -ac 2 -codec:v copy -pix_fmt yuv420p -f webm output-360p.webm
   1.110 +echo "Finished joining video with audio to produce $INFILE-360p.webm" 
   1.111 +echo ''
   1.112 +echo ''
   1.113 +
   1.114 +#
   1.115 +# START OF MPEG4 ENCODING
   1.116 +#
   1.117 +
   1.118 +# 720p MPEG4 (H.264/MP4)
   1.119 +cd ../workmpeg-720 || return 1
   1.120 +
   1.121 +# 720p Prepare main film part
   1.122 +time ffmpeg -v warning -threads 0 -i ../$INFILE -an -codec:v libx264 -b:v 2048k -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -vpre fastfirstpass -pass 1 -f null /dev/null 2>&1
   1.123 +echo 'Finished first pass main film part encoding...'
   1.124 +echo ''
   1.125 +time ffmpeg -v warning -threads 0 -i ../$INFILE -an -codec:v libx264 -b:v 2048k -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -vpre hq -vf '[in] delogo=x=38:y=616:w=254:h=68:band=4:t=4:show=0 [delogo]; movie=../procomwater.png [watermark]; [delogo][watermark] overlay=24:608, fade=t=in:st=0:d=1:alpha=0, fade=t=out:st=298:d=2:alpha=0 [out]' -bsf:v h264_mp4toannexb -f mpegts -pass 2 $INFILE-vidnur720p.ts
   1.126 +echo 'Finished second pass main film part encoding...'
   1.127 +echo ''
   1.128 +
   1.129 +# 720p Generate front and back matter
   1.130 +# WARNING: -loop, -t, -r, -vf, -f, or something else causing sync problems!
   1.131 +ffmpeg -v warning -loop 1 -i ../$INPREV.png -c:v libx264 -t 12.45 -b:v 2048k -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -vf 'fade=t=in:st=0:d=1.5:alpha=0, fade=t=out:st=11.5:d=0.5:alpha=0' -f mpegts $INPREV-720p.ts
   1.132 +echo 'Finished generation of front matter...'
   1.133 +echo ''
   1.134 +ffmpeg -v warning -loop 1 -i ../$INPOST.png -c:v libx264 -t 15 -b:v 2048k -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -vf 'fade=t=in:st=0:d=1:alpha=0' -f mpegts $INPOST-720p.ts
   1.135 +echo 'Finished generation of back matter...'
   1.136 +echo ''
   1.137 +
   1.138 +# Now prepare for H.264 concatanation
   1.139 +# http://trac.ffmpeg.org/wiki/How%20to%20concatenate%20%28join,%20merge%29%20media%20files
   1.140 +
   1.141 +## Dont use this because it reencodes when copying is desired
   1.142 +##ffmpeg -v warning -i <filmpre.mp4> -i $INFILE -i <filmpost.mp4> -filter_complex '[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] concat=n=3:v=1:a=1 [v] [a]' -map '[v]' -map '[a]' fullfilm.mp4
   1.143 +
   1.144 +# 720p Concatanate film parts
   1.145 +# Actually dont need this if we encode H.264 to MPEGTS in previous encoding
   1.146 +##ffmpeg -v warning -i $INFILE.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate.ts
   1.147 +ffmpeg -i "concat:$INPREV-720p.ts|$INFILE-vidnur720p.ts|$INPOST-720p.ts" -c copy -bsf:a aac_adtstoasc -f mp4 $INFILE-vidcat720p.mp4
   1.148 +echo 'Finished concatanating front, main, and back part files...'
   1.149 +echo ''
   1.150 +
   1.151 +# 720p Join video and audio in film
   1.152 +ffmpeg -v warning -i $INFILE-vidcat720p.mp4 -i ../$INAUDI -map 0 -map 1 -strict -2 -codec:a aac -b:a 128k -ac 2 -sample_fmt:1 fltp -codec:v copy -pix_fmt yuv420p -f mp4 output-720p.mp4
   1.153 +echo "Finished joining video with audio to produce $INFILE-720p.mp4" 
   1.154 +echo ''
   1.155 +echo ''
   1.156 +
   1.157 +# 360p MPEG4 (H.264/MP4)
   1.158 +cd ../workmpeg-360 || return 1
   1.159 +
   1.160 +# 360p Prepare main film part
   1.161 +time ffmpeg -v warning -threads 0 -i ../$INFILE -an -codec:v libx264 -b:v 768k -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -vpre fastfirstpass -pass 1 -f null /dev/null 2>&1
   1.162 +echo 'Finished first pass main film part encoding...'
   1.163 +echo ''
   1.164 +time ffmpeg -v warning -threads 0 -i ../$INFILE -an -codec:v libx264 -b:v 768k -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -vpre hq -vf '[in] delogo=x=38:y=616:w=254:h=68:band=4:t=4:show=0 [delogo]; movie=../procomwater.png [watermark]; [delogo][watermark] overlay=24:608, fade=t=in:st=0:d=1:alpha=0, fade=t=out:st=298:d=2:alpha=0 [out]' -bsf:v h264_mp4toannexb -f mpegts -pass 2 $INFILE-vidnur360p.ts
   1.165 +echo 'Finished second pass main film part encoding...'
   1.166 +echo ''
   1.167 +
   1.168 +# 360p Generate front and back matter
   1.169 +# WARNING: -loop, -t, -r, -vf, -f, or something else causing sync problems!
   1.170 +ffmpeg -v warning -loop 1 -i ../$INPREV.png -c:v libx264 -t 12.45 -b:v 768k -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -vf 'fade=t=in:st=0:d=1.5:alpha=0, fade=t=out:st=11.5:d=0.5:alpha=0' -f mpegts $INPREV-360p.ts
   1.171 +echo 'Finished generation of front matter...'
   1.172 +echo ''
   1.173 +ffmpeg -v warning -loop 1 -i ../$INPOST.png -c:v libx264 -t 15 -b:v 768k -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -vf 'fade=t=in:st=0:d=1:alpha=0' -f mpegts $INPOST-360p.ts
   1.174 +echo 'Finished generation of back matter...'
   1.175 +echo ''
   1.176 +
   1.177 +# Now prepare for H.264 concatanation
   1.178 +# http://trac.ffmpeg.org/wiki/How%20to%20concatenate%20%28join,%20merge%29%20media%20files
   1.179 +
   1.180 +## Dont use this because it reencodes when copying is desired
   1.181 +##ffmpeg -v warning -i <filmpre.mp4> -i $INFILE -i <filmpost.mp4> -filter_complex '[0:0] [0:1] [1:0] [1:1] [2:0] [2:1] concat=n=3:v=1:a=1 [v] [a]' -map '[v]' -map '[a]' fullfilm.mp4
   1.182 +
   1.183 +# 360p Concatanate film parts
   1.184 +# Actually dont need this if we encode H.264 to MPEGTS in previous encoding
   1.185 +##ffmpeg -v warning -i $INFILE.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate.ts
   1.186 +ffmpeg -i "concat:$INPREV-360p.ts|$INFILE-vidnur360p.ts|$INPOST-360p.ts" -c copy -bsf:a aac_adtstoasc -f mp4 $INFILE-vidcat360p.mp4
   1.187 +echo 'Finished concatanating front, main, and back part files...'
   1.188 +echo ''
   1.189 +
   1.190 +# 360p Join video and audio in film
   1.191 +ffmpeg -v warning -i $INFILE-vidcat360p.mp4 -i ../$INAUDI -map 0 -map 1 -strict -2 -codec:a aac -b:a 128k -ac 2 -sample_fmt:1 fltp -codec:v copy -pix_fmt yuv420p -f mp4 output-360p.mp4
   1.192 +echo "Finished joining video with audio to produce $INFILE-360p.mp4" 
   1.193 +echo ''
   1.194 +echo ''
   1.195 +
   1.196 +#
   1.197 +# START OF XIPH ENCODING
   1.198 +#
   1.199 +
   1.200 +# 720p OGV
   1.201 +cd ../workxiph-720 || return 1
   1.202 +
   1.203 +# 720p Prepare main film part
   1.204 +#ffmpeg -i ../$INFILE -codec:v theora -qscale:v 7 -codec:a vorbis -qscale:a 5 output.ogv
   1.205 +time ffmpeg -v warning -threads 0 -i ../$INFILE -an -codec:v libtheora -b:v 2400k -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -f null -pass 1 /dev/null 2>&1
   1.206 +echo 'Finished first pass main film part encoding...'
   1.207 +echo ''
   1.208 +time ffmpeg -v warning -threads 0 -i ../$INFILE -an -codec:v libtheora -b:v 2400k -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -vf '[in] delogo=x=38:y=616:w=254:h=68:band=4:t=4:show=0 [delogo]; movie=../procomwater.png [watermark]; [delogo][watermark] overlay=24:608, fade=t=in:st=0:d=1:alpha=0, fade=t=out:st=298:d=2:alpha=0 [out]' -f ogg -pass 2 $INFILE-vidnur720p.ogv
   1.209 +echo 'Finished second pass main film part encoding...'
   1.210 +echo ''
   1.211 +
   1.212 +# 720p Generate front and back matter
   1.213 +# WARNING: -loop, -t, -r, -vf, -f, or something else causing sync problems!
   1.214 +ffmpeg -v warning -loop 1 -i ../$INPREV.png -c:v libtheora -t 12.55 -b:v 2400k -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -vf 'fade=t=in:st=0:d=1.5:alpha=0, fade=t=out:st=11.5:d=0.5:alpha=0' -f ogg $INPREV-720p.ogv
   1.215 +echo 'Finished generation of front matter...'
   1.216 +echo ''
   1.217 +ffmpeg -v warning -loop 1 -i ../$INPOST.png -c:v libtheora -t 15 -b:v 2400k -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -vf 'fade=t=in:st=0:d=1:alpha=0' -f ogg $INPOST-720p.ogv
   1.218 +echo 'Finished generation of back matter...'
   1.219 +echo ''
   1.220 +
   1.221 +# 720p Concatanate film parts
   1.222 +#oggCat $INFILE-vidcat720p.ogv $INPREV-720p.ogv $INFILE-vidnur720p.ogv $INPOST-720p.ogv
   1.223 +mkvmerge --title "$INTITLE" --default-language en -o $INFILE-vidcat720p.mkv $INPREV-720p.ogv + $INFILE-vidnur720p.ogv + $INPOST-720p.ogv
   1.224 +echo 'Finished concatanating front, main, and back part files...'
   1.225 +echo ''
   1.226 +
   1.227 +# 720p Join video and audio in film
   1.228 +ffmpeg -v warning -i $INFILE-vidcat720p.mkv -i ../$INAUDI -map 0 -map 1 -strict -2 -codec:a vorbis -qscale:a 6 -ac 2 -codec:v copy -pix_fmt yuv420p -f ogg output-720p.ogv
   1.229 +echo "Finished joining video with audio to produce $INFILE-720p.ogv" 
   1.230 +echo ''
   1.231 +echo ''
   1.232 +
   1.233 +# 360p OGV
   1.234 +cd ../workxiph-360 || return 1
   1.235 +
   1.236 +# 360p Prepare main film part
   1.237 +#ffmpeg -i ../$INFILE -codec:v theora -qscale:v 7 -codec:a vorbis -qscale:a 5 output.ogv
   1.238 +time ffmpeg -v warning -threads 0 -i ../$INFILE -an -codec:v libtheora -b:v 1024k -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -f null -pass 1 /dev/null 2>&1
   1.239 +echo 'Finished first pass main film part encoding...'
   1.240 +echo ''
   1.241 +time ffmpeg -v warning -threads 0 -i ../$INFILE -an -codec:v libtheora -b:v 1024k -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -vf '[in] delogo=x=38:y=616:w=254:h=68:band=4:t=4:show=0 [delogo]; movie=../procomwater.png [watermark]; [delogo][watermark] overlay=24:608, fade=t=in:st=0:d=1:alpha=0, fade=t=out:st=298:d=2:alpha=0 [out]' -f ogg -pass 2 $INFILE-vidnur360p.ogv
   1.242 +echo 'Finished second pass main film part encoding...'
   1.243 +echo ''
   1.244 +
   1.245 +# 360p Generate front and back matter
   1.246 +# WARNING: -loop, -t, -r, -vf, -f, or something else causing sync problems!
   1.247 +ffmpeg -v warning -loop 1 -i ../$INPREV.png -c:v libtheora -t 12.50 -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -vf 'fade=t=in:st=0:d=1.5:alpha=0, fade=t=out:st=11.5:d=0.5:alpha=0' -f ogg $INPREV-360p.ogv
   1.248 +echo 'Finished generation of front matter...'
   1.249 +echo ''
   1.250 +ffmpeg -v warning -loop 1 -i ../$INPOST.png -c:v libtheora -t 15 -b:v 1024k -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -vf 'fade=t=in:st=0:d=1:alpha=0' -f ogg $INPOST-360p.ogv
   1.251 +echo 'Finished generation of back matter...'
   1.252 +echo ''
   1.253 +
   1.254 +# 360p Concatanate film parts
   1.255 +#oggCat $INFILE-vidcat360p.ogv $INPREV-360p.ogv $INFILE-vidnur360p.ogv $INPOST-360p.ogv
   1.256 +mkvmerge --title "$INTITLE" --default-language en -o $INFILE-vidcat360p.mkv $INPREV-360p.ogv + $INFILE-vidnur360p.ogv + $INPOST-360p.ogv
   1.257 +echo 'Finished concatanating front, main, and back part files...'
   1.258 +echo ''
   1.259 +
   1.260 +# 360p Join video and audio in film
   1.261 +ffmpeg -v warning -i $INFILE-vidcat360p.mkv -i ../$INAUDI -map 0 -map 1 -strict -2 -codec:a vorbis -qscale:a 5 -ac 2 -codec:v copy -pix_fmt yuv420p -f ogg output-360p.ogv
   1.262 +echo "Finished joining video with audio to produce $INFILE-360p.ogv" 
   1.263 +echo ''
   1.264 +echo ''
   1.265 +
   1.266 +#
   1.267 +# Closing
   1.268 +#
   1.269 +cd ..
   1.270 +echo 'Processed files: work*-*/output-*.*'
   1.271 +ls -ld work*-*/output-*.*
   1.272 +echo ''
   1.273 +echo 'Tip: If using HTML5 video, then consider:'
   1.274 +echo "  <video poster='poster.png' width=640 height=360 preload='metadata' controls>"
   1.275 +echo ''
   1.276 +
   1.277 +#
   1.278 +# Scratch block (unused logic)
   1.279 +#
   1.280 +
   1.281 +# 480p H.264/AAC in MP4
   1.282 +#time ffmpeg -v warning -threads 0 -i ../$INFILE -an -codec:v libx264 -b:v 1000k -r 25 -s 854x480 -aspect 16:9 -pix_fmt yuv420p -vpre fastfirstpass -pass 1 -f null /dev/null 2>&1
   1.283 +#time ffmpeg -v warning -threads 0 -i ../$INFILE -codec:a aac -b:a 128k -ac 2 -sample_fmt:1 fltp -codec:v libx264 -b:v 1000k -r 25 -s 854x480 -aspect 16:9 -pix_fmt yuv420p -vpre hq -vf '[in] delogo=x=38:y=616:w=254:h=68:band=4:t=4:show=0 [delogo]; movie=../procomwater.png [watermark]; [delogo][watermark] overlay=24:608, fade=t=in:st=0:d=1:alpha=0, fade=t=out:st=298:d=2:alpha=0 [out]' -f mp4 -pass 2 $INFILE-480p.mp4
   1.284 +
   1.285 +# 720p WEBM
   1.286 +#$ time ffmpeg -v warning -threads 4 -i ../procomplota.ts -an -codec:v libvpx -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -vpre 720p -pass 1 -f null /dev/null 2>&1
   1.287 +#$ time ffmpeg -v warning -threads 4 -i ../procomplota.ts -an -codec:v libvpx -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -vpre 720p -vf 'movie=../procomwater.png [watermark]; [in][watermark] overlay=24:608 [out]' -f webm -pass 2 procomplota-vidnur720p.webm
   1.288 +#$ ffmpeg -v warning -loop 1 -i ../procomnach.png -c:v libvpx -t 15 -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -vpre 720p -vf 'fade=t=in:st=0:d=1:alpha=0' -f webm procomnach-720p.webm
   1.289 +#$ mkvmerge --title "Procom Quick Overview" --default-language en -w -o procomplota-vidcat720p.webm procomplota-vidnur720p.webm + procomnach-720p.webm
   1.290 +#$ ffmpeg -v warning -i procomplota-vidcat720p.webm -i ../procomplota.wav -map 0 -map 1 -strict -2 -codec:a vorbis -aq 20 -ac 2 -codec:v copy -pix_fmt yuv420p -f webm output-720p.webm
   1.291 +
   1.292 +# 360p WEBM
   1.293 +#$ time ffmpeg -v warning -threads 4 -i ../procomplota.ts -an -codec:v libvpx -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -vpre 360p -pass 1 -f null /dev/null 2>&1 && time ffmpeg -v warning -threads 4 -i ../procomplota.ts -an -codec:v libvpx -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -vpre 360p -vf 'movie=../procomwater.png [watermark]; [in][watermark] overlay=24:608 [out]' -f webm -pass 2 procomplota-vidnur360p.webm && ffmpeg -v warning -loop 1 -i ../procomnach.png -c:v libvpx -t 15 -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -vpre 360p -vf 'fade=t=in:st=0:d=1:alpha=0' -f webm procomnach-360p.webm && mkvmerge --title "Procom Quick Overview" --default-language en -w -o procomplota-vidcat360p.webm procomplota-vidnur360p.webm + procomnach-360p.webm && ffmpeg -v warning -i procomplota-vidcat360p.webm -i ../procomplota.wav -map 0 -map 1 -strict -2 -codec:a vorbis -aq 20 -ac 2 -codec:v copy -pix_fmt yuv420p -f webm output-360p.webm
   1.294 +
   1.295 +# 720p MPEG
   1.296 +#$ time ffmpeg -v warning -threads 0 -i ../procomplota.ts -an -codec:v libx264 -b:v 2048k -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -vpre fastfirstpass -pass 1 -f null /dev/null 2>&1 && time ffmpeg -v warning -threads 0 -i ../procomplota.ts -an -codec:v libx264 -b:v 2048k -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -vpre hq -vf 'movie=../procomwater.png [watermark]; [in][watermark] overlay=24:608 [out]' -bsf:v h264_mp4toannexb -f mpegts -pass 2 procomplota.ts-vidnur720p.ts && ffmpeg -v warning -loop 1 -i ../procomnach.png -c:v libx264 -t 15 -b:v 2048k -r 25 -s 1280x720 -aspect 16:9 -pix_fmt yuv420p -vf 'fade=t=in:st=0:d=1:alpha=0' -f mpegts procomnach-720p.ts && ffmpeg -i "concat:procomplota.ts-vidnur720p.ts|procomnach-720p.ts" -c copy -bsf:a aac_adtstoasc -f mp4 procomplota.ts-vidcat720p.mp4 && ffmpeg -v warning -i procomplota.ts-vidcat720p.mp4 -i ../procomplota.wav -map 0 -map 1 -strict -2 -codec:a aac -b:a 128k -ac 2 -sample_fmt:1 fltp -codec:v copy -pix_fmt yuv420p -f mp4 output-720p.mp4
   1.297 +
   1.298 +# 360p MPEG
   1.299 +#$ time ffmpeg -v warning -threads 0 -i ../procomplota.ts -an -codec:v libx264 -b:v 768k -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -vpre fastfirstpass -pass 1 -f null /dev/null 2>&1 && time ffmpeg -v warning -threads 0 -i ../procomplota.ts -an -codec:v libx264 -b:v 768k -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -vpre hq -vf 'movie=../procomwater.png [watermark]; [in][watermark] overlay=24:608 [out]' -bsf:v h264_mp4toannexb -f mpegts -pass 2 procomplota.ts-vidnur360p.ts && ffmpeg -v warning -loop 1 -i ../procomnach.png -c:v libx264 -t 15 -b:v 768k -r 25 -s 640x360 -aspect 16:9 -pix_fmt yuv420p -vf 'fade=t=in:st=0:d=1:alpha=0' -f mpegts procomnach-360p.ts && ffmpeg -i "concat:procomplota.ts-vidnur360p.ts|procomnach-360p.ts" -c copy -bsf:a aac_adtstoasc -f mp4 procomplota.ts-vidcat360p.mp4 && ffmpeg -v warning -i procomplota.ts-vidcat360p.mp4 -i ../procomplota.wav -map 0 -map 1 -strict -2 -codec:a aac -b:a 128k -ac 2 -sample_fmt:1 fltp -codec:v copy -pix_fmt yuv420p -f mp4 output-360p.mp4

mercurial