On CentOS: ffmpeg -i movie.mp4 -vcodec libx264 -preset ultrafast -acodec copy -vf 'movie=logo.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]' result.mp4 ffmpeg version git-2011-12-08-b229485, Copyright (c) 2000-2011 the FFmpeg developers built on Dec 9 2011 01:28:34 with gcc 4.1.2 20080704 (Red Hat 4.1.2-51) configuration: --enable-version3 --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvpx --enable-libfaac --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-gpl --enable-postproc --enable-nonfree --enable-x11grab libavutil 51. 31. 0 / 51. 31. 0 libavcodec 53. 41. 2 / 53. 41. 2 libavformat 53. 24. 0 / 53. 24. 0 libavdevice 53. 4. 0 / 53. 4. 0 libavfilter 2. 52. 0 / 2. 52. 0 libswscale 2. 1. 0 / 2. 1. 0 libpostproc 51. 2. 0 / 51. 2. 0 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'movie.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 creation_time : 2011-11-17 20:49:10 Duration: 00:02:11.79, start: 0.000000, bitrate: 2439 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 2286 kb/s, 29.97 fps, 29.97 tbr, 60k tbn, 59.94 tbc Metadata: creation_time : 1970-01-01 00:00:00 handler_name : VideoHandler Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 149 kb/s Metadata: creation_time : 2011-11-17 20:49:10 handler_name : File 'result.mp4' already exists. Overwrite ? [y/N] y w:1280 h:720 pixfmt:yuv420p tb:1/1000000 sar:0/1 sws_param: [image2 @ 0x16eb69c0] Could not find codec parameters (Video: png, 100x14) [movie @ 0x16eb6580] Failed to find stream info [movie @ 0x16eb6580] seek_point:0 format_name:(null) file_name:logo.png stream_index:0 [overlay @ 0x16eb7740] auto-inserting filter 'auto-inserted scale 0' between the filter 'Parsed_movie_0' and the filter 'Parsed_overlay_1' Impossible to convert between the formats supported by the filter 'Parsed_movie_0' and the filter 'auto-inserted scale 0' On Ubuntu: ffmpeg -i movie.mp4 -vcodec libx264 -preset ultrafast -acodec copy -vf 'movie=logo.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]' result.mp4 ffmpeg version git-2011-11-18-fca85ce, Copyright (c) 2000-2011 the FFmpeg developers built on Nov 19 2011 00:04:53 with gcc 4.5.2 configuration: --enable-gpl --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab libavutil 51. 26. 0 / 51. 26. 0 libavcodec 53. 35. 0 / 53. 35. 0 libavformat 53. 20. 0 / 53. 20. 0 libavdevice 53. 4. 0 / 53. 4. 0 libavfilter 2. 49. 0 / 2. 49. 0 libswscale 2. 1. 0 / 2. 1. 0 libpostproc 51. 2. 0 / 51. 2. 0 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'movie.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 creation_time : 2011-11-17 20:49:10 Duration: 00:02:11.79, start: 0.000000, bitrate: 2439 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720, 2286 kb/s, 29.97 fps, 29.97 tbr, 60k tbn, 59.94 tbc Metadata: creation_time : 1970-01-01 00:00:00 handler_name : VideoHandler Stream #0:1(und): Audio: aac (mp4a / 0x6134706D), 44100 Hz, stereo, s16, 149 kb/s Metadata: creation_time : 2011-11-17 20:49:10 handler_name : File 'result.mp4' already exists. Overwrite ? [y/N] y w:1280 h:720 pixfmt:yuv420p tb:1/1000000 sar:0/1 sws_param: [movie @ 0xae868a0] seek_point:0 format_name:(null) file_name:logo.png stream_index:0 [overlay @ 0xae87c60] auto-inserting filter 'auto-inserted scale 0' between the filter 'Parsed_movie_0' and the filter 'Parsed_overlay_1' [scale @ 0xaddf620] w:100 h:14 fmt:bgra -> w:100 h:14 fmt:yuva420p flags:0x4 [overlay @ 0xae87c60] main w:1280 h:720 fmt:yuv420p overlay x:1170 y:696 w:100 h:14 fmt:yuva420p [overlay @ 0xae87c60] main_tb:1/1000000 overlay_tb:1/25 -> tb:1/1000000 exact:1 [libx264 @ 0xadd2cc0] using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64 [libx264 @ 0xadd2cc0] profile Constrained Baseline, level 3.1 [libx264 @ 0xadd2cc0] 264 - core 119 r2106 07efeb4 - H.264/MPEG-4 AVC codec - Copyleft 2003-2011 - http://www.videolan.org/x264.html - options: cabac=0 ref=1 deblock=0:0:0 analyse=0:0 me=dia subme=0 psy=1 psy_rd=1.00:0.00 mixed_ref=0 me_range=16 chroma_me=1 trellis=0 8x8dct=0 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=0 threads=6 sliced_threads=0 nr=0 decimate=1 interlaced=0 bluray_compat=0 constrained_intra=0 bframes=0 weightp=0 keyint=250 keyint_min=25 scenecut=0 intra_refresh=0 rc=crf mbtree=0 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=0 Output #0, mp4, to 'result.mp4': Metadata: major_brand : mp42 minor_version : 0 compatible_brands: isommp42 creation_time : 2011-11-17 20:49:10 encoder : Lavf53.20.0 Stream #0:0(und): Video: h264 (![0][0][0] / 0x0021), yuv420p, 1280x720, q=-1--1, 30k tbn, 29.97 tbc Metadata: creation_time : 1970-01-01 00:00:00 handler_name : VideoHandler Stream #0:1(und): Audio: aac (@[0][0][0] / 0x0040), 44100 Hz, stereo, 149 kb/s Metadata: creation_time : 2011-11-17 20:49:10 handler_name : Stream mapping: Stream #0:0 -> #0:0 (h264 -> libx264) Stream #0:1 -> #0:1 (copy) Press [q] to stop, [?] for help frame= 3950 fps= 98 q=-1.0 Lsize= 69665kB time=00:02:11.76 bitrate=4331.1kbits/s video:67176kB audio:2413kB global headers:0kB muxing overhead 0.109897% [libx264 @ 0xadd2cc0] frame I:16 Avg QP:17.03 size: 54022 [libx264 @ 0xadd2cc0] frame P:3934 Avg QP:20.11 size: 17266 [libx264 @ 0xadd2cc0] mb I I16..4: 100.0% 0.0% 0.0% [libx264 @ 0xadd2cc0] mb P I16..4: 15.2% 0.0% 0.0% P16..4: 32.6% 0.0% 0.0% 0.0% 0.0% skip:52.3% [libx264 @ 0xadd2cc0] coded y,uvDC,uvAC intra: 29.3% 46.3% 11.4% inter: 15.7% 20.7% 2.5% [libx264 @ 0xadd2cc0] i16 v,h,dc,p: 40% 32% 15% 13% [libx264 @ 0xadd2cc0] i8c dc,h,v,p: 41% 28% 20% 11% [libx264 @ 0xadd2cc0] kb/s:4175.30