Note: There is no sound.
A
1920x1080
Phillips test card from Wikimedia;
Five 30 second MP4 videos derived from this image;
A
1920x1080
Chinese HDTV test card from Wikimedia;
Five 30 second MP4 videos derived from this image;
A DIY
1920x1080
Grey scale;
16 steps: Hex 00, 11, 22, 33, ... FF.
Five 30 second MP4 videos derived from this image;
Having ffpeg convert a PNG image may get the colours wrong. You are probably better off converting a PNG to JPG first;
convert -colorspace sRGB input.png -colorspace YCbCr output.jpg
Alternate input colorspace is 'RGB'.
Alternate output colorspace is 'YUV'.
'sRGB' and 'YCbCr' has the best result with the Chinese test card though.
Note: Look at bright green and red to check.
And then;
ffmpeg -loop 1 -i input.jpg -c:v libx264 -x264-params interlaced=1 -r 25 -t 30 -pix_fmt yuvj420p -vf scale=1920:1080 output.mp4
Leave out the '-x264-params interlaced=1' bit if you don't want
interlaced.
'-r 25' sets the frame rate.
'-t 30' sets the length.
With '420p' chroma has both half the horizontal and vertical resolution of
luma. 'yuvj420p' has a wider range than 'yuv420p'. 'yuv420p' is 16
to 235 for Y and 16 to 240 for U and V. 'yuvj420p' has 0 to 255 for
all three.
'-vf scale=1920:1080' sets the resolution: scale=x:y.
Note: The need to be compatible with older media players may limit the
quality. If 'yuvj420p' doesn't work for you, try 'yuv420p' instead.
The input files have a sequence number in their file name. Each image is displayed 25 times.
ffmpeg -framerate 1 -i input-%d.jpg -c:v libx264 -r 25 -pix_fmt yuvj420p output.mp4
The above videos don't have audio. However, you can add audio if you like.
Below a WAV file is added:
ffmpeg -i input.mp4 -i input.wav -c:v copy -b:a 192k output.mp4