user21674: I need to reduce the file size of an mp4 video. I don't need color information at all but pixel brightness resolution must be preserved. Videos consist of white background with a few (important) black dots of about 5px diameter. I am confused about what the best method/output would be.

user-1: Much faster solution: ffmpeg -i in.mp4 -vf extractplanes=y out.mp4

user1871: Without knowing the video properties, my generic answer is
ffmpeg -i in.mp4 -vf geq=lum='p(X,Y)':cb=128:cr=128 out.mp4

This will reset the color information, but pass the luma plane intact. Add -crf 0 for truly lossless re-encoding.

This is the faster way,
ffmpeg -i in.mp4 -vf extractplanes=y,format=yuv420p out.mp4

The luma plane is extracted, and then neutral chroma planes are added in the pixel format conversion. This 2nd step is added because otherwise ffmpeg will auto-convert pixel format to yuv444 which isn't widely compatible.

21674: <p>I need to reduce the file size of an mp4 video. I don't need color information at all but pixel brightness resolution must be preserved. Videos consist of white background with a few (important) black dots of about 5px diameter. I am confused about what the best method/output would be.</p>
 -1: <p>Much faster solution: <code>ffmpeg -i in.mp4 -vf extractplanes=y out.mp4</code></p>
 1871: <p>Without knowing the video properties, my generic answer is</p>

<pre><code>ffmpeg -i in.mp4 -vf geq=lum='p(X,Y)':cb=128:cr=128 out.mp4
</code></pre>

<p>This will reset the color information, but pass the luma plane intact. Add <code>-crf 0</code> for truly lossless re-encoding.</p>

<hr>

<p>This is the faster way,</p>

<pre><code>ffmpeg -i in.mp4 -vf extractplanes=y,format=yuv420p out.mp4
</code></pre>

<p>The luma plane is extracted, and then neutral chroma planes are added in the pixel format conversion. This 2nd step is added because otherwise ffmpeg will auto-convert pixel format to yuv444 which isn't widely compatible.</p>
