Here is a simple request, it has an input, output, and two watermarks. From what I gathered I can't apply -codec copy
because I'm using a filter.
ffmpeg -i input.mp4 -i wm-bl.png -i wm-br.png -filter_complex "overlay=x=0:y=H-h,overlay=x=W-w:y=H-h" output.mp4
This does the trick, as far as watermarking is concerned, but the output is compressed into half the original file size.
Is it possible to watermark without losing video quality?
-vf is used for simple filtergraphs (one input, one output), and -filter_complex is used for complex filtergraphs (one or more inputs, one or more outputs). Using -filter_complex will allow you omit the movie multimedia source filter and have a shorter command.
ffmpeg is a command-line tool that converts audio or video formats. It can also capture and encode in real-time from various hardware and software sources such as a TV capture card. ffplay is a simple media player utilizing SDL and the FFmpeg libraries.
Therefore any attempt at stream copying while filtering will be ignored. This is why -codec copy
does nothing for you.
Alternatively you can use proper encoding settings that look "visually lossless", but technically are not truly lossless. Example for H.264:
ffmpeg -i input -codec:v libx264 -crf 18 -preset slow -vf format=yuv420p out.mp4
-crf
controls quality: range is a log scale of 0-51, 0 is lossless, ~18 is often considered visually lossless, and 23 is default.
-preset
controls encoding speed and therefore compression efficiency: ultrafast, superfast, veryfast, faster, fast, medium (the default), slow, slower, veryslow.
-vf format=yuv420p
uses a compatible chroma subsampling required by most players.
Although you must re-encode for filtering it does not mean that you have to lose quality. You can use a lossless encoder, such as:
-codec:v libx264 -crf 0 -preset veryslow
-codec:v ffv1
The output file size can be huge–generally much bigger than your input file.
Avoid encoding completely and just deal with the watermark with CSS or with your HTML5 video player.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With