I've been pulling my hair lately with FFmpeg commandline. Be aware that I am not an FFmpeg expert. Here is my problem:
I have a bunch of YUV422 images as such:
image0.yuv
image1.yuv
..
image450.yuv
Along with these I have a file containing timestamps for every image, say:
timestamps.txt
I would like to encode a lossless video (maybe with -c:v libx264 -pix_fmt yuv422p
) from these with every image displayed at its correct timstamp. Here are the things I tried in vain:
use
-f concat
and provide a file containing a list like this:file 'image0.yuv' duration '0.0515' file 'image0.yuv' duration '0.0721' ... etc
this solution does not work because I need to provide a frame size (which is not included in the raw yuv files)
something like
cat *.yuv | ffmpeg -f rawvideo -s 800x600 -pix_fmt yuv422p -framerate 0.5 -i - -c:v libx264 -pix_fmt yuv422p out.mp4
which doesn't work neither because I can't provide it timestamps for each image (variable framerate) but just use the fixed-framerate
argumentI'm aware of the
-vsync vfr
argument but can't manage to make it work properly
I would be eternally grateful for any piece of advice, thanks :)