|
1 #! /bin/sh |
|
2 |
|
3 # Set variables |
|
4 INFILE=$1 |
|
5 INAUDI=$2 |
|
6 INPREV=$3 |
|
7 INPOST=$4 |
|
8 INTITLE=$5 |
|
9 THREAD=4 |
|
10 |
|
11 # Following is not needed |
|
12 ## Get the number of frames for fading out |
|
13 #FRAMES=`ffmpeg -i $INFILE -an -codec:v copy -f null /dev/null 2>&1 | grep 'frame=' | cut -f 2 -d ' '` |
|
14 |
|
15 # Start log |
|
16 #script procfilm-`date +%Y%m%d:%H:%M:%S`.log |
|
17 echo "Redirecting command line out to log file `date +%Y%m%d:..._`.log" |
|
18 exec > procfilm-`date +%Y%m%d:%H:%M:%S`.log 2>&1 |
|
19 |
|
20 # Usage |
|
21 echo 'This program will produce six output files, one of each format:' |
|
22 echo ' 720p and 360p, WEBM (VP8+VORBIS in WEBM)' |
|
23 echo ' 720p and 360p, XIPH (THEORA+VORBIS in OGV)' |
|
24 echo ' 720p and 360p, MPEG (H.264+AAC in MP4)' |
|
25 echo '' |
|
26 echo "Usage: $0 <Srcfile> <Srcaudio> <Prevfile> <Postfile> '<Titel>'" |
|
27 echo "Example: $0 Myfilm.avi Myaudio.wav Myprev Mypost 'My best film'" |
|
28 echo 'Note: Myprev and Mypost must be PNG files (without file extension.)' |
|
29 echo 'Note: Titel can be only one word unless you wrap a phrase in quotes.' |
|
30 echo '' |
|
31 echo 'Warning: Check your preset paths like /usr/share/ffmpeg and $HOME/.ffmpeg' |
|
32 echo '' |
|
33 echo "Starting with log processing on `date +%Y%m%d\ %H:%M:%S`" |
|
34 echo '' |
|
35 |
|
36 # Create working subdirectories |
|
37 for format in webm xiph mpeg; do |
|
38 for resol in 360 720; do |
|
39 mkdir work$format-$resol; |
|
40 done; |
|
41 done |
|
42 |
|
43 # |
|
44 # START OF WEBM ENCODING |
|
45 # |
|
46 |
|
47 # 720p Webm (VP8/Vorbis) |
|
48 cd ./workwebm-720 || return 1 |
|
49 |
|
50 # 720p Prepare main film part |
|
51 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 |
|
52 echo 'Finished first pass main film part encoding...' |
|
53 echo '' |
|
54 # For only watermark (no delogo nor fade) do this: |
|
55 # -vf 'movie=../procomwater.png [watermark]; [in][watermark] overlay=24:608 [out]' |
|
56 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 |
|
57 echo 'Finished second pass main film part encoding...' |
|
58 echo '' |
|
59 |
|
60 # 720p Generate front and back matter |
|
61 # WARNING: -loop, -t, -r, -vf, -f, or something else causing sync problems! |
|
62 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 |
|
63 echo 'Finished generation of front matter...' |
|
64 echo '' |
|
65 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 |
|
66 echo 'Finished generation of back matter...' |
|
67 echo '' |
|
68 |
|
69 # 720p Concatanate film parts |
|
70 mkvmerge --title "$INTITLE" --default-language en -w -o $INFILE-vidcat720p.webm $INPREV-720p.webm + $INFILE-vidnur720p.webm + $INPOST-720p.webm |
|
71 echo 'Finished concatanating front, main, and back part files...' |
|
72 echo '' |
|
73 |
|
74 # 720p Join video and audio in film |
|
75 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 |
|
76 echo "Finished joining video with audio to produce $INFILE-720p.webm" |
|
77 echo '' |
|
78 echo '' |
|
79 |
|
80 # 360p Webm (VP8/Vorbis) |
|
81 cd ../workwebm-360 || return 1 |
|
82 |
|
83 # 360p Prepare main film part |
|
84 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 |
|
85 echo 'Finished first pass main film part encoding...' |
|
86 echo '' |
|
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 -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 |
|
88 echo 'Finished second pass main film part encoding...' |
|
89 echo '' |
|
90 |
|
91 # 360p Generate front and back matter |
|
92 # WARNING: -loop, -t, -r, -vf, -f, or something else causing sync problems! |
|
93 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 |
|
94 echo 'Finished generation of front matter...' |
|
95 echo '' |
|
96 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 |
|
97 echo 'Finished generation of back matter...' |
|
98 echo '' |
|
99 |
|
100 # 360p Concatanate film parts |
|
101 mkvmerge --title "$INTITLE" --default-language en -w -o $INFILE-vidcat360p.webm $INPREV-360p.webm + $INFILE-vidnur360p.webm + $INPOST-360p.webm |
|
102 echo 'Finished concatanating front, main, and back part files...' |
|
103 echo '' |
|
104 |
|
105 # 360p Join video and audio in film |
|
106 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 |
|
107 echo "Finished joining video with audio to produce $INFILE-360p.webm" |
|
108 echo '' |
|
109 echo '' |
|
110 |
|
111 # |
|
112 # START OF MPEG4 ENCODING |
|
113 # |
|
114 |
|
115 # 720p MPEG4 (H.264/MP4) |
|
116 cd ../workmpeg-720 || return 1 |
|
117 |
|
118 # 720p Prepare main film part |
|
119 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 |
|
120 echo 'Finished first pass main film part encoding...' |
|
121 echo '' |
|
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 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 |
|
123 echo 'Finished second pass main film part encoding...' |
|
124 echo '' |
|
125 |
|
126 # 720p Generate front and back matter |
|
127 # WARNING: -loop, -t, -r, -vf, -f, or something else causing sync problems! |
|
128 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 |
|
129 echo 'Finished generation of front matter...' |
|
130 echo '' |
|
131 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 |
|
132 echo 'Finished generation of back matter...' |
|
133 echo '' |
|
134 |
|
135 # Now prepare for H.264 concatanation |
|
136 # http://trac.ffmpeg.org/wiki/How%20to%20concatenate%20%28join,%20merge%29%20media%20files |
|
137 |
|
138 ## Dont use this because it reencodes when copying is desired |
|
139 ##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 |
|
140 |
|
141 # 720p Concatanate film parts |
|
142 # Actually dont need this if we encode H.264 to MPEGTS in previous encoding |
|
143 ##ffmpeg -v warning -i $INFILE.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate.ts |
|
144 ffmpeg -i "concat:$INPREV-720p.ts|$INFILE-vidnur720p.ts|$INPOST-720p.ts" -c copy -bsf:a aac_adtstoasc -f mp4 $INFILE-vidcat720p.mp4 |
|
145 echo 'Finished concatanating front, main, and back part files...' |
|
146 echo '' |
|
147 |
|
148 # 720p Join video and audio in film |
|
149 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 |
|
150 echo "Finished joining video with audio to produce $INFILE-720p.mp4" |
|
151 echo '' |
|
152 echo '' |
|
153 |
|
154 # 360p MPEG4 (H.264/MP4) |
|
155 cd ../workmpeg-360 || return 1 |
|
156 |
|
157 # 360p Prepare main film part |
|
158 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 |
|
159 echo 'Finished first pass main film part encoding...' |
|
160 echo '' |
|
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 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 |
|
162 echo 'Finished second pass main film part encoding...' |
|
163 echo '' |
|
164 |
|
165 # 360p Generate front and back matter |
|
166 # WARNING: -loop, -t, -r, -vf, -f, or something else causing sync problems! |
|
167 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 |
|
168 echo 'Finished generation of front matter...' |
|
169 echo '' |
|
170 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 |
|
171 echo 'Finished generation of back matter...' |
|
172 echo '' |
|
173 |
|
174 # Now prepare for H.264 concatanation |
|
175 # http://trac.ffmpeg.org/wiki/How%20to%20concatenate%20%28join,%20merge%29%20media%20files |
|
176 |
|
177 ## Dont use this because it reencodes when copying is desired |
|
178 ##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 |
|
179 |
|
180 # 360p Concatanate film parts |
|
181 # Actually dont need this if we encode H.264 to MPEGTS in previous encoding |
|
182 ##ffmpeg -v warning -i $INFILE.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts intermediate.ts |
|
183 ffmpeg -i "concat:$INPREV-360p.ts|$INFILE-vidnur360p.ts|$INPOST-360p.ts" -c copy -bsf:a aac_adtstoasc -f mp4 $INFILE-vidcat360p.mp4 |
|
184 echo 'Finished concatanating front, main, and back part files...' |
|
185 echo '' |
|
186 |
|
187 # 360p Join video and audio in film |
|
188 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 |
|
189 echo "Finished joining video with audio to produce $INFILE-360p.mp4" |
|
190 echo '' |
|
191 echo '' |
|
192 |
|
193 # |
|
194 # START OF XIPH ENCODING |
|
195 # |
|
196 |
|
197 # 720p OGV |
|
198 cd ../workxiph-720 || return 1 |
|
199 |
|
200 # 720p Prepare main film part |
|
201 #ffmpeg -i ../$INFILE -codec:v theora -qscale:v 7 -codec:a vorbis -qscale:a 5 output.ogv |
|
202 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 |
|
203 echo 'Finished first pass main film part encoding...' |
|
204 echo '' |
|
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 -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 |
|
206 echo 'Finished second pass main film part encoding...' |
|
207 echo '' |
|
208 |
|
209 # 720p Generate front and back matter |
|
210 # WARNING: -loop, -t, -r, -vf, -f, or something else causing sync problems! |
|
211 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 |
|
212 echo 'Finished generation of front matter...' |
|
213 echo '' |
|
214 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 |
|
215 echo 'Finished generation of back matter...' |
|
216 echo '' |
|
217 |
|
218 # 720p Concatanate film parts |
|
219 #oggCat $INFILE-vidcat720p.ogv $INPREV-720p.ogv $INFILE-vidnur720p.ogv $INPOST-720p.ogv |
|
220 mkvmerge --title "$INTITLE" --default-language en -o $INFILE-vidcat720p.mkv $INPREV-720p.ogv + $INFILE-vidnur720p.ogv + $INPOST-720p.ogv |
|
221 echo 'Finished concatanating front, main, and back part files...' |
|
222 echo '' |
|
223 |
|
224 # 720p Join video and audio in film |
|
225 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 |
|
226 echo "Finished joining video with audio to produce $INFILE-720p.ogv" |
|
227 echo '' |
|
228 echo '' |
|
229 |
|
230 # 360p OGV |
|
231 cd ../workxiph-360 || return 1 |
|
232 |
|
233 # 360p Prepare main film part |
|
234 #ffmpeg -i ../$INFILE -codec:v theora -qscale:v 7 -codec:a vorbis -qscale:a 5 output.ogv |
|
235 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 |
|
236 echo 'Finished first pass main film part encoding...' |
|
237 echo '' |
|
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 -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 |
|
239 echo 'Finished second pass main film part encoding...' |
|
240 echo '' |
|
241 |
|
242 # 360p Generate front and back matter |
|
243 # WARNING: -loop, -t, -r, -vf, -f, or something else causing sync problems! |
|
244 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 |
|
245 echo 'Finished generation of front matter...' |
|
246 echo '' |
|
247 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 |
|
248 echo 'Finished generation of back matter...' |
|
249 echo '' |
|
250 |
|
251 # 360p Concatanate film parts |
|
252 #oggCat $INFILE-vidcat360p.ogv $INPREV-360p.ogv $INFILE-vidnur360p.ogv $INPOST-360p.ogv |
|
253 mkvmerge --title "$INTITLE" --default-language en -o $INFILE-vidcat360p.mkv $INPREV-360p.ogv + $INFILE-vidnur360p.ogv + $INPOST-360p.ogv |
|
254 echo 'Finished concatanating front, main, and back part files...' |
|
255 echo '' |
|
256 |
|
257 # 360p Join video and audio in film |
|
258 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 |
|
259 echo "Finished joining video with audio to produce $INFILE-360p.ogv" |
|
260 echo '' |
|
261 echo '' |
|
262 |
|
263 # |
|
264 # Closing |
|
265 # |
|
266 cd .. |
|
267 echo 'Processed files: work*-*/output-*.*' |
|
268 ls -ld work*-*/output-*.* |
|
269 echo '' |
|
270 echo 'Tip: If using HTML5 video, then consider:' |
|
271 echo " <video poster='poster.png' width=640 height=360 preload='metadata' controls>" |
|
272 echo '' |
|
273 |
|
274 # |
|
275 # Scratch block (unused logic) |
|
276 # |
|
277 |
|
278 # 480p H.264/AAC in MP4 |
|
279 #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 |
|
280 #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 |
|
281 |
|
282 # 720p WEBM |
|
283 #$ 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 |
|
284 #$ 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 |
|
285 #$ 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 |
|
286 #$ mkvmerge --title "Procom Quick Overview" --default-language en -w -o procomplota-vidcat720p.webm procomplota-vidnur720p.webm + procomnach-720p.webm |
|
287 #$ 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 |
|
288 |
|
289 # 360p WEBM |
|
290 #$ 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 |
|
291 |
|
292 # 720p MPEG |
|
293 #$ 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 |
|
294 |
|
295 # 360p MPEG |
|
296 #$ 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 |